Skip to main content

A Python package for managing simulations locally, on HTCondor and on Slurm, with some specific elements that are good in a CERNy environment.

Project description

simanager

Description

simanager is a simple manager for your simulations. It is designed to automatically create and manage a directory structure for your simulations, in order to keep your simulations organized and easy to find, and guarantee reproducibility.

Currently, it (tries to) support the following execution environments:

  • Local machine;
  • SLURM clusters on CNAF;
  • HTCondor clusters on CERN's lxplus machines;

Installation

simanager is available on PyPI, so you can install it with:

pip install simanager

Usage

simanager expects a simulation study to be structured in a precise way. One must first create a master directory, which will contain:

  • a main script in bash, which will be used to launch the simulation;
  • a master parameter file in YAML, which will contain the parameters of the simulation and will be specialized by the manager for each simulation;
  • all support files needed by the simulation (it is currently expected that the main script will launch a python script, which then loads the YAML parameter file, so the current defaults and examples are for python simulations).

After the master study is constructed, one can define a set of parameters to be varied, in order to do that, the ParameterInspection dataclass is defined in the simanager/parameter_inspection.py file. The ParameterInspection dataclass is a container for the parameters to be varied, and it is used to generate a list of specialized parameter files, which will be used by the manager to launch the simulations.

The best way to create a simulation study, is to compose in the desired root directory a simulation_study.yaml file, which will contain the parameters of the study. This file will be used to construct a SimulationStudy dataclass, which will be used by the manager to create the directory structure and launch the simulations.

Example of a simulation_study.yaml file:

# simulation parameters
study_name: "test_local"
study_path: "./"
original_folder: "/home/camontan/cernbox/work/code/generic_study/tests/example_master_study"
main_file: "main_script.sh"
config_file: "params.yaml"
# The following parameters are used to generate the study
parameters_inspected:
  - parameter_name: "numeric_parameters/max_attempts"
    inspection_method: "range"
    min_value: 1
    max_value: 4
    combination_idx: 0
    combination_method: "meshgrid"
    parameter_file_name: "mxatt"
  - parameter_name: "numeric_parameters/timeout_seconds"
    inspection_method: "linspace"
    min_value: 1
    max_value: 2
    n_samples: 4
    combination_idx: 0
    combination_method: "meshgrid"
    parameter_file_name: "tout"
  - parameter_name: "numeric_list"
    inspection_method: "custom"
    values: [[1, 2, 3], [4, 5, 6]]
    parameter_file_name: "nlist"

Then one can load up the folder with the SimulationStudy dataclass:

import simanager as sim
study = sim.SimulationStudy.load_folder("./")

The SimulationStudy dataclass will be used by the manager to create the directory structure and launch the simulations. The manager can be used as follows:

study.initialize_folders()
study.print_sim_status()

The SimulationStudy can then be passed to three different executor functions, which will launch the simulations in the desired environment, namely:

  1. sim.job_run_local, which will launch the simulations on the local machine;
  2. sim.job_run_slurm, which will launch the simulations on a SLURM cluster;
  3. sim.job_run_htcondor, which will launch the simulations on a HTCondor cluster.

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

simanager-0.0.1rc0.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

simanager-0.0.1rc0-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file simanager-0.0.1rc0.tar.gz.

File metadata

  • Download URL: simanager-0.0.1rc0.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for simanager-0.0.1rc0.tar.gz
Algorithm Hash digest
SHA256 f5bb43cb68bf353059be5104bb6801e0ae154fc1588b69eac039dcc77c767cd2
MD5 19176fac9b39969fb1e915ad3e3e8910
BLAKE2b-256 b03f76139538e6fff9ab1b1bb3edcd93ad2e8d2c8de6f3b5388d00c997732452

See more details on using hashes here.

File details

Details for the file simanager-0.0.1rc0-py3-none-any.whl.

File metadata

  • Download URL: simanager-0.0.1rc0-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for simanager-0.0.1rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e8530d6879b056d3eeb019d2cffbee5386556654e2b4c8dd4ffbfb8da044c9b
MD5 3a3e980b0ce020455b2e9495b0c9b9d9
BLAKE2b-256 42c8933b3ac3f3e5a4595c003d9c15879d9c903cbaee0a2685ee226dbcfc8075

See more details on using hashes here.

Supported by

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