Skip to main content

Parallel Processing Coordinator. Splits dataset processing to run parallel cluster jobs and aggregates outputs

Project description

ParProcCo

Requires a YAML configuration file in grandparent directory of package, CONDA_PREFIX/etc or /etc

--- !PPCConfig
allowed_programs:
    rs_map: msmapper_utils
    blah1: whatever_package1
    blah2: whatever_package2
url: https://slurm.local:8443
extra_property_envs: # optional mapping of properties to pass to Slurm's JobDescMsg
    account: MY_ACCOUNT # env var that holds account
    comment: mega job
valid_top_directories: # optional mapping of top directories accessible from cluster nodes
                       # (used to check job scripts, log and working directories)
    - /cluster_home
    - /cluster_apps

An entry point called ParProcCo.allowed_programs can be added to other packages' setup.py:

setup(
...
    entry_points={PPC_ENTRY_POINT: ['blah1 = whatever_package1']},
)

which will look for a module called blah1_wrapper in whatever_package1 package.

Testing

Tests can be run with

$ pytest tests

To test interactions with Slurm, set the following environment variables:

SLURM_REST_URL  # URL for server and port where the REST endpoints are hosted
SLURM_PARTITION # Slurm cluster parition 
SLURM_JWT       # JSON web token for access to REST endpoints

The environment can be set up and managed by running the create_env task in VSCode. This will read the token from ~/.ssh/slurm.tkn but will not check or generate the key. The resulting file .vscode/.env is used by the python.envFile setting to propagate these values automatically.

On the initial run, SLURM_REST_URL and SLURM_PARTITION will need to be given values manually (unless already set as environment variables). Those values will be kept whenever the task is rerun, with only the token being updated. As .vscode/.env is ignored by git, it is safe to save these values in that file.

If you are not using VSCode, running .vscode/create_env.sh will create the env file, and the variables can be exported using:

set -a
source ".vscode/.env"
set +a

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

parprocco-2.2.0.tar.gz (66.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

parprocco-2.2.0-py3-none-any.whl (58.1 kB view details)

Uploaded Python 3

File details

Details for the file parprocco-2.2.0.tar.gz.

File metadata

  • Download URL: parprocco-2.2.0.tar.gz
  • Upload date:
  • Size: 66.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for parprocco-2.2.0.tar.gz
Algorithm Hash digest
SHA256 e80e11cc595fea1d9466d3100667bad0e1bacb8d6d6878e68cfebb56cf342eb8
MD5 9d5e3b258a32cdaf38523c25f624f49b
BLAKE2b-256 93e96c3cfc3f6538406d8eb88f0499f204b42352ef9d000af42e93f539ecb3f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for parprocco-2.2.0.tar.gz:

Publisher: python-package.yml on DiamondLightSource/ParProcCo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file parprocco-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: parprocco-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for parprocco-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc00527832249eda6b1478ec4d289bd7081f4a4a6a0ae903ff21ee60c5f3317b
MD5 c7d411010d1d9051ff7e25fdaed95dc9
BLAKE2b-256 59e983daf54aa042daf2f5c23fdfd1a9a73416c1d1b0cb739188bd25888e0f17

See more details on using hashes here.

Provenance

The following attestation bundles were made for parprocco-2.2.0-py3-none-any.whl:

Publisher: python-package.yml on DiamondLightSource/ParProcCo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page