Modifier List
This is a list of modifiers you can use to augment experiments created using Ramble. This list is automatically generated based on the modifiers in this Ramble version.
Ramble currently has 32 mainline modifiers:
apptainer¶
- Ramble modifiers:
- Description:
- Apptainer is a container platform. It allows you to create and run containers that package up pieces of software in a way that is portable and reproducible. You can build a container using Apptainer on your laptop, and then run it on many of the largest HPC clusters in the world, local university or company clusters, a single server, in the cloud, or on a workstation down the hall. Your container is a single file, and you don’t have to worry about how to install all the software you need on each different operating system.
collection-daemon¶
- Ramble modifiers:
- Description:
- Define a modifier that starts (and eventually terminates) a collection daemon
conditional-psm3¶
- Ramble modifiers:
- Description:
- Modifier to apply PSM3 (conditionally, based on MPI) This modifier will conditionally apply PSM3 to all mpi commands within an experiment. It works by determining if the experiment uses a specific MPI implementation, as defined by the variable `psm3_mpi`. The experiment will contain commands which grep for the MPI defined by `psm3_mpi` in the spack environment the experiment will use. If it is found, environment variables (in bash/sh form) will be injected into the execution environment. These environment variables are removed after the command finishes.
docker¶
- Ramble modifiers:
- Description:
- Docker is a set of platform as a service (PaaS) products that use OS- level virtualization to deliver software in packages called containers. The service has both free and premium tiers. The software that hosts the containers is called Docker Engine. It was first released in 2013 and is developed by Docker, Inc. When mode == build_only or mode == standard_with_build, this modifier will perform a docker build on a Dockerfile. After creating the container image, this modifier will pre- define container_uri and container_name for subsequent containerizer modifiers to ingest.
env-var-aggregator¶
- Ramble modifiers:
- Description:
- This modifier is used to prefix, and aggregate the names of environment variables into a common environment variable definition. There are two execution modes: 'all' - Includes all environment variables defined in the environment when the experiment is being executed. 'explicit' - Includes only explicitly defined environment variables The output of this modifier is to define a new environment variable (defined by aggregated_env_var_name) which will contain all of the aggregated environment variable names. For example, if the current environment has HOME, and PWD defined, then the resulting environment variable will have default contents of "-x HOME -x PWD". The prefix, and delimiter are configurable through experiment variables.
ethtool¶
- Ramble modifiers:
- Description:
- Define a modifier for network configuration. This modifier queries for common settings as well as supporting configuration of the network interface. Example usage: ```yaml ramble: variables: mpi_command: '' batch_submit: 'sbatch {execute_experiment}' hostlist: "${SLURM_JOB_NODELIST}" processes_per_node: 1 applications: hostname: workloads: local: experiments: test: variables: n_nodes: 2 new_mtu: 4096 channel_setting: 'rx 8 tx 8' coalesce_setting: 'rx-usecs 20 tx-usecs 20' modifiers: - name: ethtool ```
exit-code¶
- Ramble modifiers:
- Description:
- Define a modifier to capture exit codes from executables The exit code that is captured by this modifier is the last portion of every executable template. As a result, the exit codes tracked might not be accurate if the experiments being executed have many templates within singular executable definitions.
gcp-cloud-logging¶
- Ramble modifiers:
- Description:
- Upload experiment logs to Google Cloud Platform Cloud Logging. https://cloud.google.com/logging?e=48754805&hl=en
GcpMetadata¶
- Ramble modifiers:
- Description:
- Define a modifier to grab GCP VM metadata This mod can capture useful metadata (such as node type and VM image) for GCP VMs Requires a definition for the `hostlist` variable, to be able to capture per-node metadata.
intel-aps¶
- Ramble modifiers:
- Description:
- Define a modifier for Intel's Application Performance Snapshot Intel's Application Performance Snapshot (APS) is a high level profiler. It gives a quick view into the high level performance characteristics of an experiment. This modifier allows for easy application of APS to experiments.
lscpu¶
- Ramble modifiers:
- Description:
- Define a modifier for lspcu lscpu gives useful information about the underlying compute platform. This modifier allows experiments to easily extract system information while the experiment is being performed.
nccl-env¶
- Ramble modifiers:
- Description:
- Define a modifier for configuring NCCL based environment variables NCCL is the NVIDIA Collective Communications Library, which provides inter- GPU communication primitives that are topology-aware and can easily be integrated into applications. This modifier presents variables that can be use to configure and parameterize aspects of NCCL's behavior. The available parameters are documented in more details here: https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/env.html Any variable who's value is an empty string will not be define in the resulting execution script.
nccl-gib¶
- Ramble modifiers:
- Description:
- Modifier to ensure NCCL gIB is loaded into the execution environment.
nccl-tcpxo¶
- Ramble modifiers:
- Description:
- Modifier to ensure NCCL TCPXO is loaded into the execution environment.
nvidia-smi¶
- Ramble modifiers:
- Description:
- Define a modifier for nvidia-smi nvidia-smi is a command line utility, based on top of the NVIDIA Management Library (NVML), intended to aid in the management and monitoring of NVIDIA GPU devices. https://developer.nvidia.com/nvidia-system-management-interface
perf¶
- Ramble modifiers:
- Description:
- Define a modifier for capturing performance counters using 'perf'.
pre-exec-print¶
- Ramble modifiers:
- Description:
- Pre Execution Print modifier This modifier injects an echo of '{experiment_namespace}' at the beginning of each experiment. The content of this echo can be overridden by setting the value of the 'pre_exec_print_template' variable to a print template you would like to use.
pre-post-capture¶
- Ramble modifiers:
- Description:
- A modifier to inject command captures before and after certain executable commands. Useful for collecting debugging information at the beginning and end of an experiment.
pyxis-enroot¶
- Ramble modifiers:
- Description:
- Modifier to aid configuring pyxis-enroot based execution environments Pyxis is a container plugin for slurm developed by NVIDIA. https://github.com/NVIDIA/pyxis Enroot is a tool to convert containers into unprivileged sandboxes that can be executed in slurm with Pyxis. https://github.com/NVIDIA/enroot This modifier requires the following input variables: - container_uri: This needs to be a container URI that is formatted for and `enroot import` command. For examples, see https://github.com/NVIDIA/enroot/blob/master/doc/cmd/import.md - container_name: This is the name of the resulting squashfs file that enroot produces The following modifier variables are optional inputs: - container_dir - container_extract_paths The following modifier variables are generated outputs: - container_mounts - container_env_vars
status-markers¶
- Ramble modifiers:
- Description:
- Modifier to create a marker file when the experiment has started and ended. This modifier will create a .started and .finished file within the experiment run dir.
sys-stat¶
- Ramble modifiers:
- Description:
- Define a modifier for capturing system metrics. Example usage: Below is a ramble config that outputs iostat every 5s for the duration of the sleep application. ``` ramble: variants: package_manager: spack variables: apply_sampler_exe_regex: 'sleep' sampler_cmd: 'iostat -xzt 5' processes_per_node: 1 n_nodes: 1 mpi_command: '' batch_submit: '{execute_experiment}' applications: sleep: workloads: sleep: experiments: test1: variables: sleep_seconds: 6 software: packages: sysstat: pkg_spec: sysstat environments: hostname: packages: - sysstat modifiers: - name: sys-stat ```
tuned-adm¶
- Ramble modifiers:
- Description:
- Define a modifier for TunedAdm This modifier is used to select a specific tuned profile. It also records the selected profile as a FOM.
wait-for-bg-jobs¶
- Ramble modifiers:
- Description:
- Define a modifier for waiting for background jobs. This only waits for background jobs started from the experiment. For now, this modifier works with bash only.