sierra-research 1.3.11__py3-none-any.whl → 1.5.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 (254) hide show
  1. sierra/__init__.py +3 -3
  2. sierra/core/__init__.py +3 -3
  3. sierra/core/batchroot.py +223 -0
  4. sierra/core/cmdline.py +681 -1057
  5. sierra/core/compare.py +11 -0
  6. sierra/core/config.py +96 -88
  7. sierra/core/engine.py +306 -0
  8. sierra/core/execenv.py +380 -0
  9. sierra/core/expdef.py +11 -0
  10. sierra/core/experiment/__init__.py +1 -0
  11. sierra/core/experiment/bindings.py +150 -101
  12. sierra/core/experiment/definition.py +414 -245
  13. sierra/core/experiment/spec.py +83 -85
  14. sierra/core/exproot.py +44 -0
  15. sierra/core/generators/__init__.py +10 -0
  16. sierra/core/generators/experiment.py +528 -0
  17. sierra/core/generators/generator_factory.py +138 -137
  18. sierra/core/graphs/__init__.py +23 -0
  19. sierra/core/graphs/bcbridge.py +94 -0
  20. sierra/core/graphs/heatmap.py +245 -324
  21. sierra/core/graphs/pathset.py +27 -0
  22. sierra/core/graphs/schema.py +77 -0
  23. sierra/core/graphs/stacked_line.py +341 -0
  24. sierra/core/graphs/summary_line.py +506 -0
  25. sierra/core/logging.py +3 -2
  26. sierra/core/models/__init__.py +3 -1
  27. sierra/core/models/info.py +19 -0
  28. sierra/core/models/interface.py +52 -122
  29. sierra/core/pipeline/__init__.py +2 -5
  30. sierra/core/pipeline/pipeline.py +228 -126
  31. sierra/core/pipeline/stage1/__init__.py +10 -0
  32. sierra/core/pipeline/stage1/pipeline_stage1.py +45 -31
  33. sierra/core/pipeline/stage2/__init__.py +10 -0
  34. sierra/core/pipeline/stage2/pipeline_stage2.py +8 -11
  35. sierra/core/pipeline/stage2/runner.py +401 -0
  36. sierra/core/pipeline/stage3/__init__.py +12 -0
  37. sierra/core/pipeline/stage3/gather.py +321 -0
  38. sierra/core/pipeline/stage3/pipeline_stage3.py +37 -84
  39. sierra/core/pipeline/stage4/__init__.py +12 -2
  40. sierra/core/pipeline/stage4/pipeline_stage4.py +36 -354
  41. sierra/core/pipeline/stage5/__init__.py +12 -0
  42. sierra/core/pipeline/stage5/pipeline_stage5.py +33 -208
  43. sierra/core/pipeline/yaml.py +48 -0
  44. sierra/core/plugin.py +529 -62
  45. sierra/core/proc.py +11 -0
  46. sierra/core/prod.py +11 -0
  47. sierra/core/ros1/__init__.py +5 -1
  48. sierra/core/ros1/callbacks.py +22 -21
  49. sierra/core/ros1/cmdline.py +59 -88
  50. sierra/core/ros1/generators.py +159 -175
  51. sierra/core/ros1/variables/__init__.py +3 -0
  52. sierra/core/ros1/variables/exp_setup.py +122 -116
  53. sierra/core/startup.py +106 -76
  54. sierra/core/stat_kernels.py +4 -5
  55. sierra/core/storage.py +13 -32
  56. sierra/core/trampoline.py +30 -0
  57. sierra/core/types.py +116 -71
  58. sierra/core/utils.py +103 -106
  59. sierra/core/variables/__init__.py +1 -1
  60. sierra/core/variables/base_variable.py +12 -17
  61. sierra/core/variables/batch_criteria.py +387 -481
  62. sierra/core/variables/builtin.py +135 -0
  63. sierra/core/variables/exp_setup.py +19 -39
  64. sierra/core/variables/population_size.py +72 -76
  65. sierra/core/variables/variable_density.py +44 -68
  66. sierra/core/vector.py +1 -1
  67. sierra/main.py +256 -88
  68. sierra/plugins/__init__.py +119 -0
  69. sierra/plugins/compare/__init__.py +14 -0
  70. sierra/plugins/compare/graphs/__init__.py +19 -0
  71. sierra/plugins/compare/graphs/cmdline.py +120 -0
  72. sierra/plugins/compare/graphs/comparator.py +291 -0
  73. sierra/plugins/compare/graphs/inter_controller.py +531 -0
  74. sierra/plugins/compare/graphs/inter_scenario.py +297 -0
  75. sierra/plugins/compare/graphs/namecalc.py +53 -0
  76. sierra/plugins/compare/graphs/outputroot.py +73 -0
  77. sierra/plugins/compare/graphs/plugin.py +147 -0
  78. sierra/plugins/compare/graphs/preprocess.py +172 -0
  79. sierra/plugins/compare/graphs/schema.py +37 -0
  80. sierra/plugins/engine/__init__.py +14 -0
  81. sierra/plugins/engine/argos/__init__.py +18 -0
  82. sierra/plugins/{platform → engine}/argos/cmdline.py +144 -151
  83. sierra/plugins/{platform/argos/variables → engine/argos/generators}/__init__.py +5 -0
  84. sierra/plugins/engine/argos/generators/engine.py +394 -0
  85. sierra/plugins/engine/argos/plugin.py +393 -0
  86. sierra/plugins/{platform/argos/generators → engine/argos/variables}/__init__.py +5 -0
  87. sierra/plugins/engine/argos/variables/arena_shape.py +183 -0
  88. sierra/plugins/engine/argos/variables/cameras.py +240 -0
  89. sierra/plugins/engine/argos/variables/constant_density.py +112 -0
  90. sierra/plugins/engine/argos/variables/exp_setup.py +82 -0
  91. sierra/plugins/{platform → engine}/argos/variables/physics_engines.py +83 -87
  92. sierra/plugins/engine/argos/variables/population_constant_density.py +178 -0
  93. sierra/plugins/engine/argos/variables/population_size.py +115 -0
  94. sierra/plugins/engine/argos/variables/population_variable_density.py +123 -0
  95. sierra/plugins/engine/argos/variables/rendering.py +108 -0
  96. sierra/plugins/engine/ros1gazebo/__init__.py +18 -0
  97. sierra/plugins/engine/ros1gazebo/cmdline.py +175 -0
  98. sierra/plugins/{platform/ros1robot → engine/ros1gazebo}/generators/__init__.py +5 -0
  99. sierra/plugins/engine/ros1gazebo/generators/engine.py +125 -0
  100. sierra/plugins/engine/ros1gazebo/plugin.py +404 -0
  101. sierra/plugins/engine/ros1gazebo/variables/__init__.py +15 -0
  102. sierra/plugins/engine/ros1gazebo/variables/population_size.py +214 -0
  103. sierra/plugins/engine/ros1robot/__init__.py +18 -0
  104. sierra/plugins/engine/ros1robot/cmdline.py +159 -0
  105. sierra/plugins/{platform/ros1gazebo → engine/ros1robot}/generators/__init__.py +4 -0
  106. sierra/plugins/engine/ros1robot/generators/engine.py +95 -0
  107. sierra/plugins/engine/ros1robot/plugin.py +410 -0
  108. sierra/plugins/{hpc/local → engine/ros1robot/variables}/__init__.py +5 -0
  109. sierra/plugins/engine/ros1robot/variables/population_size.py +146 -0
  110. sierra/plugins/execenv/__init__.py +11 -0
  111. sierra/plugins/execenv/hpc/__init__.py +18 -0
  112. sierra/plugins/execenv/hpc/adhoc/__init__.py +18 -0
  113. sierra/plugins/execenv/hpc/adhoc/cmdline.py +30 -0
  114. sierra/plugins/execenv/hpc/adhoc/plugin.py +131 -0
  115. sierra/plugins/execenv/hpc/cmdline.py +137 -0
  116. sierra/plugins/execenv/hpc/local/__init__.py +18 -0
  117. sierra/plugins/execenv/hpc/local/cmdline.py +31 -0
  118. sierra/plugins/execenv/hpc/local/plugin.py +145 -0
  119. sierra/plugins/execenv/hpc/pbs/__init__.py +18 -0
  120. sierra/plugins/execenv/hpc/pbs/cmdline.py +30 -0
  121. sierra/plugins/execenv/hpc/pbs/plugin.py +121 -0
  122. sierra/plugins/execenv/hpc/slurm/__init__.py +18 -0
  123. sierra/plugins/execenv/hpc/slurm/cmdline.py +30 -0
  124. sierra/plugins/execenv/hpc/slurm/plugin.py +133 -0
  125. sierra/plugins/execenv/prefectserver/__init__.py +18 -0
  126. sierra/plugins/execenv/prefectserver/cmdline.py +66 -0
  127. sierra/plugins/execenv/prefectserver/dockerremote/__init__.py +18 -0
  128. sierra/plugins/execenv/prefectserver/dockerremote/cmdline.py +66 -0
  129. sierra/plugins/execenv/prefectserver/dockerremote/plugin.py +132 -0
  130. sierra/plugins/execenv/prefectserver/flow.py +66 -0
  131. sierra/plugins/execenv/prefectserver/local/__init__.py +18 -0
  132. sierra/plugins/execenv/prefectserver/local/cmdline.py +29 -0
  133. sierra/plugins/execenv/prefectserver/local/plugin.py +133 -0
  134. sierra/plugins/{hpc/adhoc → execenv/robot}/__init__.py +1 -0
  135. sierra/plugins/execenv/robot/turtlebot3/__init__.py +18 -0
  136. sierra/plugins/execenv/robot/turtlebot3/plugin.py +204 -0
  137. sierra/plugins/expdef/__init__.py +14 -0
  138. sierra/plugins/expdef/json/__init__.py +14 -0
  139. sierra/plugins/expdef/json/plugin.py +504 -0
  140. sierra/plugins/expdef/xml/__init__.py +14 -0
  141. sierra/plugins/expdef/xml/plugin.py +386 -0
  142. sierra/{core/hpc → plugins/proc}/__init__.py +1 -1
  143. sierra/plugins/proc/collate/__init__.py +15 -0
  144. sierra/plugins/proc/collate/cmdline.py +47 -0
  145. sierra/plugins/proc/collate/plugin.py +271 -0
  146. sierra/plugins/proc/compress/__init__.py +18 -0
  147. sierra/plugins/proc/compress/cmdline.py +47 -0
  148. sierra/plugins/proc/compress/plugin.py +123 -0
  149. sierra/plugins/proc/decompress/__init__.py +18 -0
  150. sierra/plugins/proc/decompress/plugin.py +96 -0
  151. sierra/plugins/proc/imagize/__init__.py +15 -0
  152. sierra/plugins/proc/imagize/cmdline.py +49 -0
  153. sierra/plugins/proc/imagize/plugin.py +270 -0
  154. sierra/plugins/proc/modelrunner/__init__.py +16 -0
  155. sierra/plugins/proc/modelrunner/plugin.py +250 -0
  156. sierra/plugins/proc/statistics/__init__.py +15 -0
  157. sierra/plugins/proc/statistics/cmdline.py +64 -0
  158. sierra/plugins/proc/statistics/plugin.py +390 -0
  159. sierra/plugins/{hpc → prod}/__init__.py +1 -0
  160. sierra/plugins/prod/graphs/__init__.py +18 -0
  161. sierra/plugins/prod/graphs/cmdline.py +269 -0
  162. sierra/plugins/prod/graphs/collate.py +279 -0
  163. sierra/plugins/prod/graphs/inter/__init__.py +13 -0
  164. sierra/plugins/prod/graphs/inter/generate.py +83 -0
  165. sierra/plugins/prod/graphs/inter/heatmap.py +86 -0
  166. sierra/plugins/prod/graphs/inter/line.py +134 -0
  167. sierra/plugins/prod/graphs/intra/__init__.py +15 -0
  168. sierra/plugins/prod/graphs/intra/generate.py +202 -0
  169. sierra/plugins/prod/graphs/intra/heatmap.py +74 -0
  170. sierra/plugins/prod/graphs/intra/line.py +114 -0
  171. sierra/plugins/prod/graphs/plugin.py +103 -0
  172. sierra/plugins/prod/graphs/targets.py +63 -0
  173. sierra/plugins/prod/render/__init__.py +18 -0
  174. sierra/plugins/prod/render/cmdline.py +72 -0
  175. sierra/plugins/prod/render/plugin.py +282 -0
  176. sierra/plugins/storage/__init__.py +5 -0
  177. sierra/plugins/storage/arrow/__init__.py +18 -0
  178. sierra/plugins/storage/arrow/plugin.py +38 -0
  179. sierra/plugins/storage/csv/__init__.py +9 -0
  180. sierra/plugins/storage/csv/plugin.py +12 -5
  181. sierra/version.py +3 -2
  182. sierra_research-1.5.0.dist-info/METADATA +238 -0
  183. sierra_research-1.5.0.dist-info/RECORD +186 -0
  184. {sierra_research-1.3.11.dist-info → sierra_research-1.5.0.dist-info}/WHEEL +1 -2
  185. sierra/core/experiment/xml.py +0 -454
  186. sierra/core/generators/controller_generator_parser.py +0 -34
  187. sierra/core/generators/exp_creator.py +0 -351
  188. sierra/core/generators/exp_generators.py +0 -142
  189. sierra/core/graphs/scatterplot2D.py +0 -109
  190. sierra/core/graphs/stacked_line_graph.py +0 -251
  191. sierra/core/graphs/stacked_surface_graph.py +0 -220
  192. sierra/core/graphs/summary_line_graph.py +0 -371
  193. sierra/core/hpc/cmdline.py +0 -142
  194. sierra/core/models/graphs.py +0 -87
  195. sierra/core/pipeline/stage2/exp_runner.py +0 -286
  196. sierra/core/pipeline/stage3/imagizer.py +0 -149
  197. sierra/core/pipeline/stage3/run_collator.py +0 -317
  198. sierra/core/pipeline/stage3/statistics_calculator.py +0 -478
  199. sierra/core/pipeline/stage4/graph_collator.py +0 -320
  200. sierra/core/pipeline/stage4/inter_exp_graph_generator.py +0 -240
  201. sierra/core/pipeline/stage4/intra_exp_graph_generator.py +0 -317
  202. sierra/core/pipeline/stage4/model_runner.py +0 -168
  203. sierra/core/pipeline/stage4/rendering.py +0 -283
  204. sierra/core/pipeline/stage4/yaml_config_loader.py +0 -103
  205. sierra/core/pipeline/stage5/inter_scenario_comparator.py +0 -328
  206. sierra/core/pipeline/stage5/intra_scenario_comparator.py +0 -989
  207. sierra/core/platform.py +0 -493
  208. sierra/core/plugin_manager.py +0 -369
  209. sierra/core/root_dirpath_generator.py +0 -241
  210. sierra/plugins/hpc/adhoc/plugin.py +0 -125
  211. sierra/plugins/hpc/local/plugin.py +0 -81
  212. sierra/plugins/hpc/pbs/__init__.py +0 -9
  213. sierra/plugins/hpc/pbs/plugin.py +0 -126
  214. sierra/plugins/hpc/slurm/__init__.py +0 -9
  215. sierra/plugins/hpc/slurm/plugin.py +0 -130
  216. sierra/plugins/platform/__init__.py +0 -9
  217. sierra/plugins/platform/argos/__init__.py +0 -9
  218. sierra/plugins/platform/argos/generators/platform_generators.py +0 -383
  219. sierra/plugins/platform/argos/plugin.py +0 -337
  220. sierra/plugins/platform/argos/variables/arena_shape.py +0 -145
  221. sierra/plugins/platform/argos/variables/cameras.py +0 -243
  222. sierra/plugins/platform/argos/variables/constant_density.py +0 -136
  223. sierra/plugins/platform/argos/variables/exp_setup.py +0 -113
  224. sierra/plugins/platform/argos/variables/population_constant_density.py +0 -175
  225. sierra/plugins/platform/argos/variables/population_size.py +0 -102
  226. sierra/plugins/platform/argos/variables/population_variable_density.py +0 -132
  227. sierra/plugins/platform/argos/variables/rendering.py +0 -104
  228. sierra/plugins/platform/ros1gazebo/__init__.py +0 -9
  229. sierra/plugins/platform/ros1gazebo/cmdline.py +0 -213
  230. sierra/plugins/platform/ros1gazebo/generators/platform_generators.py +0 -137
  231. sierra/plugins/platform/ros1gazebo/plugin.py +0 -335
  232. sierra/plugins/platform/ros1gazebo/variables/__init__.py +0 -10
  233. sierra/plugins/platform/ros1gazebo/variables/population_size.py +0 -204
  234. sierra/plugins/platform/ros1robot/__init__.py +0 -9
  235. sierra/plugins/platform/ros1robot/cmdline.py +0 -175
  236. sierra/plugins/platform/ros1robot/generators/platform_generators.py +0 -112
  237. sierra/plugins/platform/ros1robot/plugin.py +0 -373
  238. sierra/plugins/platform/ros1robot/variables/__init__.py +0 -10
  239. sierra/plugins/platform/ros1robot/variables/population_size.py +0 -146
  240. sierra/plugins/robot/__init__.py +0 -9
  241. sierra/plugins/robot/turtlebot3/__init__.py +0 -9
  242. sierra/plugins/robot/turtlebot3/plugin.py +0 -194
  243. sierra_research-1.3.11.data/data/share/man/man1/sierra-cli.1 +0 -2349
  244. sierra_research-1.3.11.data/data/share/man/man7/sierra-examples.7 +0 -508
  245. sierra_research-1.3.11.data/data/share/man/man7/sierra-exec-envs.7 +0 -331
  246. sierra_research-1.3.11.data/data/share/man/man7/sierra-glossary.7 +0 -285
  247. sierra_research-1.3.11.data/data/share/man/man7/sierra-platforms.7 +0 -358
  248. sierra_research-1.3.11.data/data/share/man/man7/sierra-usage.7 +0 -729
  249. sierra_research-1.3.11.data/data/share/man/man7/sierra.7 +0 -78
  250. sierra_research-1.3.11.dist-info/METADATA +0 -492
  251. sierra_research-1.3.11.dist-info/RECORD +0 -133
  252. sierra_research-1.3.11.dist-info/top_level.txt +0 -1
  253. {sierra_research-1.3.11.dist-info → sierra_research-1.5.0.dist-info}/entry_points.txt +0 -0
  254. {sierra_research-1.3.11.dist-info → sierra_research-1.5.0.dist-info/licenses}/LICENSE +0 -0
