Built in parallel computing capabilities?

Most computers nowadays have multiple cores. Instead of asking users to determine whether parallel computing is possible, when to turn on parallel computing, and how to program it, I wonder if Julia can become one of the first programming languages that have parallel computing built in?

It would be fantastic that Julia can make the decision automatically based on:
(a) your processor speed
(b) the number of cores
(c) your memory capacity
(d) the amount of work it will take to run the task
and turn on parallel computing automatically as needed.

It is also nice to program it at a reasonable capacity level. For example, one of the reasons I don’t like using parallel computing in Matlab is that a lot of the times, it will consume 100% of your CPU and memory, leading to crashes.

This capability will surely give Julia a major edge among the competition.

Many thanks for your consideration.

The evaluation order of some things is undefined (or at least it was), which does leave open possiblities. For example, in

res = f(x) < f(y) < f(z)

the f calls could be evaluated in parallel if results don’t depend on their order. Guy Steele stated recently that one of the lost features of Fortress he would like to see continued in modern parallel languages is “parallel by default”, where it would require a little effort to make things sequential where needed, rather than requiring a little effort to make things parallel.

I have to admit @leon that I really like your posts … there is, I do not know how to say it … Silicon Valley spirit natively embedded into them.

It is not difficult to make programs go parallel. It is difficult to make them go fast while going parallel.

4 Likes