MIT's new programming language delivers fourfold speedups on big-data problems

Original press release was issued by MIT, written by Larry Hardesty.
In the age of big data, today’s computer chips are struggling to maintain an efficient method of memory management. The way it currently works is based on what computer scientists call the principle of locality: If a program needs to access a chunk of data stored at some memory bank, chances are, it needs the neighboring chunks as well. Since most programs now require access to just a few data scattered across huge data sets — and having to fetch it time and time again — it results in dramatic slowdown in performance.
Now, researchers from MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) presented a new programming language, dubbed Milk, that addresses these issues and allows programs written in this language to run four times as fast as those written in existing languages — with room for even greater performance gains. The new language tackles the biggest problem with the today’s big data sets — its “sparseness”. This means, that with big data the scale of the solution does not necessarily increase proportionally with the scale of the problem.

“Imagine an online bookseller with, say, 1,000 customers might like to provide its visitors with a list of its 20 most popular books. It doesn’t follow, however, that an online bookseller with a million customers would want to provide its visitors with a list of its 20,000 most popular books.” explains Saman Amarasinghe, a professor of electrical engineering and computer science.

So where do the game-changing differences lie? With a Milk program, when a computer chip’s core, or processor, discovers that it needs a piece of data, it doesn’t request it — and a cacheful of adjacent data — from main memory. Instead, it adds the data item’s address to a list of locally stored addresses. When the list is long enough, all the chip’s cores pool their lists, group together those addresses that are near each other, and redistribute them to the cores. That way, each core requests only data items that it knows it needs and that can be retrieved efficiently.
Breaking it down in a little more detail: With Milk, a programmer inserts a couple additional lines of code to OpenMP (an extension of languages such as C and Fortran), around any instruction that iterates through a large data collection looking for a comparatively small number of items. Milk’s compiler — the program that converts high-level code into low-level instructions — then figures out how to manage memory accordingly.

“It’s as if [regarding the old technique of going to main memory for a single data item at a time], every time you want a spoonful of cereal, you open the fridge, open the milk carton, pour a spoonful of milk, close the carton, and put it back in the fridge,” says Vladimir Kiriansky, a PhD student in electrical engineering and computer science and first author on the new paper.

As mentioned earlier, the researchers see room for improvements. They mainly target the Milk compiler which not only keeps track of a list of memory addresses, the data stored within, but also decides which addresses should be retained and which discarded. Bettering the algorithm that drives this compiler is where the possibilities of further performance gains might be hidden.

Call for papers Conferences

SDWN 2015: second call for papers!

The Second International Conference on Software-Defined and Virtualized Future Wireless Network will take place in Rome, Italy on October 26–27, 2015 and will be co-located with IOT360 Summit.

SDWN will be chaired by Bruno Astuto (GE Global Research Center, Brasil) and will focus on the new design space, the new challenges and solutions, as well as new applications and services of software-defined virtualized future mobile and wireless networks. The goal of the conference is to solicit original and inspiring research contributions from technology experts, designers, researchers, and architects in academia and industry, bringing together practitioners and researchers to share knowledge, experiences, and best practices.

Accepted papers will be published in the SDWN Conference Proceedings and by Springer-Verlag in the Lecture Notes of ICST (LNICST). Best papers will be invited to publish in the EAI Endorsed Transactions on Cloud Systems

The proceedings will be available both in book form and via the SpringerLink digital library, which is one of the largest digital libraries online and covers a variety of scientific disciplines. The proceedings are submitted for inclusion to the leading indexing services: DBLP, Google Scholar, Thomson Scientific ISI Proceedings, EI Elsevier Engineering Index, CrossRef, Scopus, as well as ICST’s own EU Digital Library (EUDL)

Participation in this event will give attendees the unique opportunity to be exposed to all technical scientific aspects of IoT related topic areas at co-located conferences, as well as be able to have full access to the IoT market place and business aspects in practice at the IOT360 Summit.


Important dates:

Abstract submission deadline: June 15th, 2015

Notification deadline: July 25th, 2015

Camera-ready deadline: August 25th, 2015

 Find more details here.



Research updates on Self-Adaptive Systems

As software is used for more pervasive and critical applications, support for self-adaptation is increasingly seen as necessary in avoiding costly disruptions for repair, maintenance and evolution of systems. The EAI Endorsed Transactions on Self-Adaptive Systems seeks and collects contributions from leading experts from research and practice of self-adaptive systems that will provide the connection between theory and practice with the ultimate goal to bring both the science and industry closer to the so-called “autonomic culture” and successful realization of self-adaptive systems.

The First issue of the journal has been published on the European Union Digital Library.

​​Find all details about the journal here.