[Numpy-discussion] Using multiprocessing (shared memory) with numpy array multiplication
Sturla Molden
sturla at molden.no
Thu Jun 16 13:30:20 EDT 2011
Den 16.06.2011 18:44, skrev Christopher Barker:
>
> I'll bet this is a big issue, and one I'm curious about how to
> address, I have another problem where I need to multi-process, and I'd
> love to know a way to pass data to the other process and back
> *without* going through pickle. maybe memmapped files?
Remember that os.fork is copy-on-write optimized. Often this is enough
to share data.
To get data back, a possibility is to use shared memory: just memmap
from file 0 or -1 (depending on the system) and fork.
Note that the use of fork, as opposed to multiprocessing, avoids the
pickle overhead for NumPy arrays.
On Windows this sucks, because there is no fork system call. Here we are
stuck with multiprocessing and pickle, even if we use shared memory.
Sturla
More information about the NumPy-Discussion
mailing list