GALFORM execution helper utilities
Project description
galform_execution
A Python-based utility to manage GALFORM N-body simulation submissions to SLURM on COSMA.
galform_execution automates the generation and submission of SLURM batch scripts for GALFORM runs. It handles environment setup, parameter injection into .input.ref files, and conditional post-processing (NETA, LUM_FUN, etc.), providing a robust and reproducible workflow for large-scale galaxy formation simulations.
Key Features
- Dynamic Script Generation: Generates self-contained
tcshscripts with resolved simulation and model parameters. - Config-Driven: Manage simulations, models, and dust parameters via JSON configurations.
- SLURM Optimized: Automatic job array support and remapping of high subvolume indices.
- Robustness: Built-in retries with exponential backoff for transient scheduler errors.
Prerequisites
- Environment: Access to the COSMA HPC cluster (Durham University).
- Tooling: uv is recommended for fast installation and dependency management.
Installation
# Clone the repository
git clone https://github.com/OscarHickman/galform_execution.git
cd galform_execution
# Install the package and its dependencies using uv
uv pip install -e .
Quick Start
1. Identify your GALFORM directory
You need a compiled version of GALFORM with the standard directory structure (containing build/galform2, *.input.ref, etc.).
2. Preview a submission (Dry Run)
Check the generated SLURM script without submitting to the queue:
submit-galform-job /path/to/your/galform --nbody-sim Mill2 --model lc16 --iz 40 --nvol 1-64 --dry-run
3. Submit a job array
submit-galform-job /path/to/your/galform --nbody-sim Mill2 --model lc16 --iz 40 --nvol 1-64 --output-folder-name MyProject
Configuration
Configurations are stored in galform_execution/config/:
simulations/: JSON files defining N-body simulation parameters (tree paths, cosmology).models.json: Maps model names to base input files and dust profiles.redshift_lists/: Redshift mappings for various simulations.
Development
Running Tests
uv run pytest tests
Linting
uv run ruff check galform_execution
License
Distributed under the MIT License. See LICENSE for more information.
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 galform_execution-0.1.0.tar.gz.
File metadata
- Download URL: galform_execution-0.1.0.tar.gz
- Upload date:
- Size: 23.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f05406b69ad3426166e51c970b425f672736e43cd6b3515708a9df4959569ed8
|
|
| MD5 |
ad71c8b7317230b5ce380a28ef7e6160
|
|
| BLAKE2b-256 |
6da749930e98585c39681e3302843d7c02f01a38ebb7bd39d6cc717365ef76d4
|
Provenance
The following attestation bundles were made for galform_execution-0.1.0.tar.gz:
Publisher:
publish.yml on OscarHickman/galform_execution
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galform_execution-0.1.0.tar.gz -
Subject digest:
f05406b69ad3426166e51c970b425f672736e43cd6b3515708a9df4959569ed8 - Sigstore transparency entry: 1645170475
- Sigstore integration time:
-
Permalink:
OscarHickman/galform_execution@b8b0372dddc05cee5e316e0bb230646602cbd989 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/OscarHickman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b8b0372dddc05cee5e316e0bb230646602cbd989 -
Trigger Event:
push
-
Statement type:
File details
Details for the file galform_execution-0.1.0-py3-none-any.whl.
File metadata
- Download URL: galform_execution-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.7 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 |
6fa785a366120c82ce6a50cf8195135e8d2405b8c63844670fae9de7838ec94b
|
|
| MD5 |
ab5604f671b9c5db2a2ec41f1e76f486
|
|
| BLAKE2b-256 |
6e17c23daccc8a3e405976aeafce8006421b8cfafc42e3a58ea50c96aff899bc
|
Provenance
The following attestation bundles were made for galform_execution-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on OscarHickman/galform_execution
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galform_execution-0.1.0-py3-none-any.whl -
Subject digest:
6fa785a366120c82ce6a50cf8195135e8d2405b8c63844670fae9de7838ec94b - Sigstore transparency entry: 1645170550
- Sigstore integration time:
-
Permalink:
OscarHickman/galform_execution@b8b0372dddc05cee5e316e0bb230646602cbd989 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/OscarHickman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b8b0372dddc05cee5e316e0bb230646602cbd989 -
Trigger Event:
push
-
Statement type: