Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

resources

action.resources: table - Defines the resources that the action will consume. Row passes this information to the scheduler when you submit a job.

Example:

[action.resources]
processes.per_submission = 10
threads_per_process = 4
walltime.per_submission = "04:00:00"

tip

You may omit [action.resources] entirely.

processes

action.resources.processes: table - Set the number of processes this action will execute on (launched by mpi or similarly capable launcher). The table must have one of two keys: per_submission or per_directory.

Examples:

processes.per_submission = 16
processes.per_directory = 8

When set to per_submission, row asks the scheduler to allocate the given number of processes for each job. When set to per_directory, row requests the given value multiplied by the number of directories in the submission group. Use per_submission when your action loops over directories and reuses the same processes to perform computations. Use per_directory when your action parallelizes over the directories and therefore requires processes.per_directory * num_directories total processes.

When omitted, processes defaults to per_submission = 1.

threads_per_process

action.resources.threads_per_process: positive integer - The number of CPU threads your action utilizes per process. When omitted, row does not make any specific request for threads from the scheduler. Most schedulers default to 1 thread per process in this case.

gpus_per_process

action.resources.gpus_per_process: positive integer - The number of GPUs your action utilizes per process. When omitted, row does not make any specific request for GPUs from the scheduler. Most schedulers default to 0 GPUs per process in this case.

walltime

action.resources.walltime: table - Set the walltime that this action takes to execute. The table must have one of two keys: per_submission or per_directory. Valid walltime strings include "HH:MM:SS", "D days, HH:MM:SS", and all other valid Duration formats parsed by speedate.

Examples:

walltime.per_submission = "4 days, 12:00:00"
walltime.per_directory = "00:10:00"

When set to per_submission, row asks the scheduler to allocate the given walltime for each job. When set to per_directory, row requests the given value multiplied by the number of directories in the submission group. Use per_submission when your action parallelizes over directories and therefore takes the same amount of time independent of the submission group size. Use per_directory when your action loops over the directories and therefore the walltime scales with the number of directories.

When omitted, walltime defaults to per_directory = 01:00:00.

memory_per_cpu_mb

action.resources.memory_per_cpu_mb: integer - The number of megabytes of memory to request per CPU (thread). memory_per_cpu_mb is used when gpus_per_process is unset.

important

Most users should omit memory_per_cpu_mb. When omitted row will automatically select the maximum amount of memory possible without incurring extra charges on your HPC resources.

memory_per_gpu_mb

Similar to memory_per_cpu_mb, but for GPUs. memory_per_gpu_mb is used when gpus_per_process is set.


Development of row is led by the Glotzer Group at the University of Michigan.

Copyright © 2024-2025 The Regents of the University of Michigan.