The built-in parallelism follows essentially a master-worker
multiprocess model, yes. If your algorithm involves scattering from
and gathering to the master process, then the communication would
indeed incur two remote copies. However, you can in principle write
parallel algorithms in Julia that do neither of these. You can
load/generate data directly on worker processes using remote calls
(like @spawn or @spawnat), so that I/O and computations are done
entirely on the workers, and workers can fetch data from each other
using RemoteRefs.
Thanks,

Jiahao Chen, PhD
Staff Research Scientist
MIT Computer Science and Artificial Intelligence Laboratory


On Sun, Feb 9, 2014 at 3:11 PM, Bob Cowdery <[email protected]> wrote:
> Hi
>
> Reading the docs it seems that the parallel methods (on the same node) all
> use process to process communication over TCP rather than threads. Correct
> me if I'm wrong here. It seems to be the same sort of approach as Python
> multiprocessing (due to its single threaded runtime). This approach requires
> a data copy ( 2 actually) and theoretically puts a high overhead on pipeline
> type processing because of the data copy, transmission time and consequent
> memory churn. Am I reading this correctly?
>
> Thanks
> -- bob

Reply via email to