On Friday, March 20, 2015 at 12:14:08 PM UTC-5, Nils Gudat wrote:
>
> You mean turning all arrays into SharedArrays, rather than just the result 
> array? My understanding was that SharedArrays are only needed if the 
> remote processes have to write on them, while regular Arrays are the way 
> to go if the functions called on the remote processes simply read from them.
>

I actually didn't notice that `result` had been declared that way. If I 
understand correctly, since a SharedArray is in a shared memory space you 
might reduce serialization overhead since the array wouldn't have to be 
sent to the other processes, but similar to your observation I didn't 
notice a practical difference, at least for problems of the size I'm 
looking at.

Regarding your utilization question--yes, this is expected. The main 
process acts as coordinator when there are worker processes available. 
Typically you want as many worker processes as independent cores. Depending 
on the nature of the workload, you may also derive benefit from workers 
which would occupy virtual (hyperthreaded) cores.

Reply via email to