caddforge-docs 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. caddforge_docs/__init__.py +1 -0
  2. caddforge_docs/cli.py +20 -0
  3. caddforge_docs/server.py +124 -0
  4. caddforge_docs/site/404.html +2118 -0
  5. caddforge_docs/site/assets/_mkdocstrings.css +237 -0
  6. caddforge_docs/site/assets/images/favicon.png +0 -0
  7. caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js +16 -0
  8. caddforge_docs/site/assets/javascripts/bundle.d7400e89.min.js.map +7 -0
  9. caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js +42 -0
  10. caddforge_docs/site/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
  11. caddforge_docs/site/assets/licenses/W3C-Software-and-Document-2015.txt +15 -0
  12. caddforge_docs/site/assets/licenses/autogrid-COPYING-GPL-2.txt +339 -0
  13. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-COPYING-GPL-3.txt +674 -0
  14. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-EXCEPTION.txt +73 -0
  15. caddforge_docs/site/assets/licenses/autogrid-GCC-RUNTIME-NOTICE.txt +24 -0
  16. caddforge_docs/site/assets/licenses/caddforge-opencosmors-COPYING.txt +674 -0
  17. caddforge_docs/site/assets/licenses/caddforge-opencosmors-LICENSE.txt +165 -0
  18. caddforge_docs/site/assets/licenses/caddforge-unidock-tools-LICENSE.txt +202 -0
  19. caddforge_docs/site/assets/licenses/clipboard-LICENSE.txt +19 -0
  20. caddforge_docs/site/assets/licenses/escape-html-LICENSE.txt +2 -0
  21. caddforge_docs/site/assets/licenses/focus-visible-LICENSE.txt +4 -0
  22. caddforge_docs/site/assets/licenses/fontawesome-LICENSE.txt +165 -0
  23. caddforge_docs/site/assets/licenses/fuzzaldrin-plus-LICENSE.txt +21 -0
  24. caddforge_docs/site/assets/licenses/lunr-LICENSE.txt +17 -0
  25. caddforge_docs/site/assets/licenses/material-LICENSE.txt +20 -0
  26. caddforge_docs/site/assets/licenses/material-design-color-LICENSE.txt +31 -0
  27. caddforge_docs/site/assets/licenses/material-shadows-LICENSE.txt +31 -0
  28. caddforge_docs/site/assets/licenses/mkdocs-material-LICENSE.txt +19 -0
  29. caddforge_docs/site/assets/licenses/mkdocs-material-extensions-LICENSE.txt +21 -0
  30. caddforge_docs/site/assets/licenses/mkdocs-section-index-LICENSE.txt +21 -0
  31. caddforge_docs/site/assets/licenses/mkdocstrings-LICENSE.txt +15 -0
  32. caddforge_docs/site/assets/licenses/mkdocstrings-python-LICENSE.txt +15 -0
  33. caddforge_docs/site/assets/licenses/octicons-LICENSE.txt +21 -0
  34. caddforge_docs/site/assets/licenses/preact-LICENSE.txt +19 -0
  35. caddforge_docs/site/assets/licenses/properdocs-LICENSE.txt +26 -0
  36. caddforge_docs/site/assets/licenses/pymdown-extensions-LICENSE.txt +113 -0
  37. caddforge_docs/site/assets/licenses/rxjs-LICENSE.txt +180 -0
  38. caddforge_docs/site/assets/licenses/simple-LICENSE.txt +30 -0
  39. caddforge_docs/site/assets/licenses/tiny-emitter-LICENSE.txt +19 -0
  40. caddforge_docs/site/assets/licenses/tslib-LICENSE.txt +12 -0
  41. caddforge_docs/site/assets/licenses/zeno-rocha-components-LICENSE.txt +22 -0
  42. caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css +1 -0
  43. caddforge_docs/site/assets/stylesheets/main.ec1eaa64.min.css.map +1 -0
  44. caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  45. caddforge_docs/site/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
  46. caddforge_docs/site/core/cli/index.html +2446 -0
  47. caddforge_docs/site/core/concepts/index.html +2340 -0
  48. caddforge_docs/site/core/configuration/index.html +2300 -0
  49. caddforge_docs/site/core/index.html +2170 -0
  50. caddforge_docs/site/core/jobs-results/index.html +2315 -0
  51. caddforge_docs/site/core/plugins/index.html +2200 -0
  52. caddforge_docs/site/core/slurm/index.html +2562 -0
  53. caddforge_docs/site/development/ci-publishing/index.html +2345 -0
  54. caddforge_docs/site/development/contributing/index.html +2311 -0
  55. caddforge_docs/site/development/documentation/index.html +2380 -0
  56. caddforge_docs/site/development/index.html +2201 -0
  57. caddforge_docs/site/development/release-notes/index.html +2504 -0
  58. caddforge_docs/site/development/release-readiness/index.html +2333 -0
  59. caddforge_docs/site/development/security/index.html +2181 -0
  60. caddforge_docs/site/development/tool-authoring/index.html +2435 -0
  61. caddforge_docs/site/examples/index.html +2465 -0
  62. caddforge_docs/site/examples/manifest.json +158 -0
  63. caddforge_docs/site/examples/minimize/component_overrides.yaml +14 -0
  64. caddforge_docs/site/examples/minimize/ligand_only.yaml +13 -0
  65. caddforge_docs/site/examples/minimize/pipeline_docking.yaml +84 -0
  66. caddforge_docs/site/examples/minimize/pipeline_scatter.yaml +49 -0
  67. caddforge_docs/site/examples/minimize/pocket_free_shell_restrained.yaml +13 -0
  68. caddforge_docs/site/examples/minimize/pocket_restrained.yaml +13 -0
  69. caddforge_docs/site/examples/minimize/prepared_metal.yaml +14 -0
  70. caddforge_docs/site/examples/minimize/sidechains_free_backbone_fixed.yaml +13 -0
  71. caddforge_docs/site/examples/minimize/sidechains_free_backbone_restrained.yaml +13 -0
  72. caddforge_docs/site/examples/pipelines/descriptor-model-and-candidate-filter.yaml +44 -0
  73. caddforge_docs/site/examples/pipelines/dock-extract-and-minimize-poses.yaml +85 -0
  74. caddforge_docs/site/examples/pipelines/docking-screen-and-rescore.yaml +55 -0
  75. caddforge_docs/site/examples/pipelines/flexible-gnina-to-openbpmd-to-md-to-abfe.yaml +189 -0
  76. caddforge_docs/site/examples/pipelines/gnina-flexible-complex-artifacts.yaml +52 -0
  77. caddforge_docs/site/examples/pipelines/minimize-a-multi-pose-sdf.yaml +46 -0
  78. caddforge_docs/site/examples/pipelines/pose-level-md-selection.yaml +95 -0
  79. caddforge_docs/site/examples/pipelines/result-collection-and-diagnostics.yaml +55 -0
  80. caddforge_docs/site/examples/quickstart/diagnostics.yaml +8 -0
  81. caddforge_docs/site/examples/quickstart/index.html +2172 -0
  82. caddforge_docs/site/examples/quickstart/pipeline.yaml +23 -0
  83. caddforge_docs/site/examples/quickstart/run.py +18 -0
  84. caddforge_docs/site/examples/quickstart/run_pipeline.py +6 -0
  85. caddforge_docs/site/examples/quickstart/scores.csv +7 -0
  86. caddforge_docs/site/examples/quickstart/values.csv +31 -0
  87. caddforge_docs/site/examples/run_tool.py +40 -0
  88. caddforge_docs/site/examples/tools/datascience-csv-scatter.yaml +17 -0
  89. caddforge_docs/site/examples/tools/datascience-distribution-diagnostics.yaml +10 -0
  90. caddforge_docs/site/examples/tools/descriptors-ani-conformers.yaml +9 -0
  91. caddforge_docs/site/examples/tools/descriptors-ani-psa.yaml +9 -0
  92. caddforge_docs/site/examples/tools/descriptors-cluster-molecules.yaml +11 -0
  93. caddforge_docs/site/examples/tools/descriptors-phesa.yaml +7 -0
  94. caddforge_docs/site/examples/tools/docking-gnina.yaml +12 -0
  95. caddforge_docs/site/examples/tools/docking-idockya.yaml +8 -0
  96. caddforge_docs/site/examples/tools/docking-unidock.yaml +12 -0
  97. caddforge_docs/site/examples/tools/fep-openfe-abfe.yaml +53 -0
  98. caddforge_docs/site/examples/tools/fep-openfe-rbfe-septop.yaml +23 -0
  99. caddforge_docs/site/examples/tools/md-center-and-align.yaml +16 -0
  100. caddforge_docs/site/examples/tools/md-cluster-representative.yaml +16 -0
  101. caddforge_docs/site/examples/tools/md-extract-frames.yaml +17 -0
  102. caddforge_docs/site/examples/tools/md-fix-structure.yaml +20 -0
  103. caddforge_docs/site/examples/tools/md-grand.yaml +28 -0
  104. caddforge_docs/site/examples/tools/md-inducia.yaml +29 -0
  105. caddforge_docs/site/examples/tools/md-minimize.yaml +13 -0
  106. caddforge_docs/site/examples/tools/md-openbpmd.yaml +11 -0
  107. caddforge_docs/site/examples/tools/md-plain-md.yaml +28 -0
  108. caddforge_docs/site/examples/tools/ml-explore-classifier.yaml +5 -0
  109. caddforge_docs/site/examples/tools/ml-model-factory.yaml +32 -0
  110. caddforge_docs/site/examples/tools/ml-model-zoo.yaml +16 -0
  111. caddforge_docs/site/examples/tools/ml-pca.yaml +10 -0
  112. caddforge_docs/site/examples/tools/ml-simple-gp.yaml +17 -0
  113. caddforge_docs/site/examples/tools/qm-transfer-free-energy.yaml +11 -0
  114. caddforge_docs/site/explanation/references/index.html +2218 -0
  115. caddforge_docs/site/explanation/reproducibility/index.html +2306 -0
  116. caddforge_docs/site/explanation/third-party-notices/index.html +2599 -0
  117. caddforge_docs/site/getting-started/first-pipeline/index.html +2195 -0
  118. caddforge_docs/site/getting-started/first-workflow/index.html +2329 -0
  119. caddforge_docs/site/getting-started/index.html +2200 -0
  120. caddforge_docs/site/getting-started/installation/index.html +2541 -0
  121. caddforge_docs/site/gui/index.html +2267 -0
  122. caddforge_docs/site/gui/plugin-authoring/index.html +2280 -0
  123. caddforge_docs/site/gui/walkthrough/index.html +2181 -0
  124. caddforge_docs/site/how-to/jobs/index.html +2195 -0
  125. caddforge_docs/site/how-to/scatter/index.html +2193 -0
  126. caddforge_docs/site/how-to/troubleshooting/index.html +2429 -0
  127. caddforge_docs/site/index.html +2359 -0
  128. caddforge_docs/site/objects.inv +0 -0
  129. caddforge_docs/site/pipelines/artifacts/index.html +2314 -0
  130. caddforge_docs/site/pipelines/built-ins/index.html +2670 -0
  131. caddforge_docs/site/pipelines/examples/index.html +3186 -0
  132. caddforge_docs/site/pipelines/index.html +2164 -0
  133. caddforge_docs/site/pipelines/specification/index.html +2278 -0
  134. caddforge_docs/site/plugins/datascience/index.html +2405 -0
  135. caddforge_docs/site/plugins/descriptors/index.html +2609 -0
  136. caddforge_docs/site/plugins/docking/index.html +2480 -0
  137. caddforge_docs/site/plugins/fep/index.html +2508 -0
  138. caddforge_docs/site/plugins/index.html +2216 -0
  139. caddforge_docs/site/plugins/md/index.html +3795 -0
  140. caddforge_docs/site/plugins/ml/index.html +2815 -0
  141. caddforge_docs/site/plugins/qm/index.html +2309 -0
  142. caddforge_docs/site/plugins/version-matrix/index.html +2449 -0
  143. caddforge_docs/site/reference/api/index.html +4414 -0
  144. caddforge_docs/site/reference/index.html +2166 -0
  145. caddforge_docs/site/search/search_index.json +1 -0
  146. caddforge_docs/site/sitemap.xml +191 -0
  147. caddforge_docs/site/sitemap.xml.gz +0 -0
  148. caddforge_docs-0.3.0.dist-info/METADATA +158 -0
  149. caddforge_docs-0.3.0.dist-info/RECORD +152 -0
  150. caddforge_docs-0.3.0.dist-info/WHEEL +4 -0
  151. caddforge_docs-0.3.0.dist-info/entry_points.txt +2 -0
  152. caddforge_docs-0.3.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,2562 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+ <meta name="description" content="Central documentation for the CADDForge CADD toolbox framework.">
