[Numpy-discussion] numpy/Windows shared arrays between processes?

David Cournapeau david@ar.media.kyoto-u.ac...
Tue Oct 9 02:32:16 CDT 2007


Sebastian Haase wrote:
> Hi!
> I was in fact experimenting with this. The solution seemed to lie in
> "simple" memmap as it is implemented in Windows:
>
> import numpy as N
> def arrSharedMemory(shape, dtype, tag="PriithonSharedMemory"):
>     """
>     Windows only !
>     share memory between different processes if same `tag` is used.
>     """
>     itemsize = N.dtype(dtype).itemsize
>     count = N.product(shape)
>     size =  count * itemsize
>
>     import mmap
>     sharedmem = mmap.mmap(0, size, tag)
>     a=N.frombuffer(sharedmem, dtype, count)
>     a.shape = shape
>     return a
>
> For explaintion look up the microsoft site for the mmap documentation.
> And/or the Python-doc for mmap.
> (( I have to mention, that I could crash a process while testing this ... ))
>
> If anyone here would know an equivalent way of doing this on
> Linux/OS-X  we were back to a cross-platfrom function.
>   
AFAIK, the tag thing is pretty much windows specific, so why not just 
ignoring it on non windows platforms ? (or interpreting the tag argument 
as the flag argument for mmap, which would be consistent with python 
mmap API ?)

cheers,

David


More information about the Numpy-discussion mailing list