@@ -1,331 +0,0 @@
1
- .\" Man page generated from reStructuredText.
2
- .
3
- .
4
- .nr rst2man-indent-level 0
5
- .
6
- .de1 rstReportMargin
7
- \\$1 \\n[an-margin]
8
- level \\n[rst2man-indent-level]
9
- level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
10
- -
11
- \\n[rst2man-indent0]
12
- \\n[rst2man-indent1]
13
- \\n[rst2man-indent2]
14
- ..
15
- .de1 INDENT
16
- .\" .rstReportMargin pre:
17
- . RS \\$1
18
- . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
19
- . nr rst2man-indent-level +1
20
- .\" .rstReportMargin post:
21
- ..
22
- .de UNINDENT
23
- . RE
24
- .\" indent \\n[an-margin]
25
- .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
26
- .nr rst2man-indent-level -1
27
- .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
28
- .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
29
- ..
30
- .TH "SIERRA-EXEC-ENVS" "7" "Sep 23, 2024" "1.3.11" "SIERRA"
31
- .SH NAME
32
- sierra-exec-envs \- The execution environments SIERRA supports.
33
- .SH HPC EXECUTION ENVIRONMENT PLUGINS
34
- .sp
35
- SIERRA is capable of adapting its runtime infrastructure to a number of
36
- different HPC environments so that experiments can be run efficiently on
37
- whatever computational resources a researcher has access to. Supported
38
- environments that come with SIERRA are listed on this page.
39
- .sp
40
- These plugins tested with the following platforms (they may work on other
41
- platforms out of the box too):
42
- .INDENT 0.0
43
- .IP \(bu 2
44
- \fI\%ARGoS Platform\fP
45
- .IP \(bu 2
46
- \fI\%ROS1+Gazebo Platform\fP
47
- .UNINDENT
48
- .sp
49
- SIERRA makes the following assumptions about the HPC environments corresponding
50
- to the plugins listed on this page:
51
- .SH HPC ENVIRONMENT ASSUMPTIONS
52
- .TS
53
- center;
54
- |l|l|.
55
- _
56
- T{
57
- Assumption
58
- T} T{
59
- Rationale
60
- T}
61
- _
62
- T{
63
- All nodes allocated to SIERRA have the same # of cores (can be less than
64
- the total # available on each compute node). Note that this may be \fIless\fP
65
- than the actual number of cores available on each node, if the HPC
66
- environment allows node sharing, and the job SIERRA runs in is allocated
67
- less than the total # cores on a given node.
68
- T} T{
69
- Simplicity: If allocated nodes had different core counts, SIERRA would
70
- have to do more of the work of an HPC scheduler, and match jobs to
71
- nodes. May be an avenue for future improvement.
72
- T}
73
- _
74
- T{
75
- All nodes have a shared filesystem.
76
- T} T{
77
- Standard feature on HPC environments. If for some reason this is not
78
- true, stage 2 outputs will have to be manually placed such that it is as
79
- if everything ran on a common filesystem prior to running any later
80
- stages.
81
- T}
82
- _
83
- .TE
84
- .SS Local HPC Plugin
85
- .sp
86
- This HPC environment can be selected via \fB\-\-exec\-env=hpc.local\fP\&.
87
- .sp
88
- This is the default HPC environment in which SIERRA will run all experiments on
89
- the same computer from which it was launched using GNU parallel. The #
90
- simultaneous simulations will be determined by:
91
- .INDENT 0.0
92
- .INDENT 3.5
93
- .sp
94
- .nf
95
- .ft C
96
- # cores on machine / # threads per experimental run
97
- .ft P
98
- .fi
99
- .UNINDENT
100
- .UNINDENT
101
- .sp
102
- If more simulations are requested than can be run in parallel, SIERRA will start
103
- additional simulations as currently running simulations finish.
104
- .sp
105
- No additional configuration/environment variables are needed with this HPC
106
- environment for use with SIERRA.
107
- .SS ARGoS Considerations
108
- .sp
109
- The # threads per \fI\%experimental run\fP is defined with
110
- \fB\-\-physics\-n\-engines\fP, and that option is required for this HPC environment
111
- during stage 1.
112
- .SS PBS HPC Plugin
113
- .sp
114
- This HPC environment can be selected via \fB\-\-exec\-env=hpc.pbs\fP\&.
115
- .sp
116
- In this HPC environment, SIERRA will run experiments spread across multiple
117
- allocated nodes by a PBS compatible scheduler such as Moab. The following table
118
- describes the PBS\-SIERRA interface. Some PBS environment variables are used by
119
- SIERRA to configure experiments during stage 1,2 (see TOQUE\-PBS docs for
120
- meaning); if they are not defined SIERRA will throw an error.
121
- .SS PBS\-SIERRA interface
122
- .TS
123
- center;
124
- |l|l|.
125
- _
126
- T{
127
- PBS environment variable
128
- T} T{
129
- SIERRA context
130
- T}
131
- _
132
- T{
133
- PBS_NUM_PPN
134
- T} T{
135
- Used to calculate # threads per experimental run for each allocated
136
- compute node via:
137
- .INDENT 0.0
138
- .INDENT 3.5
139
- .sp
140
- .nf
141
- .ft C
142
- floor(PBS_NUM_PPN / \-\-exec\-jobs\-per\-node)
143
- .ft P
144
- .fi
145
- .UNINDENT
146
- .UNINDENT
147
- .sp
148
- That is, \fB\-\-exec\-jobs\-per\-node\fP is required for PBS HPC environments.
149
- T}
150
- _
151
- T{
152
- PBS_NODEFILE
153
- T} T{
154
- Obtaining the list of nodes allocated to a job which SIERRA can direct
155
- GNU parallel to use for experiments.
156
- T}
157
- _
158
- T{
159
- PBS_JOBID
160
- T} T{
161
- Creating the UUID nodelist file passed to GNU parallel, guaranteeing
162
- no collisions (i.e., simultaneous SIERRA invocations sharing allocated
163
- nodes) if multiple jobs are started from the same directory.
164
- T}
165
- _
166
- .TE
167
- .sp
168
- The following environmental variables are used in the PBS HPC environment:
169
- .TS
170
- center;
171
- |l|l|.
172
- _
173
- T{
174
- Environment variable
175
- T} T{
176
- Use
177
- T}
178
- _
179
- T{
180
- \fI\%SIERRA_ARCH\fP
181
- T} T{
182
- Used to enable architecture/OS specific builds of simulators for maximum
183
- speed at runtime on clusters.
184
- T}
185
- _
186
- T{
187
- \fI\%PARALLEL\fP
188
- T} T{
189
- Used to transfer environment variables into the GNU parallel
190
- environment. This must be always done because PBS doesn\(aqt transfer
191
- variables automatically, and because GNU parallel starts another level of
192
- child shells.
193
- T}
194
- _
195
- .TE
196
- .SS SLURM HPC Plugin
197
- .sp
198
- \fI\%https://slurm.schedmd.com/documentation.html\fP
199
- .sp
200
- This HPC environment can be selected via \fB\-\-exec\-env=hpc.slurm\fP\&.
201
- .sp
202
- In this HPC environment, SIERRA will run experiments spread across multiple
203
- allocated nodes by the SLURM scheduler. The following table describes the
204
- SLURM\-SIERRA interface. Some SLURM environment variables are used by SIERRA to
205
- configure experiments during stage 1,2 (see SLURM docs for meaning); if they are
206
- not defined SIERRA will throw an error.
207
- .SS SLURM\-SIERRA interface
208
- .TS
209
- center;
210
- |l|l|l|.
211
- _
212
- T{
213
- SLURM environment variable
214
- T} T{
215
- SIERRA context
216
- T} T{
217
- Command line override
218
- T}
219
- _
220
- T{
221
- SLURM_CPUS_PER_TASK
222
- T} T{
223
- Used to set # threads per experimental node for each allocated compute
224
- node.
225
- T} T{
226
- N/A
227
- T}
228
- _
229
- T{
230
- SLURM_TASKS_PER_NODE
231
- T} T{
232
- Used to set # parallel jobs per allocated compute node.
233
- T} T{
234
- \fB\-\-exec\-jobs\-per\-node\fP
235
- T}
236
- _
237
- T{
238
- SLURM_JOB_NODELIST
239
- T} T{
240
- Obtaining the list of nodes allocated to a job which SIERRA can direct
241
- GNU parallel to use for experiments.
242
- T} T{
243
- N/A
244
- T}
245
- _
246
- T{
247
- SLURM_JOB_ID
248
- T} T{
249
- Creating the UUID nodelist file passed to GNU parallel, guaranteeing no
250
- collisions (i.e., simultaneous SIERRA invocations sharing allocated nodes
251
- if multiple jobs are started from the same directory).
252
- T} T{
253
- N/A
254
- T}
255
- _
256
- .TE
257
- .sp
258
- The following environmental variables are used in the SLURM HPC environment:
259
- .TS
260
- center;
261
- |l|l|.
262
- _
263
- T{
264
- Environment variable
265
- T} T{
266
- Use
267
- T}
268
- _
269
- T{
270
- \fI\%SIERRA_ARCH\fP
271
- T} T{
272
- Used to enable architecture/OS specific builds of simulators for maximum
273
- speed at runtime on clusters.
274
- T}
275
- _
276
- T{
277
- \fI\%PARALLEL\fP
278
- T} T{
279
- Used to transfer environment variables into the GNU parallel
280
- environment. This must be done even though SLURM can transfer variables
281
- automatically, because GNU parallel starts another level of child
282
- shells.
283
- T}
284
- _
285
- .TE
286
- .SS Adhoc HPC Plugin
287
- .sp
288
- This HPC environment can be selected via \fB\-\-exec\-env=hpc.adhoc\fP\&.
289
- .sp
290
- In this HPC environment, SIERRA will run experiments spread across an ad\-hoc
291
- network of compute nodes. SIERRA makes the following assumptions about the
292
- compute nodes it is allocated each invocation:
293
- .INDENT 0.0
294
- .IP \(bu 2
295
- All nodes have a shared filesystem.
296
- .UNINDENT
297
- .sp
298
- The following environmental variables are used in the Adhoc HPC environment:
299
- .TS
300
- center;
301
- |l|l|l|l|.
302
- _
303
- T{
304
- Environment variable
305
- T} T{
306
- SIERRA context
307
- T} T{
308
- Command line override
309
- T} T{
310
- Notes
311
- T}
312
- _
313
- T{
314
- \fI\%SIERRA_NODEFILE\fP
315
- T} T{
316
- Contains hostnames/IP address of all compute nodes SIERRA can use. Same
317
- format as GNU parallel \fB\-\-sshloginfile\fP\&.
318
- T} T{
319
- \fB\-\-nodefile\fP
320
- T} T{
321
- \fI\%SIERRA_NODEFILE\fP must be defined or \fB\-\-nodefile\fP passed. If
322
- neither is true, SIERRA will throw an error.
323
- T}
324
- _
325
- .TE
326
- .SH AUTHOR
327
- John Harwell
328
- .SH COPYRIGHT
329
- 2022, John Harwell
330
- .\" Generated by docutils manpage writer.
331
- .
@@ -1,285 +0,0 @@
1
- .\" Man page generated from reStructuredText.
2
- .
3
- .
4
- .nr rst2man-indent-level 0
5
- .
6
- .de1 rstReportMargin
7
- \\$1 \\n[an-margin]
8
- level \\n[rst2man-indent-level]
9
- level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
10
- -
11
- \\n[rst2man-indent0]
12
- \\n[rst2man-indent1]
13
- \\n[rst2man-indent2]
14
- ..
15
- .de1 INDENT
16
- .\" .rstReportMargin pre:
17
- . RS \\$1
18
- . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
19
- . nr rst2man-indent-level +1
20
- .\" .rstReportMargin post:
21
- ..
22
- .de UNINDENT
23
- . RE
24
- .\" indent \\n[an-margin]
25
- .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
26
- .nr rst2man-indent-level -1
27
- .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
28
- .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
29
- ..
30
- .TH "SIERRA-GLOSSARY" "7" "Sep 23, 2024" "1.3.11" "SIERRA"
31
- .SH NAME
32
- sierra-glossary \- Glossary of SIERRA terminology.
33
- .SH GLOSSARY
34
- .sp
35
- SIERRA uses a number of common research\-related terms, perhaps in different ways
36
- than you are used to. They are defined here to help demystify \fIwhy\fP SIERRA
37
- works/is designed the way it is, and to help you find your way around.
38
- .INDENT 0.0
39
- .TP
40
- .B ARGoS
41
- A state\-of\-the\-art multi\-physics engine robotics simulator which SIERRA
42
- supports as a \fI\%Platform\fP\&. The ARGoS website is at
43
- \fI\%https://www.argos\-sim.info/index.php\fP\&.
44
- .TP
45
- .B Gazebo
46
- A state\-of\-the\-art robotics simulator with many features including .urdf
47
- robot models, realistic 3D rendering, and more. The Gazebo website is at
48
- \fI\%https://gazebosim.org\fP\&.
49
- .TP
50
- .B ROS1
51
- You know it. You either love it or hate it, but you can\(aqt escape it. The
52
- ROS website is at \fI\%https://wiki.ros.org\fP\&.
53
- .TP
54
- .B ROS1+Gazebo
55
- A \fI\%Platform\fP supported by SIERRA to use \fI\%ROS1\fP with the
56
- \fI\%Gazebo\fP simulator.
57
- .TP
58
- .B ROS1+Robot
59
- A \fI\%Platform\fP supported by SIERRA using \fI\%ROS1\fP and any robot
60
- which supports ROS.
61
- .TP
62
- .B Project
63
- The SIERRA plugin allowing you to use your code on the platform of your
64
- choice within the SIERRA framework. A project is mainly a set of \fB\&.yaml\fP
65
- configuration files, project\-specific \fI\%Batch Criteria\fP, and some
66
- utility classes which allow SIERRA to translate the \fB\-\-scenario\fP
67
- argument passed on the cmdline to sets of XML changes as part of
68
- \fI\%Experiment\fP definition.
69
- .sp
70
- \fBIMPORTANT:\fP
71
- .INDENT 7.0
72
- .INDENT 3.5
73
- The parent directories of all SIERRA project plugins must
74
- be on \fI\%SIERRA_PLUGIN_PATH\fP, or SIERRA won\(aqt be able
75
- to find them.
76
- .UNINDENT
77
- .UNINDENT
78
- .sp
79
- \fBIMPORTANT:\fP
80
- .INDENT 7.0
81
- .INDENT 3.5
82
- You can\(aqt share projects across \fI\%Platforms\fP, so if you want to be able to use your project
83
- on ROS and ARGoS (for example), you will need to create 2
84
- separate projects with shared python code imported into
85
- each as needed.
86
- .UNINDENT
87
- .UNINDENT
88
- .sp
89
- Specified via \fB\-\-project\fP on the cmdline. See \fI\%Command Line Interface\fP for
90
- documentation.
91
- .TP
92
- .B Tick
93
- A timestep. In SIERRA, physics engines will perform some number of
94
- iterations per tick, and after that the controllers for all agents will be
95
- run.
96
- .TP
97
- .B Batch Criteria
98
- A \fIvariable\fP you wish to use with SIERRA to measure its effect on system
99
- behavior. A batch criteria can has a single axis (such as
100
- \fI\%Population Size\fP), in which case it is
101
- called \fIunivariate\fP, or have two axes (such as
102
- \fI\%Population Size\fP and another batch
103
- criteria such as one defining sensor and actuator noise to apply to the
104
- robots), in which case it is called \fIbivariate\fP\&.
105
- .sp
106
- Univariate batch criteria have one dimension, and so the graphs produced
107
- by them are (usually) linegraphs with a numerical representation of the
108
- range for the variable on the X axis, and some other quantity of interest
109
- on the Y.
110
- .sp
111
- Bivariate batch criteria have two dimensions, and so the graphs produced
112
- by them are (usually) heatmaps with the first variable in the criteria on
113
- the X axis, the second on the Y, and the quantity of interest on
114
- the Z. Bivariate batch criteria are always built using univariate batch
115
- criteria as building blocks.
116
- .sp
117
- The axis/axes you select as part of the batch criteria you will use to
118
- define for \fI\%Batch Experiment\fP define the \fIsearch space\fP for your
119
- experiment: either a 1D or 2D array of \fI\%Experiments\fP\&.
120
- .sp
121
- Batch criteria define a \fIrange\fP of sets changes for one or more elements
122
- in a template \fB\&.xml\fP file (passed to SIERRA with
123
- \fB\-\-template\-input\-file\fP). For each element in the range, the changes are
124
- applied to the template \fB\&.xml\fP file to define
125
- \fI\%Experiments\fP\&. The set of defined experiments is called
126
- a \fI\%Batch Experiment\fP\&.
127
- .sp
128
- The batch criteria you can use depends on:
129
- .INDENT 7.0
130
- .INDENT 3.5
131
- .INDENT 0.0
132
- .IP \(bu 2
133
- The \fI\%Project\fP you have loaded, as each project can define their
134
- own batch criteria (see ln\-sierra\-tutorials\-project\-new\-bc).
135
- .IP \(bu 2
136
- The \fI\%Platform\fP you have selected, as each platform defines some
137
- basic batch criteria that any project/experiment can use.
138
- .UNINDENT
139
- .UNINDENT
140
- .UNINDENT
141
- .sp
142
- SIERRA itself does not define any batch criteria.
143
- .TP
144
- .B Batch Experiment
145
- A set of \fI\%Experiments\fP each defined by XML changes
146
- generated by the selected \fI\%Batch Criteria\fP to a template \fB\&.argos\fP
147
- file passed to SIERRA during stage 1 via \fB\-\-template\-input\-file\fP\&.
148
- .sp
149
- For example, for the \fI\%Population Size\fP
150
- batch criteria, each experiment is defined by a single XML change to the
151
- provided \fB\&.argos\fP file: the number of robots in the swarm. Depending on
152
- the specifics you set for the \fIrange\fP of sizes you are interested in,
153
- several experiments will be generated from the template \fB\&.argos\fP file,
154
- each differing from the template in the configured swarm size.
155
- .TP
156
- .B Experiment
157
- A single datapoint within a \fI\%Batch Experiment\fP;
158
- that is a single value of the \fIthing\fP that you are interested in varying
159
- across some range of experiments to see what happens (or doesn\(aqt happen).
160
- .TP
161
- .B Experimental Run
162
- Meaning is \fI\%Platform\fP dependent.
163
- .sp
164
- For \fB\-\-platform=platform.argos\fP it is an \fI\%ARGoS\fP simulation that
165
- runs as part of an experiment. For \fB\-\-platform=platform.ros1gazebo\fP it
166
- is a \fI\%Gazebo\fP simulation that runs as part of an experiment.
167
- .sp
168
- The number of simulations which will be run by SIERRA in stage 2 and
169
- averaged together by SIERRA in stage 3 is controlled by \fB\-\-n\-runs\fP\&.
170
- .sp
171
- All runs in within an \fI\%Experiment\fP are identical, with the exception
172
- of:
173
- .INDENT 7.0
174
- .IP \(bu 2
175
- Different values for the XML changes resulting from the different
176
- experiments they are part of, as defined by the batch criteria
177
- generating the batch experiment.
178
- .IP \(bu 2
179
- Different random seeds
180
- .UNINDENT
181
- .TP
182
- .B Output .csv
183
- A CSV file generated as an output from a single \fI\%Experimental
184
- Run\fP\&. It will (probably) contain a set of columns of representing outputs
185
- of interest, with rows corresponding to values captured throughout the
186
- run.
187
- .TP
188
- .B Averaged .csv
189
- A CSV file generated as from averaging files from multiple
190
- \fI\%Experimental Runs\fP\&. It will (probably) contain a
191
- set of columns of representing outputs of interest, with rows
192
- corresponding to values captured throughout the run (i.e., a time
193
- series).
194
- .TP
195
- .B Collated .csv
196
- A CSV file created by SIERRA during stage 4 (if inter\-experiment
197
- graph generation is to be run). Collated CSV files contain a set
198
- columns, one per \fI\%Experiment\fP in the \fI\%Batch Experiment\fP\&. Each
199
- column is the captured value of a \fIsingle\fP column within an \fI\%Output
200
- \&.csv\fP\&. This is to capture a specific aspect of the behavior of the swarm
201
- within a batch experiment, for use in graph generation.
202
- .TP
203
- .B Summary .csv
204
- A CSV file created by SIERRA during stage 4 (if inter\-experiment
205
- graph generation is to be run). A summary CSV file created from a
206
- \fI\%Collated .csv\fP file by taking the last row; this usually
207
- corresponds to steady\-state behavior, which is what you are
208
- after. However, you can also capture transient behaviors by creating
209
- \fI\%Collated .csv\fP and \fI\%Summary .csv\fP files from captured
210
- \fI\%Experimental Run\fP outputs over short stretches of time\-\-SIERRA does
211
- not know the difference.
212
- .TP
213
- .B Inter\-Batch .csv
214
- A CSV file created by SIERRA during stage 5. An inter\-batch CSV
215
- is created by \(dqcollating\(dq columns from a \fI\%Summary .csv\fP present in
216
- multiple \fI\%Batch Experiments\fP into a single
217
- CSV. Used during stage 5.
218
- .TP
219
- .B Imagizing
220
- The process of turning a text file of some kind (e.g., CSV, \fB\&.gml\fP)
221
- into an image.
222
- .TP
223
- .B Platform
224
- The \fIcontext\fP in which experiments are run: either via a simulator of some
225
- kind, or a run\-time framework for deploying code to one or more real
226
- robots.
227
- .sp
228
- \fBIMPORTANT:\fP
229
- .INDENT 7.0
230
- .INDENT 3.5
231
- In SIERRA terminology, platform != OS. A given OS such has
232
- linux might support multiple platforms like ARGoS, ROS,
233
- etc, while a different OS like OSX might support only
234
- ARGoS.
235
- .UNINDENT
236
- .UNINDENT
237
- .TP
238
- .B Graph Category
239
- A semantic label attached to a set of graphs which are similar. For
240
- example, if you want to generate graphs about the different ways that
241
- robots allocate tasks, you might create a \fBLN_task_alloc\fP label, so that
242
- you can enable/disable all task allocation related graphs for one or more
243
- controllers easily when configuring your project.
244
- .TP
245
- .B Controller Category
246
- A semantic label attached to a set of controllers which are similar in
247
- some way. For example, if you have two controllers which use the same type
248
- of memory (say it\(aqs a \(dqlast N objects seen\(dq memory), you could create a
249
- \fBLastN\fP category, and then define controllers within it, e.g.,
250
- \fBLastN.Ring\fP and \fBLastN.DecayRing\fP for two controllers which have a
251
- ringbuffer of remembered objects and a decaying ringbuffer of remembered
252
- objects (i.e., an object is forgotten after some period of time even if it
253
- is not forced out of the ringbuffer by seeing a new object). See
254
- configuring your project.
255
- .TP
256
- .B Model
257
- A python implementation of a theoretical model of some kind. Can use
258
- empirical data from simulations/real robot experiments, or not, as
259
- needed. Intended to generate predictions of \fIsomething\fP which can then be
260
- plotted against empirical results for comparison.
261
- .TP
262
- .B Plugin
263
- A python package/module living in a directory on
264
- \fI\%SIERRA_PLUGIN_PATH\fP which contains functionality to extend SIERRA
265
- without modifying its core (i.e., customization of different parts of the
266
- pipeline). Plugins come in several flavors, all of which are handled
267
- equivalently by SIERRA:
268
- .INDENT 7.0
269
- .IP \(bu 2
270
- Pipeline plugins \- Plugins which provide different ways of executing
271
- core parts of the SIERRA pipeline (e.g., how to run experiments).
272
- .IP \(bu 2
273
- Platform plugins \- Plugins which correspond to different
274
- \fI\%Platforms\fP\&.
275
- .IP \(bu 2
276
- Project plugins \- Plugins which correspond to different
277
- \fI\%Projects\fP\&.
278
- .UNINDENT
279
- .UNINDENT
280
- .SH AUTHOR
281
- John Harwell
282
- .SH COPYRIGHT
283
- 2022, John Harwell
284
- .\" Generated by docutils manpage writer.
285
- .