-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Improve documentation. * Show Job ID column only when showing submitted or completed jobs. * Validate submit_whole. * Cache workspace directory mtime and list it only when changed. * New subcommands: `row init` and `row clean`. * Show requested job statuses in `show directories`.
- Loading branch information
Showing
68 changed files
with
2,475 additions
and
311 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
* joaander |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/target | ||
/workspace | ||
/workflow.toml | ||
/.row | ||
/.signac | ||
workspace | ||
.row | ||
.signac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1,79 @@ | ||
# Row | ||
|
||
[![GitHub Actions](https://github.com/glotzerlab/row/actions/workflows/test.yaml/badge.svg?branch=trunk)](https://github.com/glotzerlab/row/actions/workflows/test.yaml) | ||
[![Read the Docs](https://img.shields.io/readthedocs/row/latest.svg)](https://row.readthedocs.io/) | ||
[![Contributors](https://img.shields.io/github/contributors-anon/glotzerlab/row.svg?style=flat)](https://row.readthedocs.io/en/latest/contributors.html) | ||
[![License](https://img.shields.io/badge/license-BSD--3--Clause-green.svg)](https://row.readthedocs.io/en/latest/license.html) | ||
|
||
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 HPC **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. | ||
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". | ||
The name is **row** as in *"row, row, row your boat"*. | ||
|
||
Notable features: | ||
* Support both arbitrary directories and [signac](https://signac.io) workspaces. | ||
* Execute actions via arbitrary shell commands. | ||
* Support arbitrary directories and [signac](https://signac.io) 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. | ||
* Execute groups in serial or parallel. | ||
* Schedule CPU and GPU resources. | ||
* Automatically determine the partition based on the batch job size. | ||
* 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**. | ||
|
||
TODO: better demo script to get output for README and row show documentation examples. | ||
## Demonstration | ||
|
||
For example: | ||
```bash | ||
> row show status | ||
Action Completed Submitted Eligible Waiting Remaining cost | ||
one 1000 100 900 0 24K CPU-hours | ||
two 0 200 800 1000 8K GPU-hours | ||
$ row submit --action=step1 -n 1 | ||
[1/1] Submitting action 'step1' on directory dir12 and 3 more (0ms). | ||
Row submitted job 5095791. | ||
``` | ||
|
||
```bash | ||
> row show directories --value "/value" | ||
Directory Status Job ID /value | ||
dir1 submitted 1432876 0.9 | ||
dir2 submitted 1432876 0.8 | ||
dir3 submitted 1432876 0.7 | ||
|
||
dir4 completed 0.5 | ||
dir5 completed 0.4 | ||
dir6 completed 0.3 | ||
$ 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 | ||
``` | ||
|
||
```bash | ||
$ row show directories 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 | ||
``` | ||
|
||
**Row** is a spiritual successor to | ||
[signac-flow](https://docs.signac.io/projects/flow/en/latest/). | ||
## Resources | ||
|
||
- [Documentation](https://row.readthedocs.io/): | ||
Tutorial, command line interface documentation, and configuration file specifications. | ||
- [Row discussion board](https://github.com/glotzerlab/row/discussions/): | ||
Ask the **row** user community for help. | ||
- [signac](https://signac.io): | ||
Python package to help you manage your workspace. | ||
|
||
## History | ||
|
||
**Row** is a spiritual successor to [signac-flow][flow]. | ||
|
||
[flow]: https://docs.signac.io/projects/flow/en/latest/. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
*.out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
mkdir workspace || exit 1 | ||
cd workspace | ||
|
||
for i in {1..100} | ||
do | ||
mkdir dir$i || exit 1 | ||
v=$((1 + RANDOM % 1000)) | ||
echo "{\"value\": $v}" > dir$i/value.json || exit 1 | ||
done | ||
|
||
row submit --cluster none --action=initialize -n 5 --yes || exit 1 | ||
|
||
row submit --cluster none --action=step1 -n 1 --yes || exit 1 | ||
|
||
row submit --action=step1 -n 1 --yes || exit 1 | ||
|
||
row show status || exit 1 | ||
|
||
row show directories step1 -n 3 --value="/value" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
[workspace] | ||
value_file = "value.json" | ||
|
||
[[action]] | ||
name = "initialize" | ||
command = "touch workspace/{directory}/initialize.out" | ||
products = ["initialize.out"] | ||
resources.walltime.per_directory = "00:10:00" | ||
group.maximum_size = 10 | ||
|
||
[[action]] | ||
name = "step1" | ||
command = "touch workspace/{directory}/step1.out" | ||
products = ["step1.out"] | ||
previous_actions = ["initialize"] | ||
resources.walltime.per_directory = "1 day, 00:00:00" | ||
group.maximum_size = 4 | ||
|
||
[[action]] | ||
name = "step2" | ||
command = "touch workspace/{directory}/step2.out" | ||
previous_actions = ["step1"] | ||
products = ["step2.out"] | ||
resources.walltime.per_directory = "08:00:00" | ||
resources.gpus_per_process = 1 | ||
group.maximum_size = 4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Contributors | ||
|
||
The following people have contributed to the development of **row**: | ||
|
||
* Joshua A. Anderson, University of Michigan |
Oops, something went wrong.