Julia multiprocessing is not using fork in Linux?

I am not sure I understand it correctly or not. In python multiprocessing, it is using fork in Linux, so the children processes shares memory directly. The memory sharing will not change if you are not changing it since it uses copy-and-update rule. This memory sharing really can increase memory efficiency and also performance.

In Julia, it seems that the children processes are not using fork? As a result, we have to use @everywhere to execute the same code in all the processes?

1 Like

Yes. I suspect it’s because the multiprocessing can also be across machines and they wanted the behavior to be the same in both cases. Threads are high on the list of priorities so I suspect that will be released “soon” which will give you the shared memory.

1 Like

Julia also supports multithreading:

https://docs.julialang.org/en/v1/manual/parallel-computing/#Multi-Threading-(Experimental)-1

It works now and it’ll get much better in version 1.3.

2 Likes