Bundled + user-extensible Parsl configs for MIDAS pipelines.
Project description
midas-parsl-configs
Bundled + user-extensible Parsl configs for MIDAS pipelines.
This package owns the cluster Parsl configs that used to live under
FF_HEDM/workflows/*Config.py and NF_HEDM/workflows/*Config.py, plus
a registry + a SLURM/PBS submit-script-to-config generator so users
don't have to hand-edit Python to bring a new cluster online.
What it gives you
from midas_parsl_configs import load_config, available_configs
available_configs()
# {'local': 'builtin', 'umich': 'builtin', 'polaris': 'builtin',
# 'mycluster': 'user:/Users/me/.midas/parsl_configs/myclusterConfig.py', ...}
cfg = load_config("polaris", n_nodes=4, n_cpus=64,
script_dir="/path/to/run")
parsl.load(config=cfg)
load_config sets the env vars the bundled configs read at import time
(MIDAS_SCRIPT_DIR, nNodes, PROJECT_NAME, QUEUE_NAME,
CONDA_LOC) before importing the module so you get a runnable Config
back.
Bundled configs
| name | scheduler | source |
|---|---|---|
local |
ThreadPoolExecutor | local development |
adhoc |
AdHoc + SSH | beam-time pool of workers |
orthrosnew |
AdHoc + SSH | APS Orthros (puppy80…) |
orthrosall |
AdHoc + SSH | APS Orthros (pup0100…) |
umich |
SlurmProvider | UMich GreatLakes |
marquette |
SlurmProvider | Marquette HPC |
purdue |
SlurmProvider | Purdue Halstead |
polaris |
PBSProProvider | ALCF Polaris |
Bringing your own cluster online
midas-parsl-configs generate /path/to/your_submit.sh --name mycluster
This parses #SBATCH / #PBS directives + the body's module load /
conda activate / source lines, then writes
~/.midas/parsl_configs/myclusterConfig.py. From then on
midas-parsl-configs list and any pipeline driver that resolves
through the registry (midas-ff-pipeline, in particular) can use
--machine mycluster.
Override the user dir with MIDAS_PARSL_CONFIGS_DIR if you want the
file written somewhere else.
User configs override bundled configs of the same name — useful when you're iterating on a cluster's setup without losing the upstream default.
CLI
midas-parsl-configs list # show every visible config + source
midas-parsl-configs generate <submit.sh> --name <short> # write user config from submit script
midas-parsl-configs generate <submit.sh> --name x --print # dry run, prints to stdout
midas-parsl-configs show <name> # repr() of the resolved Config
midas-parsl-configs path # path to the user config dir
What generate translates
SLURM (#SBATCH):
--partition / -p→partition--account / -A→scheduler_options(#SBATCH --account=…)--time / -t→walltime--nodes / -N→nodes_per_block--ntasks-per-node→cores_per_worker--cpus-per-task / -c→cores_per_worker--gres→scheduler_options+ GPU count detection--constraint / --qos / --mem→ passed through asscheduler_options--job-name / -J→ executor label
PBS (#PBS):
-q→ queue-A→ account-l walltime=…→ walltime-l select=N:ncpus=M:ngpus=K→nodes_per_block+cores_per_worker+ GPU count-l filesystems=…→ scheduler_options-N→ executor label
Anything we can't translate becomes a passthrough scheduler_options line so you can refine the generated module by hand if needed.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file midas_parsl_configs-0.1.0.tar.gz.
File metadata
- Download URL: midas_parsl_configs-0.1.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
344dff88de5f782aa18637c1690a05e6ea5d53032ac7bbf54b8e609751437928
|
|
| MD5 |
c4a5a793d754333f3be288b331a138fa
|
|
| BLAKE2b-256 |
0a2af56b481040714fe7dfc081eb9bdb00a18497963a5c4cb3ecc614efe4478c
|
Provenance
The following attestation bundles were made for midas_parsl_configs-0.1.0.tar.gz:
Publisher:
python-packages.yml on marinerhemant/MIDAS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
midas_parsl_configs-0.1.0.tar.gz -
Subject digest:
344dff88de5f782aa18637c1690a05e6ea5d53032ac7bbf54b8e609751437928 - Sigstore transparency entry: 1446368772
- Sigstore integration time:
-
Permalink:
marinerhemant/MIDAS@360096912e32ed91a9ac78f15b297ef248dc96de -
Branch / Tag:
refs/tags/midas-parsl-configs-v0.1.0 - Owner: https://github.com/marinerhemant
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@360096912e32ed91a9ac78f15b297ef248dc96de -
Trigger Event:
release
-
Statement type:
File details
Details for the file midas_parsl_configs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: midas_parsl_configs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96ecb343b148d11174fe4814e4f9dfd2caf117ef01188aa5dfcc8b4a777dfc21
|
|
| MD5 |
dff6262d18c40e89e004373f144409f6
|
|
| BLAKE2b-256 |
fe45b69022fcab3221c4359137516eea8fa711b1ff179c0ac197cd214d409037
|
Provenance
The following attestation bundles were made for midas_parsl_configs-0.1.0-py3-none-any.whl:
Publisher:
python-packages.yml on marinerhemant/MIDAS
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
midas_parsl_configs-0.1.0-py3-none-any.whl -
Subject digest:
96ecb343b148d11174fe4814e4f9dfd2caf117ef01188aa5dfcc8b4a777dfc21 - Sigstore transparency entry: 1446369050
- Sigstore integration time:
-
Permalink:
marinerhemant/MIDAS@360096912e32ed91a9ac78f15b297ef248dc96de -
Branch / Tag:
refs/tags/midas-parsl-configs-v0.1.0 - Owner: https://github.com/marinerhemant
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-packages.yml@360096912e32ed91a9ac78f15b297ef248dc96de -
Trigger Event:
release
-
Statement type: