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
