8 unstable releases (3 breaking)

new 0.4.0 Dec 6, 2024
0.3.1 Oct 4, 2024
0.3.0 Aug 21, 2024
0.2.0 Jun 18, 2024
0.1.3 May 30, 2024

#34 in Science

Download history 118/week @ 2024-08-19 5/week @ 2024-08-26 28/week @ 2024-09-23 124/week @ 2024-09-30 14/week @ 2024-10-07 6/week @ 2024-10-14 10/week @ 2024-11-04 2/week @ 2024-11-18 108/week @ 2024-12-02

110 downloads per month

BSD-3-Clause

380KB
9K SLoC

Row

Read the Docs Contributors License

Row is a command line tool that helps you manage workflows on HPC resources. Define actions in a workflow configuration file that apply to groups of directories in your workspace. Submit actions to your cluster's scheduler. Row tracks which actions have been submitted on which directories so that you don't submit the same work twice. Once a job completes, subsequent actions become eligible allowing you to process your entire workflow to completion over many submissions.

The name is row as in "row, row, row your boat".

Notable features:

  • Support arbitrary directories and signac workspaces.
  • Define your workflow in a configuration file.
  • Execute actions via user-defined shell commands.
  • Flexible group definitions:
    • Select directories with conditions on their value.
    • Split directories by their value and/or into fixed size groups.
    • Construct groups of any eligible directories or require that the entire matching group is submitted whole.
  • Execute groups in serial or parallel.
  • Schedule CPU and GPU resources.
  • Multiple users can operate the same workflow.
  • Automatically determine the partition based on the job's resources and size.
  • Built-in configurations for many national and university HPC systems.
  • Add custom cluster definitions for your resources.
  • Row is fast.

Demonstration

$ row submit --action=step1 -n 1
[1/1] Submitting action 'step1' on directory dir12 and 3 more (0ms).
Row submitted job 5095791.
$ row show status
Action     Completed Submitted Eligible Waiting Remaining cost
initialize        50         0       50       0    8 CPU-hours
step1              4         4       42      50   2K CPU-hours
step2              0         0        4      96  800 GPU-hours
$ row show directories --action step1 -n 3 --value="/value"
Directory Status    Job ID        /value
dir1      completed                  116
dir10     completed                  952
dir100    completed                  139
dir11     completed                  998

dir12     submitted anvil/5095791    950
dir13     submitted anvil/5095791    107
dir14     submitted anvil/5095791    127
dir15     submitted anvil/5095791    122

dir16     eligible                   682
dir17     eligible                   816
dir18     eligible                   803
dir19     eligible                   691

Resources

  • Documentation: Tutorial, command line interface documentation, and configuration file specifications.
  • Row discussion board: Ask the row user community for help.
  • signac: Python package to help you manage your workspace.

History

Row is a spiritual successor to signac-flow.

Dependencies

~15–24MB
~249K SLoC