Pool Resources
Description
Library to generalize multiprocessing.Pool(n: int) to handle generic resources.
First class support for torch devices as a generic resource.
Example for n torch GPUs and k torch Modules
from pool_resources import PoolResources
from pool_resources.resources import TorchResource
class Model(nn.Module):
def __init__(self, input_shape, output_shape):
super().__init__()
self.fc = nn.Linear(input_shape, output_shape)
def forward(self, x):
return self.fc(x)
def forward_fn(item):
model, data = item
return model.forward(data)
modules = [Model(input_shape=20, output_shape=30) for _ in range(k)]
data = tr.randn(k, B, 20)
seq = zip(modules, data)
resources = [TorchResource(f"cuda:{i}") for i in range(n)]
res_sequential = list(map(forward_fn, seq))
res_parallel = PoolResources(resources).map(forward_fn, seq)
Metadata
Release files for pool-resources 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pool-resources-0.3.0.tar.gz | 6.1 kB | Details |
Release files / pool-resources-0.3.0.tar.gz
| Download URL | pool-resources-0.3.0.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8512e2424536797a84bd7b9fd9802cc50fc9aa952d38f0437332d9cd7152b6cb
|
|
BLAKE2b-256 checksum How to use checksums |
afc0674fbc0a3ca7df7ac5cba7ca8262e4332b172f10dcbfbf5faa9a1a5809da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.8.18
|