New Programming Language called “Milk” - Run 4 Time Faster
A group of MIT researchers has developed a new programming language named Milk. It makes the code operating on big data sets about 4 times faster. This is done by an intelligent sorting and collection of data addresses. Later this week, more research details will be presented at the International Conference on Parallel Architectures and Compilation Techniques.
Today’s big data sets pose different types of problems for current memory management techniques that are based on the principle of locality. This principle states that if a particular program has to access some data at a memory location, it also needs the nearby memory lumps.
When a program deals with big data, which act on tons of data items spread here and there, this principle of locality acts as a performance killer that can lead to the slower execution of a program. To counter this issue, MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) researchers have developed a new programming language named Milk.
Compared to today’s programming languages that are used to deal with big data, Milk code runs four times faster. Wondering how? The secret lies in the way cores collect and cache the data.
The current method that involves fetching the whole block of data from memory isn’t efficient when only a small block is needed from a huge data set. While working with Milk, when a core needs a piece of data, it doesn’t request a cacheful of neighboring data. Instead, it adds the item’s path to a list of locally stored addresses.
When this list becomes long enough, all cores pool their lists and group the neighboring addresses. The next step involves the redistribution of the lists to the core. Thus, a core requests data items that it knows it needs.
Milk does this with the help of some commands added to OpenMP, which is an extension of programming languages like C and Fortran. OpenMP helps a programmer to make it easier to write code for multicore processors. With Milk, a programmer adds few lines of code around existing the pieces to make the whole process more efficient. Milk’s compiler, which figures our how to manage the memory, acts a major role.
Here’s what Matei Zaharia, an assistant professor at Stanford Univerity, has to say about Milk:
“Milk helps to address this gap by optimizing memory access in common programming constructs. The work combines detailed knowledge about the design of memory controllers with knowledge about compilers to implement good optimizations for current hardware.”
Later this week, Milk will be presented at the International Conference on Parallel Architectures and Compilation Techniques.
Did you find this article interesting? Don’t forget to drop your feedback in the comments section below.
☞ Become a Hadoop Developer