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

Release notes

Next release

Added:

  • Rayon launcher that prefixes commands with RAYON_NUM_THREADS={T}.
  • slurm_gpus_per_task cluster option.

Fixed:

  • Fix "JSON Pointers" example.
  • Handle non-numeric suffixes written by sbatch.

0.7.1 (2025-08-21)

Fixed:

  • Statically link Linux binaries so that cargo binstall row installs a working version even on old Linux distributions.

0.7.0 (2025-08-11)

Highlights:

Row 0.7 allows users to place product files in subdirectories. For example:

[[action]]
products = ['file1.dat', 'subdir/file2.h5', 'long/path/to/file3.gsd']

The code is also more readable now using if-let chains that require Rust 1.88.

Added:

  • products can now contain files in subdirectories.

Changed:

  • Rust 1.88.0 is required to build row from source.

0.6.0 (2025-05-02)

Highlights:

Row 0.6 adds new options that allow you to customize the location and/or names of the output files generated by submitted jobs. Set output_file_path to place all output files in a given directory:

[action.submit_options.<cluster_name>]
output_file_path = "my_output_directory"

By default, files are named {action_name}-%j.out Set output_file_name to use different names:

[action.submit_options.<cluster_name>]
output_file_path = "output-%j.txt"

The string "{output_file_path}/{output_file_path}" (or just "{output_file_name}" when output_file_path is unset) is passed to sbatch's --output option.

Added:

  • The submit_options keys output_file_path and output_file_name.

0.5.0 (2025-04-21)

Highlights:

In Row 0.5, the subcommands show directories, show jobs, and show status now report No matches when there are no results to show.

Users can also request an amount of memory specific to an action with memory_per_cpu_mb or memory_per_gpu_mb. For example:

[action.resources]
memory_per_cpu_mb = 1024

When set, the given value will be passed to the SLURM option --mem-per-cpu or --mem-per-gpu if the partition has no memory request set or the action's value is smaller than the partition's. Row returns an error when the user requests more memory than the partition has available to prevent unexpected additional costs.

tip

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

Added:

  • Actions can request the following new resources: memory_per_cpu_mb or memory_per_gpu_mb.

Changed:

  • Writing tabular output with no rows now results in the output No matches..
  • Build executables on Ubuntu 22.04.
  • Report an error when the workflow requests 0 processes, GPUs, or threads.
  • Require Rust 1.85 or newer to build.
  • Memory requests in clusters.toml must now be set in MB. The memory_per_* keys are renamed to memory_per_*_mb.

Fixed:

  • Submit MPI jobs on Great Lakes without error.

0.4.0 (2024-12-06)

Highlights:

Row 0.4 expands the command templating functionality, adds shell autocompletion, and the show jobs subcommand.

The new template arguments allow direct use of command line applications as actions, removing the need for shim scripts that access the workspace path and/or directory values before invoking a subprocess. {workspace_path} expands to the current project's workspace path and {/JSON pointer} expands to the value of the given JSON pointer for the directory acted on.

Shell autocompletion allows users to autocomplete all parameter names and workspace dependent values for cluster, action, and directories. To enable, execute the appropriate command in your shell's profile:

  • Bash: source <(COMPLETE=bash row)
  • Fish: source (COMPLETE=fish row | psub)
  • Zsh: source <(COMPLETE=zsh row)

show jobs prints a table summarizing all currently submitted jobs that match given action and directory criteria.

Added:

  • In job scripts, set the environment variable ACTION_WORKSPACE_PATH to the relative path to the current workspace.
  • {workspace_path} template parameter in action.command - replaced with the relative path to the current workspace.
  • {/JSON pointer} template parameter in action.command - replaced with the portion of the directory's value referenced by the given JSON pointer.
  • Shell autocomplete.
  • show jobs subcommand.

Fixed:

  • All user-provided content (directories, action names, cluster names, and values) are properly escaped in the bash script output.
  • Typographical errors in the documentation.
  • The documentation now builds correctly with mdbook 0.4.43.
  • Example code converts environment variables to integers where needed.

0.3.1 (2024-10-04)

Changed:

  • Improved the documentation.

0.3.0 (2024-08-21)

Highlights:

Row 0.3 adds command line arguments to reduce the output from show commands, including the --short option to most show subcommand and status filtering options to show status. For example, row show status --eligible shows only actions that have eligible directories and row show cluster --all --short lists the names of all the available cluster configurations. Row 0.3 also makes a number of fixes and changes when using group.include in a non-trivial manner.

Added:

  • Edit links to documentation pages.
  • New arguments to show status display actions that are in the requested states: --completed, --eligible, --submitted, and --waiting.
  • cluster.submit_options configuration option in clusters.toml.
  • --short option to show launchers and show directories.

Changed:

  • Show import lines in Python examples.
  • Improve the verbose output from submit.
  • show status hides actions with 0 directories by default. Pass --all to show all actions.
  • clean now cleans all caches by default.
  • Submit jobs with --constraint="scratch" by default on Delta.
  • Submit jobs with --constraint="nvme" by default on Frontier.
  • group.include.all now employs short circuit evaluation.
  • Change --name option of show cluster to --short.
  • show directories now accepts an optional --action argument.

Fixed:

  • submit_whole = true checks only directories that match group.include.
  • Do not print trailing spaces after the final column in tabular output.

0.2.0 (2024-06-18)

Row 0.2 adds support for partial-node job submissions on clusters without shared partitions and fixes GPU job submissions on some clusters.

Added:

  • warn_[cpus|gpus]_not_multiple_of key in clusters.toml.

Changed:

  • OLCF Frontier configuration now uses warn_gpus_not_multiple_of instead of require_gpus_multiple_of.
  • OLCF Andes configuration now uses warn_cpus_not_multiple_of instead of require_cpus_multiple_of.

Fixed:

  • Prevent gpus-per-task is mutually exclusive with tres-per-task error.
  • Correctly set --mem-per-gpu on Great Lakes.
  • Correct formatting in the documentation.
  • Correct typos in the documentation.

0.1.3 (2024-05-30)

Fixed:

  • Broken build.

0.1.2 (2024-05-30)

Fixed:

  • Erroneous code examples in the Grouping directories tutorial.

0.1.1 (2024-05-29)

Added:

  • conda-forge installation instructions.

0.1.0 (2024-05-22)

  • Initial release.

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

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