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.
