Skip to content

Commit b0bf928

Browse files
committed
Docs: pipe mode
1 parent 278fa69 commit b0bf928

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

docs/source/advanced.rst

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,4 +918,61 @@ Alternatively, the user may request to compute the rate coefficients in the clas
918918
instructs the relevant statmech program to compute rate coefficients in the classical two-parameter Arrhenius format for
919919
all reactions in the same ARC project.
920920

921+
.. _pipe_mode:
922+
923+
Pipe mode (distributed HPC execution)
924+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
925+
926+
Pipe mode allows ARC to batch many independent jobs (e.g., conformer optimizations)
927+
into a single SLURM/PBS/SGE/HTCondor array allocation.
928+
Instead of submitting hundreds of individual cluster jobs, ARC stages all tasks on
929+
disk and launches a small number of array workers that claim and execute tasks from
930+
a shared task directory.
931+
932+
**When does ARC use pipe mode?**
933+
934+
ARC automatically evaluates pipe eligibility when scheduling batches of homogeneous
935+
jobs (same engine, level of theory, and resource requirements).
936+
By default, pipe mode activates when a batch has 10 or more tasks.
937+
Below that threshold, ARC uses its normal per-job submission path.
938+
939+
**Supported job types:**
940+
941+
- Conformer optimization (``conf_opt``) and single-point (``conf_sp``)
942+
- TS guess generation and TS optimization
943+
- Species single-point, frequency, and IRC calculations
944+
- 1D rotor scans
945+
946+
**What pipe mode does and does not do:**
947+
948+
- Pipe executes only ready "leaf" jobs. All quality checks, troubleshooting,
949+
and downstream decision-making remain in ARC's main scheduler.
950+
- Failed tasks are retried automatically (configurable).
951+
If a task exhausts its retry budget, it is marked as terminally failed
952+
and reported to the scheduler for manual review.
953+
- Each array worker verifies task ownership before writing results,
954+
preventing stale workers from overwriting state after lease expiration.
955+
956+
**Configuration:**
957+
958+
Pipe mode is configured via ``pipe_settings`` in ``arc/settings/settings.py``
959+
(or in ``~/.arc/settings.py`` to override per-installation)::
960+
961+
pipe_settings = {
962+
'enabled': True, # Set to False to disable pipe mode entirely.
963+
'min_tasks': 10, # Minimum batch size to trigger pipe mode.
964+
'max_workers': 100, # Upper bound on array worker slots per PipeRun.
965+
'max_attempts': 3, # Retry budget per task before terminal failure.
966+
'lease_duration_s': 86400, # Worker lease duration in seconds (default 24h).
967+
}
968+
969+
**Submit scripts:**
970+
971+
Pipe mode generates array submit scripts under the run directory
972+
(``<project>/runs/pipe_<run_id>/submit.sh``).
973+
The templates follow ARC's existing submit-script conventions from
974+
``arc/settings/submit.py`` and support SLURM, PBS, SGE, and HTCondor.
975+
Users who customize their submit templates can edit the ``pipe_submit``
976+
dictionary in ``submit.py``.
977+
921978
.. include:: links.txt

0 commit comments

Comments
 (0)