# Built in parallel computing capabilities?

**URL:** https://discourse.julialang.org/t/built-in-parallel-computing-capabilities/72069
**Category:** Internals & Design
**Tags:** question
**Created:** [November 25, 2021, 3:37pm UTC](https://discourse.julialang.org/t/built-in-parallel-computing-capabilities/72069 "2021-11-25T15:37:07Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![leon](https://avatars.discourse-cdn.com/v4/letter/l/dc4da7/32.png) [@leon](https://discourse.julialang.org/u/leon)
#### Post date: [November 25, 2021, 3:37pm UTC](https://discourse.julialang.org/t/built-in-parallel-computing-capabilities/72069/1 "2021-11-25T15:37:07Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![akb](https://avatars.discourse-cdn.com/v4/letter/a/5daacb/32.png) [@akb](https://discourse.julialang.org/u/akb)
#### Post date: [November 25, 2021, 10:34pm UTC](https://discourse.julialang.org/t/built-in-parallel-computing-capabilities/72069/2 "2021-11-25T22:34:47Z")

</div>

The evaluation order of some things is [undefined](https://discourse.julialang.org/t/chained-comparison-evaluation-order/8999/3) (or at least it was), which does leave open possiblities. For example, in

```julia
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](https://youtu.be/c_ZJECVlpog?t=420) 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.

---

<div class="post-metadata">

### Author: ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)
#### Post date: [November 25, 2021, 10:35pm UTC](https://discourse.julialang.org/t/built-in-parallel-computing-capabilities/72069/3 "2021-11-25T22:35:34Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [November 25, 2021, 11:41pm UTC](https://discourse.julialang.org/t/built-in-parallel-computing-capabilities/72069/4 "2021-11-25T23:41:05Z")

</div>

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