10
+
11
+
12
+
13
+ <link rel="canonical" href="https://idorsia.github.io/caddforge-docs/core/slurm/">
14
+
15
+
16
+ <link rel="prev" href="../jobs-results/">
17
+
18
+
19
+ <link rel="next" href="../plugins/">
20
+
21
+
22
+
23
+
24
+
25
+ <link rel="icon" href="../../assets/images/favicon.png">
26
+ <meta name="generator" content="mkdocs-ProperDocs 1.6.7, mkdocs-material-9.7.7">
27
+
28
+
29
+
30
+ <title>Slurm Backend - CADDForge</title>
31
+
32
+
33
+
34
+ <link rel="stylesheet" href="../../assets/stylesheets/main.ec1eaa64.min.css">
35
+
36
+
37
+ <link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+ <link rel="stylesheet" href="../../assets/_mkdocstrings.css">
51
+
52
+ <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
53
+
54
+
55
+
56
+
57
+
58
+ </head>
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="teal">
69
+
70
+
71
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
72
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
73
+ <label class="md-overlay" for="__drawer"></label>
74
+ <div data-md-component="skip">
75
+
76
+
77
+ <a href="#slurm-backend" class="md-skip">
78
+ Skip to content
79
+ </a>
80
+
81
+ </div>
82
+ <div data-md-component="announce">
83
+
84
+ </div>
85
+
86
+
87
+
88
+
89
+
90
+
91
+ <header class="md-header md-header--shadow" data-md-component="header">
92
+ <nav class="md-header__inner md-grid" aria-label="Header">
93
+ <a href="../.." title="CADDForge" class="md-header__button md-logo" aria-label="CADDForge" data-md-component="logo">
94
+
95
+
96
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
97
+
98
+ </a>
99
+ <label class="md-header__button md-icon" for="__drawer">
100
+
101
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
102
+ </label>
103
+ <div class="md-header__title" data-md-component="header-title">
104
+ <div class="md-header__ellipsis">
105
+ <div class="md-header__topic">
106
+ <span class="md-ellipsis">
107
+ CADDForge
108
+ </span>
109
+ </div>
110
+ <div class="md-header__topic" data-md-component="header-topic">
111
+ <span class="md-ellipsis">
112
+
113
+ Slurm Backend
114
+
115
+ </span>
116
+ </div>
117
+ </div>
118
+ </div>
119
+
120
+
121
+ <form class="md-header__option" data-md-component="palette">
122
+
123
+
124
+
125
+
126
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="teal" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
127
+
128
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
129
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3zm3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95zm-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31"/></svg>
130
+ </label>
131
+
132
+
133
+
134
+
135
+
136
+ <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="teal" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
137
+
138
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
139
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5s-1.65.15-2.39.42zM3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29zm.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14zM20.65 7l-1.77 3.79a7.02 7.02 0 0 0-2.38-4.15zm-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29zM12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44z"/></svg>
140
+ </label>
141
+
142
+
143
+ </form>
144
+
145
+
146
+
147
+ <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
148
+
149
+
150
+
151
+
152
+
153
+ <label class="md-header__button md-icon" for="__search">
154
+
155
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
156
+ </label>
157
+ <div class="md-search" data-md-component="search" role="dialog">
158
+ <label class="md-search__overlay" for="__search"></label>
159
+ <div class="md-search__inner" role="search">
160
+ <form class="md-search__form" name="search">
161
+ <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
162
+ <label class="md-search__icon md-icon" for="__search">
163
+
164
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
165
+
166
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
167
+ </label>
168
+ <nav class="md-search__options" aria-label="Search">
169
+
170
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
171
+
172
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
173
+ </button>
174
+ </nav>
175
+
176
+ <div class="md-search__suggest" data-md-component="search-suggest"></div>
177
+
178
+ </form>
179
+ <div class="md-search__output">
180
+ <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
181
+ <div class="md-search-result" data-md-component="search-result">
182
+ <div class="md-search-result__meta">
183
+ Initializing search
184
+ </div>
185
+ <ol class="md-search-result__list" role="presentation"></ol>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
190
+ </div>
191
+
192
+
193
+
194
+ <div class="md-header__source">
195
+ <a href="https://github.com/idorsia/caddforge-docs" title="Go to repository" class="md-source" data-md-component="source">
196
+ <div class="md-source__icon md-icon">
197
+
198
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
199
+ </div>
200
+ <div class="md-source__repository">
201
+ caddforge-docs
202
+ </div>
203
+ </a>
204
+ </div>
205
+
206
+ </nav>
207
+
208
+ </header>
209
+
210
+ <div class="md-container" data-md-component="container">
211
+
212
+
213
+
214
+
215
+
216
+
217
+ <main class="md-main" data-md-component="main">
218
+ <div class="md-main__inner md-grid">
219
+
220
+
221
+
222
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
223
+ <div class="md-sidebar__scrollwrap">
224
+ <div class="md-sidebar__inner">
225
+
226
+
227
+
228
+
229
+ <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
230
+ <label class="md-nav__title" for="__drawer">
231
+ <a href="../.." title="CADDForge" class="md-nav__button md-logo" aria-label="CADDForge" data-md-component="logo">
232
+
233
+
234
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
235
+
236
+ </a>
237
+ CADDForge
238
+ </label>
239
+
240
+ <div class="md-nav__source">
241
+ <a href="https://github.com/idorsia/caddforge-docs" title="Go to repository" class="md-source" data-md-component="source">
242
+ <div class="md-source__icon md-icon">
243
+
244
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
245
+ </div>
246
+ <div class="md-source__repository">
247
+ caddforge-docs
248
+ </div>
249
+ </a>
250
+ </div>
251
+
252
+ <ul class="md-nav__list" data-md-scrollfix>
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ <li class="md-nav__item">
261
+ <a href="../.." class="md-nav__link">
262
+
263
+
264
+
265
+ <span class="md-ellipsis">
266
+
267
+
268
+ Home
269
+
270
+
271
+
272
+ </span>
273
+
274
+
275
+
276
+ </a>
277
+ </li>
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
306
+
307
+
308
+
309
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
310
+
311
+
312
+ <div class="md-nav__link md-nav__container">
313
+ <a href="../../getting-started/" class="md-nav__link ">
314
+
315
+
316
+
317
+ <span class="md-ellipsis">
318
+
319
+
320
+ Getting Started
321
+
322
+
323
+
324
+ </span>
325
+
326
+
327
+
328
+ </a>
329
+
330
+
331
+ <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
332
+ <span class="md-nav__icon md-icon"></span>
333
+ </label>
334
+
335
+ </div>
336
+
337
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
338
+ <label class="md-nav__title" for="__nav_2">
339
+ <span class="md-nav__icon md-icon"></span>
340
+
341
+
342
+ Getting Started
343
+
344
+
345
+ </label>
346
+ <ul class="md-nav__list" data-md-scrollfix>
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+ <li class="md-nav__item">
355
+ <a href="../../getting-started/installation/" class="md-nav__link">
356
+
357
+
358
+
359
+ <span class="md-ellipsis">
360
+
361
+
362
+ Installation
363
+
364
+
365
+
366
+ </span>
367
+
368
+
369
+
370
+ </a>
371
+ </li>
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ <li class="md-nav__item">
383
+ <a href="../../getting-started/first-workflow/" class="md-nav__link">
384
+
385
+
386
+
387
+ <span class="md-ellipsis">
388
+
389
+
390
+ First Workflow
391
+
392
+
393
+
394
+ </span>
395
+
396
+
397
+
398
+ </a>
399
+ </li>
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+ <li class="md-nav__item">
411
+ <a href="../../getting-started/first-pipeline/" class="md-nav__link">
412
+
413
+
414
+
415
+ <span class="md-ellipsis">
416
+
417
+
418
+ First Pipeline
419
+
420
+
421
+
422
+ </span>
423
+
424
+
425
+
426
+ </a>
427
+ </li>
428
+
429
+
430
+
431
+
432
+ </ul>
433
+ </nav>
434
+
435
+ </li>
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
464
+
465
+
466
+
467
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
468
+
469
+
470
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
471
+
472
+
473
+
474
+ <span class="md-ellipsis">
475
+
476
+
477
+ How-to Guides
478
+
479
+
480
+
481
+ </span>
482
+
483
+
484
+
485
+ <span class="md-nav__icon md-icon"></span>
486
+ </label>
487
+
488
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
489
+ <label class="md-nav__title" for="__nav_3">
490
+ <span class="md-nav__icon md-icon"></span>
491
+
492
+
493
+ How-to Guides
494
+
495
+
496
+ </label>
497
+ <ul class="md-nav__list" data-md-scrollfix>
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+ <li class="md-nav__item">
506
+ <a href="../../how-to/jobs/" class="md-nav__link">
507
+
508
+
509
+
510
+ <span class="md-ellipsis">
511
+
512
+
513
+ Jobs and Results
514
+
515
+
516
+
517
+ </span>
518
+
519
+
520
+
521
+ </a>
522
+ </li>
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+ <li class="md-nav__item">
534
+ <a href="../../how-to/scatter/" class="md-nav__link">
535
+
536
+
537
+
538
+ <span class="md-ellipsis">
539
+
540
+
541
+ Scatter and Reduce
542
+
543
+
544
+
545
+ </span>
546
+
547
+
548
+
549
+ </a>
550
+ </li>
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+ <li class="md-nav__item">
562
+ <a href="../../how-to/troubleshooting/" class="md-nav__link">
563
+
564
+
565
+
566
+ <span class="md-ellipsis">
567
+
568
+
569
+ Troubleshooting
570
+
571
+
572
+
573
+ </span>
574
+
575
+
576
+
577
+ </a>
578
+ </li>
579
+
580
+
581
+
582
+
583
+ </ul>
584
+ </nav>
585
+
586
+ </li>
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+ <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
623
+
624
+
625
+
626
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
627
+
628
+
629
+ <div class="md-nav__link md-nav__container">
630
+ <a href="../" class="md-nav__link ">
631
+
632
+
633
+
634
+ <span class="md-ellipsis">
635
+
636
+
637
+ Core
638
+
639
+
640
+
641
+ </span>
642
+
643
+
644
+
645
+ </a>
646
+
647
+
648
+ <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
649
+ <span class="md-nav__icon md-icon"></span>
650
+ </label>
651
+
652
+ </div>
653
+
654
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
655
+ <label class="md-nav__title" for="__nav_4">
656
+ <span class="md-nav__icon md-icon"></span>
657
+
658
+
659
+ Core
660
+
661
+
662
+ </label>
663
+ <ul class="md-nav__list" data-md-scrollfix>
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+ <li class="md-nav__item">
672
+ <a href="../concepts/" class="md-nav__link">
673
+
674
+
675
+
676
+ <span class="md-ellipsis">
677
+
678
+
679
+ Concepts
680
+
681
+
682
+
683
+ </span>
684
+
685
+
686
+
687
+ </a>
688
+ </li>
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+ <li class="md-nav__item">
700
+ <a href="../configuration/" class="md-nav__link">
701
+
702
+
703
+
704
+ <span class="md-ellipsis">
705
+
706
+
707
+ Configuration
708
+
709
+
710
+
711
+ </span>
712
+
713
+
714
+
715
+ </a>
716
+ </li>
717
+
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+
726
+
727
+ <li class="md-nav__item">
728
+ <a href="../cli/" class="md-nav__link">
729
+
730
+
731
+
732
+ <span class="md-ellipsis">
733
+
734
+
735
+ CLI
736
+
737
+
738
+
739
+ </span>
740
+
741
+
742
+
743
+ </a>
744
+ </li>
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+ <li class="md-nav__item">
756
+ <a href="../jobs-results/" class="md-nav__link">
757
+
758
+
759
+
760
+ <span class="md-ellipsis">
761
+
762
+
763
+ Jobs and Results
764
+
765
+
766
+
767
+ </span>
768
+
769
+
770
+
771
+ </a>
772
+ </li>
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+ <li class="md-nav__item md-nav__item--active">
786
+
787
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
788
+
789
+
790
+
791
+
792
+
793
+ <label class="md-nav__link md-nav__link--active" for="__toc">
794
+
795
+
796
+
797
+ <span class="md-ellipsis">
798
+
799
+
800
+ Slurm Backend
801
+
802
+
803
+
804
+ </span>
805
+
806
+
807
+
808
+ <span class="md-nav__icon md-icon"></span>
809
+ </label>
810
+
811
+ <a href="./" class="md-nav__link md-nav__link--active">
812
+
813
+
814
+
815
+ <span class="md-ellipsis">
816
+
817
+
818
+ Slurm Backend
819
+
820
+
821
+
822
+ </span>
823
+
824
+
825
+
826
+ </a>
827
+
828
+
829
+
830
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
831
+
832
+
833
+
834
+
835
+
836
+
837
+ <label class="md-nav__title" for="__toc">
838
+ <span class="md-nav__icon md-icon"></span>
839
+ Table of contents
840
+ </label>
841
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
842
+
843
+ <li class="md-nav__item">
844
+ <a href="#basic-usage" class="md-nav__link">
845
+ <span class="md-ellipsis">
846
+
847
+ Basic Usage
848
+
849
+ </span>
850
+ </a>
851
+
852
+ </li>
853
+
854
+ <li class="md-nav__item">
855
+ <a href="#environment-requirement" class="md-nav__link">
856
+ <span class="md-ellipsis">
857
+
858
+ Environment Requirement
859
+
860
+ </span>
861
+ </a>
862
+
863
+ </li>
864
+
865
+ <li class="md-nav__item">
866
+ <a href="#option-a-packed-condamicromamba-environment" class="md-nav__link">
867
+ <span class="md-ellipsis">
868
+
869
+ Option A: Packed Conda/Micromamba Environment
870
+
871
+ </span>
872
+ </a>
873
+
874
+ <nav class="md-nav" aria-label="Option A: Packed Conda/Micromamba Environment">
875
+ <ul class="md-nav__list">
876
+
877
+ <li class="md-nav__item">
878
+ <a href="#sidecar-and-fallback-behavior" class="md-nav__link">
879
+ <span class="md-ellipsis">
880
+
881
+ Sidecar and fallback behavior
882
+
883
+ </span>
884
+ </a>
885
+
886
+ </li>
887
+
888
+ <li class="md-nav__item">
889
+ <a href="#node-local-cache" class="md-nav__link">
890
+ <span class="md-ellipsis">
891
+
892
+ Node-local cache
893
+
894
+ </span>
895
+ </a>
896
+
897
+ </li>
898
+
899
+ <li class="md-nav__item">
900
+ <a href="#replacing-a-managed-pack" class="md-nav__link">
901
+ <span class="md-ellipsis">
902
+
903
+ Replacing a managed pack
904
+
905
+ </span>
906
+ </a>
907
+
908
+ </li>
909
+
910
+ </ul>
911
+ </nav>
912
+
913
+ </li>
914
+
915
+ <li class="md-nav__item">
916
+ <a href="#option-b-wheelhouse-and-per-job-virtualenv" class="md-nav__link">
917
+ <span class="md-ellipsis">
918
+
919
+ Option B: Wheelhouse and Per-Job Virtualenv
920
+
921
+ </span>
922
+ </a>
923
+
924
+ </li>
925
+
926
+ <li class="md-nav__item">
927
+ <a href="#option-c-site-specific-setup-commands" class="md-nav__link">
928
+ <span class="md-ellipsis">
929
+
930
+ Option C: Site-Specific Setup Commands
931
+
932
+ </span>
933
+ </a>
934
+
935
+ </li>
936
+
937
+ <li class="md-nav__item">
938
+ <a href="#practical-rules" class="md-nav__link">
939
+ <span class="md-ellipsis">
940
+
941
+ Practical Rules
942
+
943
+ </span>
944
+ </a>
945
+
946
+ </li>
947
+
948
+ </ul>
949
+
950
+ </nav>
951
+
952
+ </li>
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+ <li class="md-nav__item">
964
+ <a href="../plugins/" class="md-nav__link">
965
+
966
+
967
+
968
+ <span class="md-ellipsis">
969
+
970
+
971
+ Plugins
972
+
973
+
974
+
975
+ </span>
976
+
977
+
978
+
979
+ </a>
980
+ </li>
981
+
982
+
983
+
984
+
985
+ </ul>
986
+ </nav>
987
+
988
+ </li>
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1019
+
1020
+
1021
+
1022
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1023
+
1024
+
1025
+ <div class="md-nav__link md-nav__container">
1026
+ <a href="../../pipelines/" class="md-nav__link ">
1027
+
1028
+
1029
+
1030
+ <span class="md-ellipsis">
1031
+
1032
+
1033
+ Pipelines
1034
+
1035
+
1036
+
1037
+ </span>
1038
+
1039
+
1040
+
1041
+ </a>
1042
+
1043
+
1044
+ <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
1045
+ <span class="md-nav__icon md-icon"></span>
1046
+ </label>
1047
+
1048
+ </div>
1049
+
1050
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
1051
+ <label class="md-nav__title" for="__nav_5">
1052
+ <span class="md-nav__icon md-icon"></span>
1053
+
1054
+
1055
+ Pipelines
1056
+
1057
+
1058
+ </label>
1059
+ <ul class="md-nav__list" data-md-scrollfix>
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+ <li class="md-nav__item">
1068
+ <a href="../../pipelines/specification/" class="md-nav__link">
1069
+
1070
+
1071
+
1072
+ <span class="md-ellipsis">
1073
+
1074
+
1075
+ Specification
1076
+
1077
+
1078
+
1079
+ </span>
1080
+
1081
+
1082
+
1083
+ </a>
1084
+ </li>
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+ <li class="md-nav__item">
1096
+ <a href="../../pipelines/artifacts/" class="md-nav__link">
1097
+
1098
+
1099
+
1100
+ <span class="md-ellipsis">
1101
+
1102
+
1103
+ Artifacts
1104
+
1105
+
1106
+
1107
+ </span>
1108
+
1109
+
1110
+
1111
+ </a>
1112
+ </li>
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+ <li class="md-nav__item">
1124
+ <a href="../../pipelines/built-ins/" class="md-nav__link">
1125
+
1126
+
1127
+
1128
+ <span class="md-ellipsis">
1129
+
1130
+
1131
+ Built-in Stages
1132
+
1133
+
1134
+
1135
+ </span>
1136
+
1137
+
1138
+
1139
+ </a>
1140
+ </li>
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+ <li class="md-nav__item">
1152
+ <a href="../../pipelines/examples/" class="md-nav__link">
1153
+
1154
+
1155
+
1156
+ <span class="md-ellipsis">
1157
+
1158
+
1159
+ Examples
1160
+
1161
+
1162
+
1163
+ </span>
1164
+
1165
+
1166
+
1167
+ </a>
1168
+ </li>
1169
+
1170
+
1171
+
1172
+
1173
+ </ul>
1174
+ </nav>
1175
+
1176
+ </li>
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1215
+
1216
+
1217
+
1218
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
1219
+
1220
+
1221
+ <div class="md-nav__link md-nav__container">
1222
+ <a href="../../plugins/" class="md-nav__link ">
1223
+
1224
+
1225
+
1226
+ <span class="md-ellipsis">
1227
+
1228
+
1229
+ Plugins
1230
+
1231
+
1232
+
1233
+ </span>
1234
+
1235
+
1236
+
1237
+ </a>
1238
+
1239
+
1240
+ <label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
1241
+ <span class="md-nav__icon md-icon"></span>
1242
+ </label>
1243
+
1244
+ </div>
1245
+
1246
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1247
+ <label class="md-nav__title" for="__nav_6">
1248
+ <span class="md-nav__icon md-icon"></span>
1249
+
1250
+
1251
+ Plugins
1252
+
1253
+
1254
+ </label>
1255
+ <ul class="md-nav__list" data-md-scrollfix>
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+ <li class="md-nav__item">
1264
+ <a href="../../plugins/version-matrix/" class="md-nav__link">
1265
+
1266
+
1267
+
1268
+ <span class="md-ellipsis">
1269
+
1270
+
1271
+ Version Matrix
1272
+
1273
+
1274
+
1275
+ </span>
1276
+
1277
+
1278
+
1279
+ </a>
1280
+ </li>
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+ <li class="md-nav__item">
1292
+ <a href="../../plugins/docking/" class="md-nav__link">
1293
+
1294
+
1295
+
1296
+ <span class="md-ellipsis">
1297
+
1298
+
1299
+ Docking
1300
+
1301
+
1302
+
1303
+ </span>
1304
+
1305
+
1306
+
1307
+ </a>
1308
+ </li>
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+ <li class="md-nav__item">
1320
+ <a href="../../plugins/descriptors/" class="md-nav__link">
1321
+
1322
+
1323
+
1324
+ <span class="md-ellipsis">
1325
+
1326
+
1327
+ Descriptors
1328
+
1329
+
1330
+
1331
+ </span>
1332
+
1333
+
1334
+
1335
+ </a>
1336
+ </li>
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+ <li class="md-nav__item">
1348
+ <a href="../../plugins/md/" class="md-nav__link">
1349
+
1350
+
1351
+
1352
+ <span class="md-ellipsis">
1353
+
1354
+
1355
+ MD
1356
+
1357
+
1358
+
1359
+ </span>
1360
+
1361
+
1362
+
1363
+ </a>
1364
+ </li>
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+ <li class="md-nav__item">
1376
+ <a href="../../plugins/fep/" class="md-nav__link">
1377
+
1378
+
1379
+
1380
+ <span class="md-ellipsis">
1381
+
1382
+
1383
+ FEP
1384
+
1385
+
1386
+
1387
+ </span>
1388
+
1389
+
1390
+
1391
+ </a>
1392
+ </li>
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+ <li class="md-nav__item">
1404
+ <a href="../../plugins/qm/" class="md-nav__link">
1405
+
1406
+
1407
+
1408
+ <span class="md-ellipsis">
1409
+
1410
+
1411
+ QM
1412
+
1413
+
1414
+
1415
+ </span>
1416
+
1417
+
1418
+
1419
+ </a>
1420
+ </li>
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+ <li class="md-nav__item">
1432
+ <a href="../../plugins/ml/" class="md-nav__link">
1433
+
1434
+
1435
+
1436
+ <span class="md-ellipsis">
1437
+
1438
+
1439
+ ML
1440
+
1441
+
1442
+
1443
+ </span>
1444
+
1445
+
1446
+
1447
+ </a>
1448
+ </li>
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+ <li class="md-nav__item">
1460
+ <a href="../../plugins/datascience/" class="md-nav__link">
1461
+
1462
+
1463
+
1464
+ <span class="md-ellipsis">
1465
+
1466
+
1467
+ Data Science
1468
+
1469
+
1470
+
1471
+ </span>
1472
+
1473
+
1474
+
1475
+ </a>
1476
+ </li>
1477
+
1478
+
1479
+
1480
+
1481
+ </ul>
1482
+ </nav>
1483
+
1484
+ </li>
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1511
+
1512
+
1513
+
1514
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
1515
+
1516
+
1517
+ <div class="md-nav__link md-nav__container">
1518
+ <a href="../../gui/" class="md-nav__link ">
1519
+
1520
+
1521
+
1522
+ <span class="md-ellipsis">
1523
+
1524
+
1525
+ GUI
1526
+
1527
+
1528
+
1529
+ </span>
1530
+
1531
+
1532
+
1533
+ </a>
1534
+
1535
+
1536
+ <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="">
1537
+ <span class="md-nav__icon md-icon"></span>
1538
+ </label>
1539
+
1540
+ </div>
1541
+
1542
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1543
+ <label class="md-nav__title" for="__nav_7">
1544
+ <span class="md-nav__icon md-icon"></span>
1545
+
1546
+
1547
+ GUI
1548
+
1549
+
1550
+ </label>
1551
+ <ul class="md-nav__list" data-md-scrollfix>
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+ <li class="md-nav__item">
1560
+ <a href="../../gui/walkthrough/" class="md-nav__link">
1561
+
1562
+
1563
+
1564
+ <span class="md-ellipsis">
1565
+
1566
+
1567
+ Walkthrough
1568
+
1569
+
1570
+
1571
+ </span>
1572
+
1573
+
1574
+
1575
+ </a>
1576
+ </li>
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+ <li class="md-nav__item">
1588
+ <a href="../../gui/plugin-authoring/" class="md-nav__link">
1589
+
1590
+
1591
+
1592
+ <span class="md-ellipsis">
1593
+
1594
+
1595
+ Plugin GUI Authoring
1596
+
1597
+
1598
+
1599
+ </span>
1600
+
1601
+
1602
+
1603
+ </a>
1604
+ </li>
1605
+
1606
+
1607
+
1608
+
1609
+ </ul>
1610
+ </nav>
1611
+
1612
+ </li>
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1641
+
1642
+
1643
+
1644
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
1645
+
1646
+
1647
+ <div class="md-nav__link md-nav__container">
1648
+ <a href="../../reference/" class="md-nav__link ">
1649
+
1650
+
1651
+
1652
+ <span class="md-ellipsis">
1653
+
1654
+
1655
+ Reference
1656
+
1657
+
1658
+
1659
+ </span>
1660
+
1661
+
1662
+
1663
+ </a>
1664
+
1665
+
1666
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="">
1667
+ <span class="md-nav__icon md-icon"></span>
1668
+ </label>
1669
+
1670
+ </div>
1671
+
1672
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
1673
+ <label class="md-nav__title" for="__nav_8">
1674
+ <span class="md-nav__icon md-icon"></span>
1675
+
1676
+
1677
+ Reference
1678
+
1679
+
1680
+ </label>
1681
+ <ul class="md-nav__list" data-md-scrollfix>
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+ <li class="md-nav__item">
1690
+ <a href="../../reference/api/" class="md-nav__link">
1691
+
1692
+
1693
+
1694
+ <span class="md-ellipsis">
1695
+
1696
+
1697
+ Public Python API
1698
+
1699
+
1700
+
1701
+ </span>
1702
+
1703
+
1704
+
1705
+ </a>
1706
+ </li>
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+ <li class="md-nav__item">
1718
+ <a href="../../examples/" class="md-nav__link">
1719
+
1720
+
1721
+
1722
+ <span class="md-ellipsis">
1723
+
1724
+
1725
+ Example Library
1726
+
1727
+
1728
+
1729
+ </span>
1730
+
1731
+
1732
+
1733
+ </a>
1734
+ </li>
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+ <li class="md-nav__item">
1746
+ <a href="../../examples/quickstart/" class="md-nav__link">
1747
+
1748
+
1749
+
1750
+ <span class="md-ellipsis">
1751
+
1752
+
1753
+ Example Data Provenance
1754
+
1755
+
1756
+
1757
+ </span>
1758
+
1759
+
1760
+
1761
+ </a>
1762
+ </li>
1763
+
1764
+
1765
+
1766
+
1767
+ </ul>
1768
+ </nav>
1769
+
1770
+ </li>
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1799
+
1800
+
1801
+
1802
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9" >
1803
+
1804
+
1805
+ <label class="md-nav__link" for="__nav_9" id="__nav_9_label" tabindex="">
1806
+
1807
+
1808
+
1809
+ <span class="md-ellipsis">
1810
+
1811
+
1812
+ Explanation
1813
+
1814
+
1815
+
1816
+ </span>
1817
+
1818
+
1819
+
1820
+ <span class="md-nav__icon md-icon"></span>
1821
+ </label>
1822
+
1823
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
1824
+ <label class="md-nav__title" for="__nav_9">
1825
+ <span class="md-nav__icon md-icon"></span>
1826
+
1827
+
1828
+ Explanation
1829
+
1830
+
1831
+ </label>
1832
+ <ul class="md-nav__list" data-md-scrollfix>
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+ <li class="md-nav__item">
1841
+ <a href="../../explanation/reproducibility/" class="md-nav__link">
1842
+
1843
+
1844
+
1845
+ <span class="md-ellipsis">
1846
+
1847
+
1848
+ Reproducibility
1849
+
1850
+
1851
+
1852
+ </span>
1853
+
1854
+
1855
+
1856
+ </a>
1857
+ </li>
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+
1868
+ <li class="md-nav__item">
1869
+ <a href="../../explanation/references/" class="md-nav__link">
1870
+
1871
+
1872
+
1873
+ <span class="md-ellipsis">
1874
+
1875
+
1876
+ Method References
1877
+
1878
+
1879
+
1880
+ </span>
1881
+
1882
+
1883
+
1884
+ </a>
1885
+ </li>
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+ <li class="md-nav__item">
1897
+ <a href="../../explanation/third-party-notices/" class="md-nav__link">
1898
+
1899
+
1900
+
1901
+ <span class="md-ellipsis">
1902
+
1903
+
1904
+ Third-party Notices
1905
+
1906
+
1907
+
1908
+ </span>
1909
+
1910
+
1911
+
1912
+ </a>
1913
+ </li>
1914
+
1915
+
1916
+
1917
+
1918
+ </ul>
1919
+ </nav>
1920
+
1921
+ </li>
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
1958
+
1959
+
1960
+
1961
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
1962
+
1963
+
1964
+ <div class="md-nav__link md-nav__container">
1965
+ <a href="../../development/" class="md-nav__link ">
1966
+
1967
+
1968
+
1969
+ <span class="md-ellipsis">
1970
+
1971
+
1972
+ Development
1973
+
1974
+
1975
+
1976
+ </span>
1977
+
1978
+
1979
+
1980
+ </a>
1981
+
1982
+
1983
+ <label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="">
1984
+ <span class="md-nav__icon md-icon"></span>
1985
+ </label>
1986
+
1987
+ </div>
1988
+
1989
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
1990
+ <label class="md-nav__title" for="__nav_10">
1991
+ <span class="md-nav__icon md-icon"></span>
1992
+
1993
+
1994
+ Development
1995
+
1996
+
1997
+ </label>
1998
+ <ul class="md-nav__list" data-md-scrollfix>
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+ <li class="md-nav__item">
2007
+ <a href="../../development/release-notes/" class="md-nav__link">
2008
+
2009
+
2010
+
2011
+ <span class="md-ellipsis">
2012
+
2013
+
2014
+ Release Notes
2015
+
2016
+
2017
+
2018
+ </span>
2019
+
2020
+
2021
+
2022
+ </a>
2023
+ </li>
2024
+
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+ <li class="md-nav__item">
2035
+ <a href="../../development/tool-authoring/" class="md-nav__link">
2036
+
2037
+
2038
+
2039
+ <span class="md-ellipsis">
2040
+
2041
+
2042
+ Tool Authoring
2043
+
2044
+
2045
+
2046
+ </span>
2047
+
2048
+
2049
+
2050
+ </a>
2051
+ </li>
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+ <li class="md-nav__item">
2063
+ <a href="../../development/documentation/" class="md-nav__link">
2064
+
2065
+
2066
+
2067
+ <span class="md-ellipsis">
2068
+
2069
+
2070
+ Documentation
2071
+
2072
+
2073
+
2074
+ </span>
2075
+
2076
+
2077
+
2078
+ </a>
2079
+ </li>
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+ <li class="md-nav__item">
2091
+ <a href="../../development/contributing/" class="md-nav__link">
2092
+
2093
+
2094
+
2095
+ <span class="md-ellipsis">
2096
+
2097
+
2098
+ Contributing
2099
+
2100
+
2101
+
2102
+ </span>
2103
+
2104
+
2105
+
2106
+ </a>
2107
+ </li>
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+
2117
+
2118
+ <li class="md-nav__item">
2119
+ <a href="../../development/security/" class="md-nav__link">
2120
+
2121
+
2122
+
2123
+ <span class="md-ellipsis">
2124
+
2125
+
2126
+ Security Reporting
2127
+
2128
+
2129
+
2130
+ </span>
2131
+
2132
+
2133
+
2134
+ </a>
2135
+ </li>
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+ <li class="md-nav__item">
2147
+ <a href="../../development/release-readiness/" class="md-nav__link">
2148
+
2149
+
2150
+
2151
+ <span class="md-ellipsis">
2152
+
2153
+
2154
+ Release Readiness
2155
+
2156
+
2157
+
2158
+ </span>
2159
+
2160
+
2161
+
2162
+ </a>
2163
+ </li>
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+
2174
+ <li class="md-nav__item">
2175
+ <a href="../../development/ci-publishing/" class="md-nav__link">
2176
+
2177
+
2178
+
2179
+ <span class="md-ellipsis">
2180
+
2181
+
2182
+ CI and Publishing
2183
+
2184
+
2185
+
2186
+ </span>
2187
+
2188
+
2189
+
2190
+ </a>
2191
+ </li>
2192
+
2193
+
2194
+
2195
+
2196
+ </ul>
2197
+ </nav>
2198
+
2199
+ </li>
2200
+
2201
+
2202
+
2203
+ </ul>
2204
+ </nav>
2205
+ </div>
2206
+ </div>
2207
+ </div>
2208
+
2209
+
2210
+
2211
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
2212
+ <div class="md-sidebar__scrollwrap">
2213
+ <div class="md-sidebar__inner">
2214
+
2215
+
2216
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+
2223
+ <label class="md-nav__title" for="__toc">
2224
+ <span class="md-nav__icon md-icon"></span>
2225
+ Table of contents
2226
+ </label>
2227
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
2228
+
2229
+ <li class="md-nav__item">
2230
+ <a href="#basic-usage" class="md-nav__link">
2231
+ <span class="md-ellipsis">
2232
+
2233
+ Basic Usage
2234
+
2235
+ </span>
2236
+ </a>
2237
+
2238
+ </li>
2239
+
2240
+ <li class="md-nav__item">
2241
+ <a href="#environment-requirement" class="md-nav__link">
2242
+ <span class="md-ellipsis">
2243
+
2244
+ Environment Requirement
2245
+
2246
+ </span>
2247
+ </a>
2248
+
2249
+ </li>
2250
+
2251
+ <li class="md-nav__item">
2252
+ <a href="#option-a-packed-condamicromamba-environment" class="md-nav__link">
2253
+ <span class="md-ellipsis">
2254
+
2255
+ Option A: Packed Conda/Micromamba Environment
2256
+
2257
+ </span>
2258
+ </a>
2259
+
2260
+ <nav class="md-nav" aria-label="Option A: Packed Conda/Micromamba Environment">
2261
+ <ul class="md-nav__list">
2262
+
2263
+ <li class="md-nav__item">
2264
+ <a href="#sidecar-and-fallback-behavior" class="md-nav__link">
2265
+ <span class="md-ellipsis">
2266
+
2267
+ Sidecar and fallback behavior
2268
+
2269
+ </span>
2270
+ </a>
2271
+
2272
+ </li>
2273
+
2274
+ <li class="md-nav__item">
2275
+ <a href="#node-local-cache" class="md-nav__link">
2276
+ <span class="md-ellipsis">
2277
+
2278
+ Node-local cache
2279
+
2280
+ </span>
2281
+ </a>
2282
+
2283
+ </li>
2284
+
2285
+ <li class="md-nav__item">
2286
+ <a href="#replacing-a-managed-pack" class="md-nav__link">
2287
+ <span class="md-ellipsis">
2288
+
2289
+ Replacing a managed pack
2290
+
2291
+ </span>
2292
+ </a>
2293
+
2294
+ </li>
2295
+
2296
+ </ul>
2297
+ </nav>
2298
+
2299
+ </li>
2300
+
2301
+ <li class="md-nav__item">
2302
+ <a href="#option-b-wheelhouse-and-per-job-virtualenv" class="md-nav__link">
2303
+ <span class="md-ellipsis">
2304
+
2305
+ Option B: Wheelhouse and Per-Job Virtualenv
2306
+
2307
+ </span>
2308
+ </a>
2309
+
2310
+ </li>
2311
+
2312
+ <li class="md-nav__item">
2313
+ <a href="#option-c-site-specific-setup-commands" class="md-nav__link">
2314
+ <span class="md-ellipsis">
2315
+
2316
+ Option C: Site-Specific Setup Commands
2317
+
2318
+ </span>
2319
+ </a>
2320
+
2321
+ </li>
2322
+
2323
+ <li class="md-nav__item">
2324
+ <a href="#practical-rules" class="md-nav__link">
2325
+ <span class="md-ellipsis">
2326
+
2327
+ Practical Rules
2328
+
2329
+ </span>
2330
+ </a>
2331
+
2332
+ </li>
2333
+
2334
+ </ul>
2335
+
2336
+ </nav>
2337
+ </div>
2338
+ </div>
2339
+ </div>
2340
+
2341
+
2342
+
2343
+ <div class="md-content" data-md-component="content">
2344
+
2345
+ <article class="md-content__inner md-typeset">
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+ <h1 id="slurm-backend">Slurm Backend<a class="headerlink" href="#slurm-backend" title="Permanent link">&para;</a></h1>
2355
+ <p>CADDForge can submit workflows to Slurm through the core <code>SlurmBackend</code>. The backend writes a
2356
+ payload, submits an <code>sbatch</code> script, and uses CADDForge's Slurm runner on the compute node to execute
2357
+ the workflow.</p>
2358
+ <p>Use Slurm for CADDForge-native workflows that can run in a normal Python environment on a compute
2359
+ node. Check each public tool's runtime requirements before selecting a backend.</p>
2360
+ <h2 id="basic-usage">Basic Usage<a class="headerlink" href="#basic-usage" title="Permanent link">&para;</a></h2>
2361
+ <p>Replace the partition and account placeholders with values from your cluster administrator.</p>
2362
+ <p>Set <code>backend: slurm</code> in the tool config or pass <code>--backend slurm</code> from the CLI:</p>
2363
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>caddforge<span class="w"> </span>run<span class="w"> </span>md<span class="w"> </span>plain-md<span class="w"> </span>--config<span class="w"> </span>plain_md.yaml<span class="w"> </span>--backend<span class="w"> </span>slurm<span class="w"> </span>--slurm-time<span class="w"> </span><span class="m">24</span>:00:00
2364
+ </code></pre></div>
2365
+ <p>Common Slurm config fields:</p>
2366
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">backend</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slurm</span>
2367
+ <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nt">slurm_partition</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">your-partition</span>
2368
+ <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="nt">slurm_time</span><span class="p">:</span><span class="w"> </span><span class="s">"24:00:00"</span>
2369
+ <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="nt">slurm_account</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">your-account</span>
2370
+ <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="nt">slurm_nodes</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
2371
+ <a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="nt">slurm_ntasks</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
2372
+ <a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="nt">slurm_cpus_per_task</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8</span>
2373
+ <a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="nt">sbatch_options</span><span class="p">:</span>
2374
+ <a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="w"> </span><span class="nt">gres</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gpu:1</span>
2375
+ </code></pre></div>
2376
+ <p>Environment-related shared fields include <code>slurm_env_pack_path</code>, <code>slurm_env_cache_enabled</code>,
2377
+ <code>slurm_env_cache_dir</code>, <code>slurm_wheelhouse_path</code>, <code>slurm_requirements_path</code>, and
2378
+ <code>slurm_setup_commands</code>.</p>
2379
+ <h2 id="environment-requirement">Environment Requirement<a class="headerlink" href="#environment-requirement" title="Permanent link">&para;</a></h2>
2380
+ <p>Slurm jobs run on compute nodes, not in the interactive shell where <code>caddforge</code> was launched. The
2381
+ compute node must have access to a compatible Python environment containing:</p>
2382
+ <ul>
2383
+ <li><code>caddforge</code></li>
2384
+ <li>the plugin package being run</li>
2385
+ <li>all Python dependencies</li>
2386
+ <li>all scientific runtime dependencies needed by the workflow</li>
2387
+ </ul>
2388
+ <p>For heavy scientific stacks, install conda-managed packages first, then install CADDForge packages
2389
+ with pip.</p>
2390
+ <h2 id="option-a-packed-condamicromamba-environment">Option A: Packed Conda/Micromamba Environment<a class="headerlink" href="#option-a-packed-condamicromamba-environment" title="Permanent link">&para;</a></h2>
2391
+ <p>Use this when the workflow depends on conda-managed scientific packages such as OpenMM, RDKit,
2392
+ OpenFE, or OpenFF. Dependency resolution happens once before submission, and compute nodes reuse a
2393
+ checksum-addressed unpacked environment cache by default.</p>
2394
+ <p>Create the environment, install CADDForge and the required plugins, then use <code>caddforge pack-env</code>.
2395
+ The core package already depends on <code>conda-pack</code>:</p>
2396
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>micromamba<span class="w"> </span>create<span class="w"> </span>-n<span class="w"> </span>caddforge<span class="w"> </span>-c<span class="w"> </span>conda-forge<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.10
2397
+ <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>micromamba<span class="w"> </span>activate<span class="w"> </span>caddforge
2398
+ <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>micromamba<span class="w"> </span>install<span class="w"> </span>-c<span class="w"> </span>conda-forge<span class="w"> </span>openmm<span class="w"> </span>rdkit
2399
+ <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="c1"># Requires the selected MD version to be published; see the version matrix.</span>
2400
+ <a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>caddforge-core<span class="w"> </span>caddforge-md
2401
+ <a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>
2402
+ <a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="c1"># Pack the active environment.</span>
2403
+ <a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a>caddforge<span class="w"> </span>pack-env<span class="w"> </span>--output<span class="w"> </span>/shared/envs/caddforge.tar.gz
2404
+ <a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a>
2405
+ <a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="c1"># Alternatively, select a named environment or explicit prefix.</span>
2406
+ <a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a>caddforge<span class="w"> </span>pack-env<span class="w"> </span>--name<span class="w"> </span>caddforge<span class="w"> </span>--output<span class="w"> </span>/shared/envs/caddforge.tar.gz
2407
+ <a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a>caddforge<span class="w"> </span>pack-env<span class="w"> </span>--prefix<span class="w"> </span>/path/to/caddforge<span class="w"> </span><span class="se">\</span>
2408
+ <a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="w"> </span>--output<span class="w"> </span>/shared/envs/caddforge.tar.gz
2409
+ </code></pre></div>
2410
+ <p>The command creates:</p>
2411
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>/shared/envs/caddforge.tar.gz
2412
+ <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>/shared/envs/caddforge.tar.gz.sha256
2413
+ </code></pre></div>
2414
+ <p>The sidecar is written in standard <code>sha256sum</code> format. During a long build, <code>pack-env</code> keeps the
2415
+ <code>conda-pack</code> percentage bar on one updating terminal line, streams normal messages, reports elapsed
2416
+ time and the growing archive size during quiet periods, and displays hashing progress.</p>
2417
+ <p>Existing output is protected by default. Use <code>--force</code> for a deliberate fixed-name replacement:</p>
2418
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>caddforge<span class="w"> </span>pack-env<span class="w"> </span>--output<span class="w"> </span>/shared/envs/caddforge-dev.tar.gz<span class="w"> </span>--force
2419
+ </code></pre></div>
2420
+ <p>Use the packed environment in the workflow config:</p>
2421
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">backend</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slurm</span>
2422
+ <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="nt">slurm_env_pack_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/shared/envs/caddforge.tar.gz</span>
2423
+ </code></pre></div>
2424
+ <p>No sidecar path is configured. CADDForge discovers <code>&lt;slurm_env_pack_path&gt;.sha256</code> automatically.</p>
2425
+ <h3 id="sidecar-and-fallback-behavior">Sidecar and fallback behavior<a class="headerlink" href="#sidecar-and-fallback-behavior" title="Permanent link">&para;</a></h3>
2426
+ <p>With caching enabled, submission uses the following compatibility order:</p>
2427
+ <ol>
2428
+ <li>A valid sidecar supplies the trusted SHA-256 immediately, so the large archive is not hashed by
2429
+ the submission command.</li>
2430
+ <li>If the sidecar is missing, malformed, or names another archive, CADDForge warns and falls back to
2431
+ computing the full archive SHA-256. Manually created packs therefore remain supported.</li>
2432
+ <li>If <code>slurm_env_cache_enabled: false</code>, CADDForge skips sidecar lookup and submission-time hashing,
2433
+ then unpacks the environment separately in each job's private scratch directory. This preserves
2434
+ the behavior used before environment caching was introduced.</li>
2435
+ </ol>
2436
+ <p>The first job requiring a digest on a compute node copies the archive to job-private scratch,
2437
+ verifies it against the selected SHA-256, and installs it into the node-local cache. Later jobs on
2438
+ that node reuse the completed cache entry without copying or unpacking the archive again.</p>
2439
+ <h3 id="node-local-cache">Node-local cache<a class="headerlink" href="#node-local-cache" title="Permanent link">&para;</a></h3>
2440
+ <p>The default per-user cache root is:</p>
2441
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>$SCRATCH_BASE/caddforge_environments/$USER
2442
+ </code></pre></div>
2443
+ <p>It contains separate environment, lock, and staging directories. Cache locks are node-local and
2444
+ never lock or modify the source archive. Jobs retain a shared usage lock while running, preventing
2445
+ cleanup from deleting an active environment. Entries idle for more than 14 days are removed
2446
+ opportunistically; the lock timeout is 30 minutes. These are core policies, not per-job options.</p>
2447
+ <p>Sites can override the root with an absolute compute-node path:</p>
2448
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nt">slurm_env_cache_dir</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/scratch/caddforge-environments/my-user</span>
2449
+ </code></pre></div>
2450
+ <p>Node-local caches may disappear during node cleanup or replacement. CADDForge rebuilds missing
2451
+ entries from the shared archive.</p>
2452
+ <h3 id="replacing-a-managed-pack">Replacing a managed pack<a class="headerlink" href="#replacing-a-managed-pack" title="Permanent link">&para;</a></h3>
2453
+ <p><code>pack-env --force</code> creates and hashes the replacement before briefly acquiring a hidden advisory
2454
+ publication lock next to the archive. CADDForge submissions coordinate with this lock when it is
2455
+ present. The source archive itself is never locked.</p>
2456
+ <p>An archive and sidecar are separate files, so direct external replacement bypasses this coordination
2457
+ and is unsupported for managed packs. If sidecar publication fails, CADDForge removes the old
2458
+ sidecar when possible, causing submissions to use the safe full-hash fallback.</p>
2459
+ <p>A job records the digest selected at submission. If a fixed-name archive is replaced before an
2460
+ uncached queued job starts, that job fails checksum verification rather than running a different
2461
+ environment. A job whose matching digest is already cached on its compute node can still use that
2462
+ cache entry.</p>
2463
+ <h2 id="option-b-wheelhouse-and-per-job-virtualenv">Option B: Wheelhouse and Per-Job Virtualenv<a class="headerlink" href="#option-b-wheelhouse-and-per-job-virtualenv" title="Permanent link">&para;</a></h2>
2464
+ <p>Use this when all required packages are available as wheels from a package index or a prepared
2465
+ wheelhouse.</p>
2466
+ <p>Build a wheelhouse:</p>
2467
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>freeze<span class="w"> </span>&gt;<span class="w"> </span>requirements.txt
2468
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>download<span class="w"> </span>-r<span class="w"> </span>requirements.txt<span class="w"> </span>-d<span class="w"> </span>/shared/wheelhouse
2469
+ </code></pre></div>
2470
+ <p>Use it in the workflow config:</p>
2471
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="nt">backend</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slurm</span>
2472
+ <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="nt">slurm_wheelhouse_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/shared/wheelhouse</span>
2473
+ <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="nt">slurm_requirements_path</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/shared/requirements.txt</span>
2474
+ </code></pre></div>
2475
+ <p>The Slurm job creates a temporary virtualenv, installs from the wheelhouse, and runs the workflow.</p>
2476
+ <h2 id="option-c-site-specific-setup-commands">Option C: Site-Specific Setup Commands<a class="headerlink" href="#option-c-site-specific-setup-commands" title="Permanent link">&para;</a></h2>
2477
+ <p>Use <code>slurm_setup_commands</code> only when your cluster already provides a supported module or activation
2478
+ workflow:</p>
2479
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="nt">backend</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slurm</span>
2480
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="nt">slurm_setup_commands</span><span class="p">:</span>
2481
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">module purge</span>
2482
+ <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">module load caddforge/0.2</span>
2483
+ <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">source /shared/envs/caddforge/bin/activate</span>
2484
+ </code></pre></div>
2485
+ <p>If you use setup commands, do not also set <code>slurm_env_pack_path</code>,
2486
+ <code>slurm_wheelhouse_path</code>, or <code>slurm_requirements_path</code>. The setup commands are then fully responsible
2487
+ for making the correct Python executable available.</p>
2488
+ <h2 id="practical-rules">Practical Rules<a class="headerlink" href="#practical-rules" title="Permanent link">&para;</a></h2>
2489
+ <ul>
2490
+ <li>Ensure all referenced environment paths are readable from compute nodes.</li>
2491
+ <li>Use exactly one environment strategy per job.</li>
2492
+ <li>Keep packed environments on shared storage, not in a login-node-only path.</li>
2493
+ <li>Prefer <code>caddforge pack-env</code> so submission can use its managed SHA-256 sidecar.</li>
2494
+ <li>Use <code>--force</code> only when replacing a fixed-name archive is intentional, and avoid replacement while
2495
+ uncached jobs using that archive are queued.</li>
2496
+ <li>Rebuild the environment when plugin versions or scientific dependencies change.</li>
2497
+ <li>Prefer packed conda environments for workflows with compiled scientific dependencies.</li>
2498
+ <li>Prefer wheelhouses for pure Python or locally packaged stacks.</li>
2499
+ </ul>
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+ </article>
2514
+ </div>
2515
+
2516
+
2517
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2518
+ </div>
2519
+
2520
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
2521
+
2522
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
2523
+ Back to top
2524
+ </button>
2525
+
2526
+ </main>
2527
+
2528
+ <footer class="md-footer">
2529
+
2530
+ <div class="md-footer-meta md-typeset">
2531
+ <div class="md-footer-meta__inner md-grid">
2532
+ <div class="md-copyright">
2533
+
2534
+
2535
+ Made with
2536
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2537
+ Material for MkDocs
2538
+ </a>
2539
+
2540
+ </div>
2541
+
2542
+ </div>
2543
+ </div>
2544
+ </footer>
2545
+
2546
+ </div>
2547
+ <div class="md-dialog" data-md-component="dialog">
2548
+ <div class="md-dialog__inner md-typeset"></div>
2549
+ </div>
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+ <script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.instant", "navigation.sections", "navigation.indexes", "navigation.top", "search.highlight", "search.suggest", "content.code.copy"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
2556
+
2557
+
2558
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
2559
+
2560
+
2561
+ </body>
2562
+ </html>