@@ -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
919919all 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