sierra-research 1.3.6__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.
- sierra/__init__.py +3 -3
- sierra/core/__init__.py +3 -3
- sierra/core/batchroot.py +223 -0
- sierra/core/cmdline.py +681 -1057
- sierra/core/compare.py +11 -0
- sierra/core/config.py +96 -88
- sierra/core/engine.py +306 -0
- sierra/core/execenv.py +380 -0
- sierra/core/expdef.py +11 -0
- sierra/core/experiment/__init__.py +1 -0
- sierra/core/experiment/bindings.py +150 -101
- sierra/core/experiment/definition.py +414 -245
- sierra/core/experiment/spec.py +83 -85
- sierra/core/exproot.py +44 -0
- sierra/core/generators/__init__.py +10 -0
- sierra/core/generators/experiment.py +528 -0
- sierra/core/generators/generator_factory.py +138 -137
- sierra/core/graphs/__init__.py +23 -0
- sierra/core/graphs/bcbridge.py +94 -0
- sierra/core/graphs/heatmap.py +245 -324
- sierra/core/graphs/pathset.py +27 -0
- sierra/core/graphs/schema.py +77 -0
- sierra/core/graphs/stacked_line.py +341 -0
- sierra/core/graphs/summary_line.py +506 -0
- sierra/core/logging.py +3 -2
- sierra/core/models/__init__.py +3 -1
- sierra/core/models/info.py +19 -0
- sierra/core/models/interface.py +52 -122
- sierra/core/pipeline/__init__.py +2 -5
- sierra/core/pipeline/pipeline.py +228 -126
- sierra/core/pipeline/stage1/__init__.py +10 -0
- sierra/core/pipeline/stage1/pipeline_stage1.py +45 -31
- sierra/core/pipeline/stage2/__init__.py +10 -0
- sierra/core/pipeline/stage2/pipeline_stage2.py +8 -11
- sierra/core/pipeline/stage2/runner.py +401 -0
- sierra/core/pipeline/stage3/__init__.py +12 -0
- sierra/core/pipeline/stage3/gather.py +321 -0
- sierra/core/pipeline/stage3/pipeline_stage3.py +37 -84
- sierra/core/pipeline/stage4/__init__.py +12 -2
- sierra/core/pipeline/stage4/pipeline_stage4.py +36 -354
- sierra/core/pipeline/stage5/__init__.py +12 -0
- sierra/core/pipeline/stage5/pipeline_stage5.py +33 -208
- sierra/core/pipeline/yaml.py +48 -0
- sierra/core/plugin.py +529 -62
- sierra/core/proc.py +11 -0
- sierra/core/prod.py +11 -0
- sierra/core/ros1/__init__.py +5 -1
- sierra/core/ros1/callbacks.py +22 -21
- sierra/core/ros1/cmdline.py +59 -88
- sierra/core/ros1/generators.py +159 -175
- sierra/core/ros1/variables/__init__.py +3 -0
- sierra/core/ros1/variables/exp_setup.py +122 -116
- sierra/core/startup.py +106 -76
- sierra/core/stat_kernels.py +4 -5
- sierra/core/storage.py +13 -32
- sierra/core/trampoline.py +30 -0
- sierra/core/types.py +116 -71
- sierra/core/utils.py +103 -106
- sierra/core/variables/__init__.py +1 -1
- sierra/core/variables/base_variable.py +12 -17
- sierra/core/variables/batch_criteria.py +387 -481
- sierra/core/variables/builtin.py +135 -0
- sierra/core/variables/exp_setup.py +19 -39
- sierra/core/variables/population_size.py +72 -76
- sierra/core/variables/variable_density.py +44 -68
- sierra/core/vector.py +1 -1
- sierra/main.py +256 -88
- sierra/plugins/__init__.py +119 -0
- sierra/plugins/compare/__init__.py +14 -0
- sierra/plugins/compare/graphs/__init__.py +19 -0
- sierra/plugins/compare/graphs/cmdline.py +120 -0
- sierra/plugins/compare/graphs/comparator.py +291 -0
- sierra/plugins/compare/graphs/inter_controller.py +531 -0
- sierra/plugins/compare/graphs/inter_scenario.py +297 -0
- sierra/plugins/compare/graphs/namecalc.py +53 -0
- sierra/plugins/compare/graphs/outputroot.py +73 -0
- sierra/plugins/compare/graphs/plugin.py +147 -0
- sierra/plugins/compare/graphs/preprocess.py +172 -0
- sierra/plugins/compare/graphs/schema.py +37 -0
- sierra/plugins/engine/__init__.py +14 -0
- sierra/plugins/engine/argos/__init__.py +18 -0
- sierra/plugins/{platform → engine}/argos/cmdline.py +144 -151
- sierra/plugins/{platform/argos/variables → engine/argos/generators}/__init__.py +5 -0
- sierra/plugins/engine/argos/generators/engine.py +394 -0
- sierra/plugins/engine/argos/plugin.py +393 -0
- sierra/plugins/{platform/argos/generators → engine/argos/variables}/__init__.py +5 -0
- sierra/plugins/engine/argos/variables/arena_shape.py +183 -0
- sierra/plugins/engine/argos/variables/cameras.py +240 -0
- sierra/plugins/engine/argos/variables/constant_density.py +112 -0
- sierra/plugins/engine/argos/variables/exp_setup.py +82 -0
- sierra/plugins/{platform → engine}/argos/variables/physics_engines.py +83 -87
- sierra/plugins/engine/argos/variables/population_constant_density.py +178 -0
- sierra/plugins/engine/argos/variables/population_size.py +115 -0
- sierra/plugins/engine/argos/variables/population_variable_density.py +123 -0
- sierra/plugins/engine/argos/variables/rendering.py +108 -0
- sierra/plugins/engine/ros1gazebo/__init__.py +18 -0
- sierra/plugins/engine/ros1gazebo/cmdline.py +175 -0
- sierra/plugins/{platform/ros1robot → engine/ros1gazebo}/generators/__init__.py +5 -0
- sierra/plugins/engine/ros1gazebo/generators/engine.py +125 -0
- sierra/plugins/engine/ros1gazebo/plugin.py +404 -0
- sierra/plugins/engine/ros1gazebo/variables/__init__.py +15 -0
- sierra/plugins/engine/ros1gazebo/variables/population_size.py +214 -0
- sierra/plugins/engine/ros1robot/__init__.py +18 -0
- sierra/plugins/engine/ros1robot/cmdline.py +159 -0
- sierra/plugins/{platform/ros1gazebo → engine/ros1robot}/generators/__init__.py +4 -0
- sierra/plugins/engine/ros1robot/generators/engine.py +95 -0
- sierra/plugins/engine/ros1robot/plugin.py +410 -0
- sierra/plugins/{hpc/local → engine/ros1robot/variables}/__init__.py +5 -0
- sierra/plugins/engine/ros1robot/variables/population_size.py +146 -0
- sierra/plugins/execenv/__init__.py +11 -0
- sierra/plugins/execenv/hpc/__init__.py +18 -0
- sierra/plugins/execenv/hpc/adhoc/__init__.py +18 -0
- sierra/plugins/execenv/hpc/adhoc/cmdline.py +30 -0
- sierra/plugins/execenv/hpc/adhoc/plugin.py +131 -0
- sierra/plugins/execenv/hpc/cmdline.py +137 -0
- sierra/plugins/execenv/hpc/local/__init__.py +18 -0
- sierra/plugins/execenv/hpc/local/cmdline.py +31 -0
- sierra/plugins/execenv/hpc/local/plugin.py +145 -0
- sierra/plugins/execenv/hpc/pbs/__init__.py +18 -0
- sierra/plugins/execenv/hpc/pbs/cmdline.py +30 -0
- sierra/plugins/execenv/hpc/pbs/plugin.py +121 -0
- sierra/plugins/execenv/hpc/slurm/__init__.py +18 -0
- sierra/plugins/execenv/hpc/slurm/cmdline.py +30 -0
- sierra/plugins/execenv/hpc/slurm/plugin.py +133 -0
- sierra/plugins/execenv/prefectserver/__init__.py +18 -0
- sierra/plugins/execenv/prefectserver/cmdline.py +66 -0
- sierra/plugins/execenv/prefectserver/dockerremote/__init__.py +18 -0
- sierra/plugins/execenv/prefectserver/dockerremote/cmdline.py +66 -0
- sierra/plugins/execenv/prefectserver/dockerremote/plugin.py +132 -0
- sierra/plugins/execenv/prefectserver/flow.py +66 -0
- sierra/plugins/execenv/prefectserver/local/__init__.py +18 -0
- sierra/plugins/execenv/prefectserver/local/cmdline.py +29 -0
- sierra/plugins/execenv/prefectserver/local/plugin.py +133 -0
- sierra/plugins/{hpc/adhoc → execenv/robot}/__init__.py +1 -0
- sierra/plugins/execenv/robot/turtlebot3/__init__.py +18 -0
- sierra/plugins/execenv/robot/turtlebot3/plugin.py +204 -0
- sierra/plugins/expdef/__init__.py +14 -0
- sierra/plugins/expdef/json/__init__.py +14 -0
- sierra/plugins/expdef/json/plugin.py +504 -0
- sierra/plugins/expdef/xml/__init__.py +14 -0
- sierra/plugins/expdef/xml/plugin.py +386 -0
- sierra/{core/hpc → plugins/proc}/__init__.py +1 -1
- sierra/plugins/proc/collate/__init__.py +15 -0
- sierra/plugins/proc/collate/cmdline.py +47 -0
- sierra/plugins/proc/collate/plugin.py +271 -0
- sierra/plugins/proc/compress/__init__.py +18 -0
- sierra/plugins/proc/compress/cmdline.py +47 -0
- sierra/plugins/proc/compress/plugin.py +123 -0
- sierra/plugins/proc/decompress/__init__.py +18 -0
- sierra/plugins/proc/decompress/plugin.py +96 -0
- sierra/plugins/proc/imagize/__init__.py +15 -0
- sierra/plugins/proc/imagize/cmdline.py +49 -0
- sierra/plugins/proc/imagize/plugin.py +270 -0
- sierra/plugins/proc/modelrunner/__init__.py +16 -0
- sierra/plugins/proc/modelrunner/plugin.py +250 -0
- sierra/plugins/proc/statistics/__init__.py +15 -0
- sierra/plugins/proc/statistics/cmdline.py +64 -0
- sierra/plugins/proc/statistics/plugin.py +390 -0
- sierra/plugins/{hpc → prod}/__init__.py +1 -0
- sierra/plugins/prod/graphs/__init__.py +18 -0
- sierra/plugins/prod/graphs/cmdline.py +269 -0
- sierra/plugins/prod/graphs/collate.py +279 -0
- sierra/plugins/prod/graphs/inter/__init__.py +13 -0
- sierra/plugins/prod/graphs/inter/generate.py +83 -0
- sierra/plugins/prod/graphs/inter/heatmap.py +86 -0
- sierra/plugins/prod/graphs/inter/line.py +134 -0
- sierra/plugins/prod/graphs/intra/__init__.py +15 -0
- sierra/plugins/prod/graphs/intra/generate.py +202 -0
- sierra/plugins/prod/graphs/intra/heatmap.py +74 -0
- sierra/plugins/prod/graphs/intra/line.py +114 -0
- sierra/plugins/prod/graphs/plugin.py +103 -0
- sierra/plugins/prod/graphs/targets.py +63 -0
- sierra/plugins/prod/render/__init__.py +18 -0
- sierra/plugins/prod/render/cmdline.py +72 -0
- sierra/plugins/prod/render/plugin.py +282 -0
- sierra/plugins/storage/__init__.py +5 -0
- sierra/plugins/storage/arrow/__init__.py +18 -0
- sierra/plugins/storage/arrow/plugin.py +38 -0
- sierra/plugins/storage/csv/__init__.py +9 -0
- sierra/plugins/storage/csv/plugin.py +12 -5
- sierra/version.py +3 -2
- sierra_research-1.5.0.dist-info/METADATA +238 -0
- sierra_research-1.5.0.dist-info/RECORD +186 -0
- {sierra_research-1.3.6.dist-info → sierra_research-1.5.0.dist-info}/WHEEL +1 -2
- sierra/core/experiment/xml.py +0 -454
- sierra/core/generators/controller_generator_parser.py +0 -34
- sierra/core/generators/exp_creator.py +0 -351
- sierra/core/generators/exp_generators.py +0 -142
- sierra/core/graphs/scatterplot2D.py +0 -109
- sierra/core/graphs/stacked_line_graph.py +0 -249
- sierra/core/graphs/stacked_surface_graph.py +0 -220
- sierra/core/graphs/summary_line_graph.py +0 -369
- sierra/core/hpc/cmdline.py +0 -142
- sierra/core/models/graphs.py +0 -87
- sierra/core/pipeline/stage2/exp_runner.py +0 -286
- sierra/core/pipeline/stage3/imagizer.py +0 -149
- sierra/core/pipeline/stage3/run_collator.py +0 -317
- sierra/core/pipeline/stage3/statistics_calculator.py +0 -478
- sierra/core/pipeline/stage4/graph_collator.py +0 -319
- sierra/core/pipeline/stage4/inter_exp_graph_generator.py +0 -240
- sierra/core/pipeline/stage4/intra_exp_graph_generator.py +0 -317
- sierra/core/pipeline/stage4/model_runner.py +0 -168
- sierra/core/pipeline/stage4/rendering.py +0 -283
- sierra/core/pipeline/stage4/yaml_config_loader.py +0 -103
- sierra/core/pipeline/stage5/inter_scenario_comparator.py +0 -328
- sierra/core/pipeline/stage5/intra_scenario_comparator.py +0 -989
- sierra/core/platform.py +0 -493
- sierra/core/plugin_manager.py +0 -369
- sierra/core/root_dirpath_generator.py +0 -241
- sierra/plugins/hpc/adhoc/plugin.py +0 -125
- sierra/plugins/hpc/local/plugin.py +0 -81
- sierra/plugins/hpc/pbs/__init__.py +0 -9
- sierra/plugins/hpc/pbs/plugin.py +0 -126
- sierra/plugins/hpc/slurm/__init__.py +0 -9
- sierra/plugins/hpc/slurm/plugin.py +0 -130
- sierra/plugins/platform/__init__.py +0 -9
- sierra/plugins/platform/argos/__init__.py +0 -9
- sierra/plugins/platform/argos/generators/platform_generators.py +0 -383
- sierra/plugins/platform/argos/plugin.py +0 -337
- sierra/plugins/platform/argos/variables/arena_shape.py +0 -145
- sierra/plugins/platform/argos/variables/cameras.py +0 -243
- sierra/plugins/platform/argos/variables/constant_density.py +0 -136
- sierra/plugins/platform/argos/variables/exp_setup.py +0 -113
- sierra/plugins/platform/argos/variables/population_constant_density.py +0 -175
- sierra/plugins/platform/argos/variables/population_size.py +0 -102
- sierra/plugins/platform/argos/variables/population_variable_density.py +0 -132
- sierra/plugins/platform/argos/variables/rendering.py +0 -104
- sierra/plugins/platform/ros1gazebo/__init__.py +0 -9
- sierra/plugins/platform/ros1gazebo/cmdline.py +0 -213
- sierra/plugins/platform/ros1gazebo/generators/platform_generators.py +0 -137
- sierra/plugins/platform/ros1gazebo/plugin.py +0 -335
- sierra/plugins/platform/ros1gazebo/variables/__init__.py +0 -10
- sierra/plugins/platform/ros1gazebo/variables/population_size.py +0 -204
- sierra/plugins/platform/ros1robot/__init__.py +0 -9
- sierra/plugins/platform/ros1robot/cmdline.py +0 -175
- sierra/plugins/platform/ros1robot/generators/platform_generators.py +0 -112
- sierra/plugins/platform/ros1robot/plugin.py +0 -373
- sierra/plugins/platform/ros1robot/variables/__init__.py +0 -10
- sierra/plugins/platform/ros1robot/variables/population_size.py +0 -146
- sierra/plugins/robot/__init__.py +0 -9
- sierra/plugins/robot/turtlebot3/__init__.py +0 -9
- sierra/plugins/robot/turtlebot3/plugin.py +0 -194
- sierra_research-1.3.6.data/data/share/man/man1/sierra-cli.1 +0 -2349
- sierra_research-1.3.6.data/data/share/man/man7/sierra-examples.7 +0 -488
- sierra_research-1.3.6.data/data/share/man/man7/sierra-exec-envs.7 +0 -331
- sierra_research-1.3.6.data/data/share/man/man7/sierra-glossary.7 +0 -285
- sierra_research-1.3.6.data/data/share/man/man7/sierra-platforms.7 +0 -358
- sierra_research-1.3.6.data/data/share/man/man7/sierra-usage.7 +0 -725
- sierra_research-1.3.6.data/data/share/man/man7/sierra.7 +0 -78
- sierra_research-1.3.6.dist-info/METADATA +0 -500
- sierra_research-1.3.6.dist-info/RECORD +0 -133
- sierra_research-1.3.6.dist-info/top_level.txt +0 -1
- {sierra_research-1.3.6.dist-info → sierra_research-1.5.0.dist-info}/entry_points.txt +0 -0
- {sierra_research-1.3.6.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" "Apr 01, 2024" "1.3.6" "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" "Apr 01, 2024" "1.3.6" "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
|
-
.
|