A polished shmarray, originated by David Baddeley
Project description
shmarray
NOTE: If you are using Python 3.8, please turn to multiprocessing.shared_memory instead.
shmarray is a shared numpy-array implementation utilizing multiprocessing.sharedctypes. It is a quite useful small library created of David Baddeley. I found it at https://github.com/lucastheis/parallel/blob/master/shmarray.py
Despite its usefulness, it not only does not come with a pip-installable package, but also contains disrepaired bugs.
This repo is created as a remedy.
Installation
pip install shmarray
Usage
test.py
from multiprocessing import Process
import time
import shmarray
def worker(data):
while True:
data += 1
time.sleep(1)
def monitor(data):
while True:
print(data)
time.sleep(0.5)
data = shmarray.zeros(10)
procs = [
Process(target=worker, args=(data, )),
Process(target=monitor, args=(data, )),
]
for p in procs:
p.start()
for p in procs:
p.join()
Result:
$ python3 test.py
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[2. 2. 2. 2. 2. 2. 2. 2. 2. 2.]
[2. 2. 2. 2. 2. 2. 2. 2. 2. 2.]
[3. 3. 3. 3. 3. 3. 3. 3. 3. 3.]
[3. 3. 3. 3. 3. 3. 3. 3. 3. 3.]
[4. 4. 4. 4. 4. 4. 4. 4. 4. 4.]
[4. 4. 4. 4. 4. 4. 4. 4. 4. 4.]
[5. 5. 5. 5. 5. 5. 5. 5. 5. 5.]
[5. 5. 5. 5. 5. 5. 5. 5. 5. 5.]
[6. 6. 6. 6. 6. 6. 6. 6. 6. 6.]
[6. 6. 6. 6. 6. 6. 6. 6. 6. 6.]
...
Under the hood
The code in shmarray.py
is mostly the same as the original, I've only done a few things:
- fix a bug that did not pass
dtype
argument to downstream calls - fix python version compatibility bugs
- reformat the code using black
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file shmarray-0.0.3.tar.gz
.
File metadata
- Download URL: shmarray-0.0.3.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9810682d778a6cb051a0e3efa0076dab55c3d7dc1e3cfb7c0712cf36f19d093 |
|
MD5 | 0e65fd66155557b3225db3306657e72b |
|
BLAKE2b-256 | 8f3fd1c9152723d257e374aa8471457b854c931230f7fee33bbc3797cfda70df |
File details
Details for the file shmarray-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: shmarray-0.0.3-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.2.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17f22c295a44f76360437435efaa0828c158cad288c7268c51507fd4870f7919 |
|
MD5 | 5ce0f191293396bce59b738a768698c3 |
|
BLAKE2b-256 | 662deccccb50515acaf2c0ae840dcc1776184fe6b1319b2c5c57535b99dd6c9d |