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,725 +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-USAGE" "7" "Apr 01, 2024" "1.3.6" "SIERRA"
|
31
|
-
.SH NAME
|
32
|
-
sierra-usage \- How to use SIERRA. This covers all non-command line interface aspects.
|
33
|
-
.sp
|
34
|
-
This covers everything which is (mostly) \fI\%Platform\fP independent and is not
|
35
|
-
the command line interface.
|
36
|
-
.SH SIERRA PIPELINE
|
37
|
-
.sp
|
38
|
-
When invoked SIERRA will run one or more stages of its execution path, as
|
39
|
-
specified via \fB\-\-pipeline\fP on the cmdline. Only the first 4 pipeline stages
|
40
|
-
will run by default. The pipeline stages are:
|
41
|
-
.SS Stage 1: Experiment Generation
|
42
|
-
.sp
|
43
|
-
Experiments using the scientific method have an independent variable whose
|
44
|
-
impact on results are measured through a series of trials. SIERRA allows you to
|
45
|
-
express this as a research query on the command line, and then parses your query
|
46
|
-
to make changes to a template input file to generate launch commands and
|
47
|
-
experimental inputs to operationalize it. Switching from targeting platform A
|
48
|
-
(e.g., ARGoS) to platform B (e.g., ROS1+Gazebo) is as easy as changing a single
|
49
|
-
command line argument. SIERRA handles the \(dqbackend\(dq aspects of defining
|
50
|
-
experimental inputs allowing you to focus on their \fIcontent\fP, rather than the
|
51
|
-
mechanics of how to turn the content into something that can be executed. See
|
52
|
-
also:
|
53
|
-
.INDENT 0.0
|
54
|
-
.IP \(bu 2
|
55
|
-
\fI\%SIERRA Support Matrix\fP
|
56
|
-
.IP \(bu 2
|
57
|
-
\fI\%Command Line Interface\fP
|
58
|
-
.UNINDENT
|
59
|
-
.sp
|
60
|
-
Part of default pipeline.
|
61
|
-
.SS Stage 2: Experiment Execution
|
62
|
-
.sp
|
63
|
-
SIERRA runs a previously generated \fI\%Batch Experiment\fP\&. Exactly which batch
|
64
|
-
experiment SIERRA runs is determined by:
|
65
|
-
.INDENT 0.0
|
66
|
-
.IP \(bu 2
|
67
|
-
\fB\-\-controller\fP
|
68
|
-
.IP \(bu 2
|
69
|
-
\fB\-\-scenario\fP
|
70
|
-
.IP \(bu 2
|
71
|
-
\fB\-\-sierra\-root\fP
|
72
|
-
.IP \(bu 2
|
73
|
-
\fB\-\-template\-input\-file\fP
|
74
|
-
.IP \(bu 2
|
75
|
-
\fB\-\-batch\-criteria\fP
|
76
|
-
.UNINDENT
|
77
|
-
.sp
|
78
|
-
SIERRA currently supports two types of execution environments: simulators and
|
79
|
-
real robots, which are handled seamlessly. For simulators, SIERRA will run
|
80
|
-
multiple experimental runs from each experiment in parallel if possible. Similar
|
81
|
-
to stage 1, switching between execution environments is as easy as changing a
|
82
|
-
single command line argument. See also:
|
83
|
-
.INDENT 0.0
|
84
|
-
.IP \(bu 2
|
85
|
-
\fI\%Execution Environment Plugins\fP
|
86
|
-
.IP \(bu 2
|
87
|
-
\fI\%Platform Plugins\fP
|
88
|
-
.IP \(bu 2
|
89
|
-
\fI\%SIERRA Support Matrix\fP
|
90
|
-
.UNINDENT
|
91
|
-
.sp
|
92
|
-
Part of default pipeline.
|
93
|
-
.SS Stage 3: Experiment Post\-Processing
|
94
|
-
.sp
|
95
|
-
SIERRA supports a number of data formats which simulations/real robot
|
96
|
-
experiments can output their data, e.g., the number of robots engaged in a given
|
97
|
-
task over time for processing. SIERRA post\-processes experimental results after
|
98
|
-
running the batch experiment; some parts of this can be done in parallel. This
|
99
|
-
includes one or more of:
|
100
|
-
.INDENT 0.0
|
101
|
-
.IP \(bu 2
|
102
|
-
Computing statistics over/about experimental data for stage 4 for use in graph
|
103
|
-
generation in stage 4. See \fI\%Command Line Interface\fP documentation for
|
104
|
-
\fB\-\-dist\-stats\fP for details.
|
105
|
-
.IP \(bu 2
|
106
|
-
Creating images from project CSV files for rendering in stage 4. See
|
107
|
-
\fI\%Project Rendering\fP for details.
|
108
|
-
.UNINDENT
|
109
|
-
.sp
|
110
|
-
Part of default pipeline.
|
111
|
-
.SS Stage 4: Deliverable Generation
|
112
|
-
.sp
|
113
|
-
SIERRA can generate many deliverables from the processed experimental results
|
114
|
-
automatically (independent of the platform/execution environment!), thus greatly
|
115
|
-
simplifying reproduction of previous results if you need to tweak a given graph
|
116
|
-
(for example). SIERRA currently supports generating the following deliverables:
|
117
|
-
.INDENT 0.0
|
118
|
-
.IP \(bu 2
|
119
|
-
Camera\-ready linegraphs, heatmaps, 3D surfaces, and scatterplots directly from
|
120
|
-
averaged/statistically processed experimental data using matplotlib.
|
121
|
-
.IP \(bu 2
|
122
|
-
Videos built from frames captured during simulation or real robot operation.
|
123
|
-
.IP \(bu 2
|
124
|
-
Videos built from captured experimental output .csv files.
|
125
|
-
.UNINDENT
|
126
|
-
.sp
|
127
|
-
SIERRA also has a rich model framework allowing you to run arbitrary models,
|
128
|
-
generate data, and plot it on the same figure as empirical results,
|
129
|
-
automatically. See ln\-sierra\-tutorials\-project\-models for details.
|
130
|
-
.sp
|
131
|
-
For some examples, see the \(dqGenerating Deliverables\(dq section of
|
132
|
-
\fI\%2022 AAMAS Demo\fP <\fBhttps://www-users.cse.umn.edu/~harwe006/showcase/aamas-2022-demo\fP>\&. See \fI\%Rendering\fP for details about
|
133
|
-
rendering capabilities.
|
134
|
-
.sp
|
135
|
-
Part of default pipeline.
|
136
|
-
.SS Stage 5: Graph Generation for Controller/Scenario Comparison
|
137
|
-
.sp
|
138
|
-
SIERRA can perform additional graph generation \fIAFTER\fP graph generation for
|
139
|
-
batch experiments has been run. This is extremely useful for generating graphs
|
140
|
-
which can be dropped immediately into academic papers without modification. This
|
141
|
-
can be used to compare:
|
142
|
-
.INDENT 0.0
|
143
|
-
.IP \(bu 2
|
144
|
-
Different agent control algorithms which have all been run in the same
|
145
|
-
\fB\-\-scenario\fP\&. See \fI\%Intra\-Scenario Comparison\fP for details.
|
146
|
-
.IP \(bu 2
|
147
|
-
A single \fB\-\-controller\fP across multiple scenarios. See
|
148
|
-
\fI\%Inter\-Scenario Comparison\fP for details.
|
149
|
-
.UNINDENT
|
150
|
-
.sp
|
151
|
-
Not part of default pipeline.
|
152
|
-
.SH PIPELINE STAGE 5
|
153
|
-
.sp
|
154
|
-
The main idea of this pipeline stage is to \(dqcollate\(dq the results of one or more
|
155
|
-
\fI\%Summary .csv\fP files present in different \fI\%Batch Experiments\fP into a \fI\%Inter\-Batch .csv\fP file, and then use that file to
|
156
|
-
generate graphs. Any \fI\%Summary .csv\fP that is present in multiple
|
157
|
-
\fI\%Batch Experiments\fP can be used during stage 5! This
|
158
|
-
gives this pipeline stage tremendous flexibility as a camera\-ready graph
|
159
|
-
generation tool.
|
160
|
-
.sp
|
161
|
-
In general, stage 5 is always run separate from stages 1\-4 (i.e., a separate
|
162
|
-
SIERRA invocation), because the options are quite different, but you don\(aqt
|
163
|
-
\fIhave\fP to do this.
|
164
|
-
.sp
|
165
|
-
\fBIMPORTANT:\fP
|
166
|
-
.INDENT 0.0
|
167
|
-
.INDENT 3.5
|
168
|
-
You \fIcannot\fP use this stage before successfully running stage 4
|
169
|
-
for each of the \fI\%Batch Experiments\fP you
|
170
|
-
want to include on the final graph.
|
171
|
-
.UNINDENT
|
172
|
-
.UNINDENT
|
173
|
-
.sp
|
174
|
-
\fBWARNING:\fP
|
175
|
-
.INDENT 0.0
|
176
|
-
.INDENT 3.5
|
177
|
-
Because SIERRA never deletes stuff for you, running stage 5 is
|
178
|
-
\fINOT\fP idempotent. Running the same stage 5 invocation comparing 3
|
179
|
-
controllers in a single scenario (for example) could result in
|
180
|
-
linegraphs containing 3,6,9,..., lines with duplicated data. In
|
181
|
-
general, you want to delete the directories generated by stage 5
|
182
|
-
between successive runs. See
|
183
|
-
\fI\%SIERRA Runtime Directory Tree\fP for details on what
|
184
|
-
directories are generated.
|
185
|
-
.UNINDENT
|
186
|
-
.UNINDENT
|
187
|
-
.SS Intra\-Scenario Comparison
|
188
|
-
.sp
|
189
|
-
Intra\-scenario comparison compares the of experiments using one or more
|
190
|
-
controllers on the same \fB\-\-scenario\fP\&. To use it, you need to pass the
|
191
|
-
following options to SIERRA (see \fI\%Command Line Interface\fP for documentation):
|
192
|
-
.INDENT 0.0
|
193
|
-
.IP \(bu 2
|
194
|
-
\fB\-\-scenario\-comparison\fP
|
195
|
-
.IP \(bu 2
|
196
|
-
\fB\-\-bc\-univar\fP or \fB\-\-bc\-bivar\fP
|
197
|
-
.IP \(bu 2
|
198
|
-
\fB\-\-dist\-stats\fP (to get statistics generated during stage 3 to show up on the
|
199
|
-
final graph).
|
200
|
-
.UNINDENT
|
201
|
-
.sp
|
202
|
-
Other \fB\-\-plot\-*\fP options providing for fine\-grained control of the generated
|
203
|
-
graphs may also be of interest.
|
204
|
-
.sp
|
205
|
-
For YAML configuration, see
|
206
|
-
ln\-sierra\-tutorials\-project\-stage5\-config\-intra\&.
|
207
|
-
.SS Inter\-Scenario Comparison
|
208
|
-
.sp
|
209
|
-
Inter\-scenario comparison compares the same \fB\-\-controller\fP across multiple
|
210
|
-
\fB\-\-scenarios\fP\&. To use it, you need to pass the following options to SIERRA
|
211
|
-
when running stage 5 (see \fI\%Command Line Interface\fP for documentation):
|
212
|
-
.INDENT 0.0
|
213
|
-
.IP \(bu 2
|
214
|
-
\fB\-\-controller\-comparison\fP
|
215
|
-
.IP \(bu 2
|
216
|
-
\fB\-\-bc\-univar\fP or \fB\-\-bc\-bivar\fP
|
217
|
-
.IP \(bu 2
|
218
|
-
\fB\-\-dist\-stats\fP (to get statistics generated during stage 3 to show up on the
|
219
|
-
final graph).
|
220
|
-
.UNINDENT
|
221
|
-
.sp
|
222
|
-
Other \fB\-\-plot\-*\fP options providing for fine\-grained control of the generated
|
223
|
-
graphs may also be of interest.
|
224
|
-
.sp
|
225
|
-
For YAML configuration, see
|
226
|
-
ln\-sierra\-tutorials\-project\-stage5\-config\-inter\&.
|
227
|
-
.SH SIERRA RUNTIME DIRECTORY TREE
|
228
|
-
.sp
|
229
|
-
\fBIMPORTANT:\fP
|
230
|
-
.INDENT 0.0
|
231
|
-
.INDENT 3.5
|
232
|
-
SIERRA \fBNEVER\fP deletes directories for you.
|
233
|
-
.sp
|
234
|
-
Subsequent experiments using the same values for the following cmdline
|
235
|
-
arguments \fBWILL\fP result in the same calculated root directory for
|
236
|
-
experimental inputs and outputs, even if other parameters change (or if you
|
237
|
-
change the contents of the template input file):
|
238
|
-
.INDENT 0.0
|
239
|
-
.IP \(bu 2
|
240
|
-
\fB\-\-controller\fP
|
241
|
-
.IP \(bu 2
|
242
|
-
\fB\-\-scenario\fP
|
243
|
-
.IP \(bu 2
|
244
|
-
\fB\-\-sierra\-root\fP
|
245
|
-
.IP \(bu 2
|
246
|
-
\fB\-\-template\-input\-file\fP
|
247
|
-
.IP \(bu 2
|
248
|
-
\fB\-\-batch\-criteria\fP
|
249
|
-
.UNINDENT
|
250
|
-
.sp
|
251
|
-
SIERRA will abort stage {1,2} processing when this occurs in order to
|
252
|
-
preserve data integrity; this behavior can be overwridden with
|
253
|
-
\fB\-\-exp\-overwrite\fP, in which case the use assumes full responsibility for
|
254
|
-
ensuring the integrity of the experiment.
|
255
|
-
.sp
|
256
|
-
Always better to check the arguments before hitting ENTER. Measure twice, cut
|
257
|
-
once, as the saying goes.
|
258
|
-
.UNINDENT
|
259
|
-
.UNINDENT
|
260
|
-
.SS Default Pipeline Directory Tree (Stages 1\-4)
|
261
|
-
.sp
|
262
|
-
When SIERRA runs stages 1\-4, it creates a directory structure under whatever was
|
263
|
-
passed as \fB\-\-sierra\-root\fP\&. For the purposes of explanation, I will use the
|
264
|
-
following partial SIERRA option set to explain the experiment tree:
|
265
|
-
.INDENT 0.0
|
266
|
-
.INDENT 3.5
|
267
|
-
.sp
|
268
|
-
.nf
|
269
|
-
.ft C
|
270
|
-
\-\-sierra\-root=$HOME/exp\e
|
271
|
-
\-\-controller=CATEGORY.my_controller\e
|
272
|
-
\-\-scenario=SS.12x6\e
|
273
|
-
\-\-platform=platform.argos\e
|
274
|
-
\-\-batch\-criteria=population_size.Log8\e
|
275
|
-
\-\-n\-runs=4\e
|
276
|
-
\-\-template\-input\-file=~/my\-template.argos\e
|
277
|
-
\-\-project=fordyca
|
278
|
-
.ft P
|
279
|
-
.fi
|
280
|
-
.UNINDENT
|
281
|
-
.UNINDENT
|
282
|
-
.sp
|
283
|
-
This invocation will cause SIERRA to create the following directory structure as
|
284
|
-
it runs:
|
285
|
-
.INDENT 0.0
|
286
|
-
.IP \(bu 2
|
287
|
-
\fB$HOME/exp\fP \- This is the root of the directory structure (\fB\-\-sierra\-root\fP),
|
288
|
-
and is \fBNOT\fP deleted on subsequent runs.
|
289
|
-
.INDENT 2.0
|
290
|
-
.IP \(bu 2
|
291
|
-
\fBfordyca\fP \- Each project gets their own directory, so you can disambiguate
|
292
|
-
otherwise identical SIERRA invocations and don\(aqt overwrite the directories
|
293
|
-
for a previously used project on subsequent runs.
|
294
|
-
.INDENT 2.0
|
295
|
-
.IP \(bu 2
|
296
|
-
\fBCATEGORY.my_controller\fP \- Each controller gets their own directory in the
|
297
|
-
project root, which is \fBNOT\fP deleted on subsequent runs.
|
298
|
-
.INDENT 2.0
|
299
|
-
.IP \(bu 2
|
300
|
-
\fBmytemplate\-SS.12x6\fP \- The directory for the \fI\%Batch Experiment\fP
|
301
|
-
is named from a combination of the template input file used
|
302
|
-
(\fB\-\-template\-input\-file\fP) and the scenario (\fB\-\-scenario\fP).
|
303
|
-
.INDENT 2.0
|
304
|
-
.IP \(bu 2
|
305
|
-
\fBexp\-inputs\fP \- Root directory for \fI\%Experimental\fP
|
306
|
-
inputs; each experiment in the batch gets their own directory in here.
|
307
|
-
.INDENT 2.0
|
308
|
-
.IP \(bu 2
|
309
|
-
\fBexp0\fP \- Within the input directory for each experiment in the
|
310
|
-
batch (there are 4 such directories in this example), there will be
|
311
|
-
an input file for each \fI\%Experimental Run\fP in the experiment,
|
312
|
-
as well as a \fBcommands.txt\fP used by GNU parallel to run them all
|
313
|
-
in parallel. The leaf of the \fB\-\-template\-input\-file\fP, sans
|
314
|
-
extension, has the experimental run # appended to it
|
315
|
-
(e.g. \fBmy\-template_0.argos\fP is the input file for simulation 0).
|
316
|
-
.INDENT 2.0
|
317
|
-
.INDENT 3.5
|
318
|
-
.INDENT 0.0
|
319
|
-
.IP \(bu 2
|
320
|
-
\fBcommands.txt\fP
|
321
|
-
.IP \(bu 2
|
322
|
-
\fBmy\-template_0.argos\fP
|
323
|
-
.IP \(bu 2
|
324
|
-
\fBmy\-template_1.argos\fP
|
325
|
-
.IP \(bu 2
|
326
|
-
\fBmy\-template_2.argos\fP
|
327
|
-
.IP \(bu 2
|
328
|
-
\fBmy\-template_3.argos\fP
|
329
|
-
.UNINDENT
|
330
|
-
.UNINDENT
|
331
|
-
.UNINDENT
|
332
|
-
.IP \(bu 2
|
333
|
-
\fBexp1\fP
|
334
|
-
.INDENT 2.0
|
335
|
-
.IP \(bu 2
|
336
|
-
\fBmy\-template_0.argos\fP
|
337
|
-
.IP \(bu 2
|
338
|
-
\fBmy\-template_1.argos\fP
|
339
|
-
.IP \(bu 2
|
340
|
-
\fBmy\-template_2.argos\fP
|
341
|
-
.IP \(bu 2
|
342
|
-
\fBmy\-template_3.argos\fP
|
343
|
-
.UNINDENT
|
344
|
-
.IP \(bu 2
|
345
|
-
\fBexp2\fP
|
346
|
-
.INDENT 2.0
|
347
|
-
.IP \(bu 2
|
348
|
-
\fB\&...\fP
|
349
|
-
.UNINDENT
|
350
|
-
.UNINDENT
|
351
|
-
.IP \(bu 2
|
352
|
-
\fBexp\-outputs\fP \- Root directory for experimental outputs; each
|
353
|
-
experiment gets their own directory in here (just like for experiment
|
354
|
-
inputs). Directory name is controlled by the main YAML configuration.
|
355
|
-
.INDENT 2.0
|
356
|
-
.IP \(bu 2
|
357
|
-
\fBexp0\fP \- Within the output directory for each experiment in the
|
358
|
-
batch (there are 3 such directories in this example), there will be
|
359
|
-
a \fIdirectory\fP (rather than a file, as was the case for inputs) for
|
360
|
-
each experimental run\(aqs output, including metrics, grabbed frames,
|
361
|
-
etc., as configured in the XML input file.
|
362
|
-
.INDENT 2.0
|
363
|
-
.IP \(bu 2
|
364
|
-
\fBmy\-template_0_output\fP
|
365
|
-
.IP \(bu 2
|
366
|
-
\fBmy\-template_1_output\fP
|
367
|
-
.IP \(bu 2
|
368
|
-
\fBmy\-template_2_output\fP
|
369
|
-
.IP \(bu 2
|
370
|
-
\fBmy\-template_3_output\fP
|
371
|
-
.UNINDENT
|
372
|
-
.IP \(bu 2
|
373
|
-
\fBexp1\fP
|
374
|
-
.INDENT 2.0
|
375
|
-
.IP \(bu 2
|
376
|
-
\fBmy\-template_0_output\fP
|
377
|
-
.IP \(bu 2
|
378
|
-
\fBmy\-template_1_output\fP
|
379
|
-
.IP \(bu 2
|
380
|
-
\fBmy\-template_2_output\fP
|
381
|
-
.IP \(bu 2
|
382
|
-
\fBmy\-template_3_output\fP
|
383
|
-
.UNINDENT
|
384
|
-
.IP \(bu 2
|
385
|
-
\fBexp2\fP
|
386
|
-
.INDENT 2.0
|
387
|
-
.IP \(bu 2
|
388
|
-
\fB\&...\fP
|
389
|
-
.UNINDENT
|
390
|
-
.IP \(bu 2
|
391
|
-
\fBstatistics\fP \- Root directory for holding statistics calculated
|
392
|
-
during stage3 for use during stage4.
|
393
|
-
.INDENT 2.0
|
394
|
-
.IP \(bu 2
|
395
|
-
\fBexp0\fP \- Contains the results of statistics generation for exp0
|
396
|
-
(mean, stddev, etc., as configured).
|
397
|
-
.IP \(bu 2
|
398
|
-
\fBexp1\fP
|
399
|
-
.IP \(bu 2
|
400
|
-
\fBexp2\fP
|
401
|
-
.IP \(bu 2
|
402
|
-
\fB\&...\fP
|
403
|
-
.IP \(bu 2
|
404
|
-
\fBcollated\fP \- Contains \fI\%Collated .csv\fP files. During
|
405
|
-
stage4, SIERRA will draw specific columns from .csv files under
|
406
|
-
\fBstatistics\fP according to configuration, and collate them under
|
407
|
-
here for graph generation of \fIinter\fP\-experiment graphs.
|
408
|
-
.IP \(bu 2
|
409
|
-
\fBexec\fP \- Statistics about SIERRA runtime. Useful for capturing
|
410
|
-
runtime of specific experiments to better plan/schedule time on
|
411
|
-
HPC clusters.
|
412
|
-
.UNINDENT
|
413
|
-
.UNINDENT
|
414
|
-
.IP \(bu 2
|
415
|
-
\fBimagize\fP \- Root directory for holding imagized files (averaged run
|
416
|
-
outputs which have been converted to graphs) which can be patched
|
417
|
-
together in stage 4 to generated videos. Each experiment will get its
|
418
|
-
own directory under here, with unique sub\-directories for each
|
419
|
-
different type of \fI\%Experimental Run\fP data captured for
|
420
|
-
imagizing. See \fI\%Project Rendering\fP for more details.
|
421
|
-
.IP \(bu 2
|
422
|
-
\fBvideos\fP \- Root directory for holding rendered videos generated
|
423
|
-
during stage 4 from either captured simulator frames for imagized
|
424
|
-
project files. Each experiment will get its own directory under here,
|
425
|
-
with See \fI\%Rendering\fP for more details.
|
426
|
-
.IP \(bu 2
|
427
|
-
\fBmodels\fP \- During stage4, the dataframes generated by all executed
|
428
|
-
models are stored under this directory. Each experiment in the batch
|
429
|
-
gets their own directory for \fIintra\fP\-experiment models.
|
430
|
-
.IP \(bu 2
|
431
|
-
\fBgraphs\fP \- During stage4, all generated graphs are output under this
|
432
|
-
directory. Each experiment in the batch gets their own directory for
|
433
|
-
\fIintra\fP\-experiment graphs.
|
434
|
-
.INDENT 2.0
|
435
|
-
.IP \(bu 2
|
436
|
-
\fBexp0\fP
|
437
|
-
.IP \(bu 2
|
438
|
-
\fBexp1\fP
|
439
|
-
.IP \(bu 2
|
440
|
-
\fBexp2\fP
|
441
|
-
.IP \(bu 2
|
442
|
-
\fBexp3\fP
|
443
|
-
.IP \(bu 2
|
444
|
-
\fBcollated\fP \- Graphs which are generated across experiments in the
|
445
|
-
batch from collated .csv data, rather than from the averaged results
|
446
|
-
within each experiment, are output here.
|
447
|
-
.UNINDENT
|
448
|
-
.UNINDENT
|
449
|
-
.UNINDENT
|
450
|
-
.UNINDENT
|
451
|
-
.UNINDENT
|
452
|
-
.UNINDENT
|
453
|
-
.SS Stage 5 Directory Tree
|
454
|
-
.sp
|
455
|
-
When SIERRA runs stage 5, stages 1\-4 must have already been successfully run,
|
456
|
-
and therefore the directory tree shown above will exist. For the purposes of
|
457
|
-
explanation, I will use the following partial SIERRA option sets to explain the
|
458
|
-
additions to the experiment tree for stage 5.
|
459
|
-
.sp
|
460
|
-
First, the experiment tree for \fIscenario comparison\fP:
|
461
|
-
.INDENT 0.0
|
462
|
-
.INDENT 3.5
|
463
|
-
.sp
|
464
|
-
.nf
|
465
|
-
.ft C
|
466
|
-
\-\-pipeline 5\e
|
467
|
-
\-\-scenario\-comparison\e
|
468
|
-
\-\-batch\-criteria population_size.Log8\e
|
469
|
-
\-\-scenarios\-list=RN.16x16x2,PL.16x16x2\e
|
470
|
-
\-\-sierra\-root=$HOME/exp\(dq
|
471
|
-
.ft P
|
472
|
-
.fi
|
473
|
-
.UNINDENT
|
474
|
-
.UNINDENT
|
475
|
-
.sp
|
476
|
-
This invocation will cause SIERRA to create the following directory structure as
|
477
|
-
it runs:
|
478
|
-
.INDENT 0.0
|
479
|
-
.IP \(bu 2
|
480
|
-
\fB$HOME/exp\fP
|
481
|
-
.INDENT 2.0
|
482
|
-
.IP \(bu 2
|
483
|
-
\fBRN.16x16x2+PL.16x16x2\-sc\-graphs\fP
|
484
|
-
.sp
|
485
|
-
This is the directory holding the comparison graphs for all controllers
|
486
|
-
which were previously run on the scenarios \fBRN.16x16x2\fP and \fBPL.16x16x2\fP
|
487
|
-
(scenario names are arbitrary for the purposes of stage 5 and entirely
|
488
|
-
depend on the project). Inside this directory will be all graphs generated
|
489
|
-
according to the configuration specified in
|
490
|
-
ln\-sierra\-tutorials\-project\-stage5\-config\&.
|
491
|
-
.UNINDENT
|
492
|
-
.UNINDENT
|
493
|
-
.sp
|
494
|
-
Second, the experiment tree for \fIcontroller comparison\fP
|
495
|
-
.INDENT 0.0
|
496
|
-
.INDENT 3.5
|
497
|
-
.sp
|
498
|
-
.nf
|
499
|
-
.ft C
|
500
|
-
\-\-pipeline 5\e
|
501
|
-
\-\-controller\-comparison\e
|
502
|
-
\-\-batch\-criteria population_size.Log8\e
|
503
|
-
\-\-controllers\-list d0.CRW,d0.DPO\e
|
504
|
-
\-\-sierra\-root=$HOME/exp\(dq
|
505
|
-
.ft P
|
506
|
-
.fi
|
507
|
-
.UNINDENT
|
508
|
-
.UNINDENT
|
509
|
-
.sp
|
510
|
-
This invocation will cause SIERRA to create the following directory structure as
|
511
|
-
it runs:
|
512
|
-
.INDENT 0.0
|
513
|
-
.IP \(bu 2
|
514
|
-
\fB$HOME/exp\fP
|
515
|
-
.INDENT 2.0
|
516
|
-
.IP \(bu 2
|
517
|
-
\fBd0.CRW+d0.DPO\-cc\-graphs\fP
|
518
|
-
.sp
|
519
|
-
This is the directory holding the comparison graphs for each scenario for
|
520
|
-
which \fBd0.CRW\fP and \fBd0.DPO\fP were run (scenarios are computed by
|
521
|
-
examining the directory tree for stages 1\-4). Controller names are arbitrary
|
522
|
-
for the purposes of stage 5 and entirely depend on the project). Inside this
|
523
|
-
directory will be all graphs generated according to the configuration
|
524
|
-
specified in ln\-sierra\-tutorials\-project\-stage5\-config\&.
|
525
|
-
.UNINDENT
|
526
|
-
.UNINDENT
|
527
|
-
.SH SIERRA SUBPROGRAMS
|
528
|
-
.sp
|
529
|
-
These are the shell programs which SIERRA \fImay\fP use internally when running,
|
530
|
-
depending on what you are doing.
|
531
|
-
.INDENT 0.0
|
532
|
-
.IP \(bu 2
|
533
|
-
\fBparallel\fP \- GNU parallel. Used during stage 2 when running
|
534
|
-
experiments (\fI\%ARGoS\fP, \fI\%ROS1+Gazebo\fP, \fI\%ROS1+Robot\fP platforms).
|
535
|
-
.IP \(bu 2
|
536
|
-
\fBffmpeg\fP \- Used during stage 3 if imagizing is run. See
|
537
|
-
\fI\%Platform Visual Capture\fP\&.
|
538
|
-
.IP \(bu 2
|
539
|
-
\fBXvfb\fP \- Used during stage 1 when generating simulation inputs, and
|
540
|
-
during stage 2 when running experiments for the \fI\%ARGoS\fP
|
541
|
-
\fI\%Platform\fP\&. See also \fI\%Platform Visual Capture\fP\&.
|
542
|
-
.IP \(bu 2
|
543
|
-
\fBparallel\-ssh\fP \- Used during stage 1 when generating experiments
|
544
|
-
experiments (\fI\%ROS1+Robot\fP platform).
|
545
|
-
.IP \(bu 2
|
546
|
-
\fBparallel\-rsync\fP \- Used during stage 1 when generating experiments
|
547
|
-
experiments (\fI\%ROS1+Robot\fP platform).
|
548
|
-
.UNINDENT
|
549
|
-
.SH ENVIRONMENT VARIABLES
|
550
|
-
.INDENT 0.0
|
551
|
-
.TP
|
552
|
-
.B SIERRA_PLUGIN_PATH
|
553
|
-
Used for locating \fI\%plugins\fP\&. The directory \fIcontaining\fP a
|
554
|
-
plugin directory outside the SIERRA source tree must be on
|
555
|
-
\fBSIERRA_PLUGIN_PATH\fP\&. Paths are added to \fBPYTHONPATH\fP as needed to load
|
556
|
-
plugins correctly. For example, if you have a different version of the
|
557
|
-
\fB\-\-storage\-medium\fP plugin you\(aqd like to use, and you have but the directory
|
558
|
-
containing the plugin in \fB$HOME/plugins\fP, then you need to add
|
559
|
-
\fB$HOME/plugins\fP to your \fBSIERRA_PLUGIN_PATH\fP to so that SIERRA will find
|
560
|
-
it. This variable is used in stages 1\-5.
|
561
|
-
.sp
|
562
|
-
Used for locating \fI\%projects\fP; all projects specifiable with
|
563
|
-
\fB\-\-project\fP are directories found within the directories on this path. For
|
564
|
-
example, if you have a project \fB$HOME/git/projects/myproject\fP, then
|
565
|
-
\fB$HOME/git\fP must be on \fBSIERRA_PLUGIN_PATH\fP in order for you to be able
|
566
|
-
to specify \fB\-\-project=myproject\fP\&. This variable is used in stages 1\-5.
|
567
|
-
.sp
|
568
|
-
You \fIcannot\fP just put the parent directory of your project on
|
569
|
-
\fI\%PYTHONPATH\fP because SIERRA uses this path for other things
|
570
|
-
internally (e.g., computing the paths to YAML config files).
|
571
|
-
.UNINDENT
|
572
|
-
.INDENT 0.0
|
573
|
-
.TP
|
574
|
-
.B PYTHONPATH
|
575
|
-
Used for locating projects per the usual python mechanisms.
|
576
|
-
.UNINDENT
|
577
|
-
.INDENT 0.0
|
578
|
-
.TP
|
579
|
-
.B ARGOS_PLUGIN_PATH
|
580
|
-
Must be set to contain the library directory where you installed/built ARGoS,
|
581
|
-
as well as the library directory for your project \fB\&.so\fP\&. Checked to be
|
582
|
-
non\-empty before running stage 2 for all \fB\-\-exec\-env\fP plugins. SIERRA does
|
583
|
-
\fInot\fP modify this variable, so it needs to be setup properly prior to
|
584
|
-
invoking SIERRA (i.e., the directory containing the \fI\%Project\fP \fB\&.so\fP
|
585
|
-
file needs to be on it). SIERRA can\(aqt know, in general, where the location of
|
586
|
-
the C++ code corresponding to the loaded \fI\%Project\fP is.
|
587
|
-
.UNINDENT
|
588
|
-
.INDENT 0.0
|
589
|
-
.TP
|
590
|
-
.B SIERRA_ARCH
|
591
|
-
Can be used to determine the names of executables launch in HPC environment,
|
592
|
-
so that in environments with multiple queues/sub\-clusters with different
|
593
|
-
architectures simulators can be compiled natively for each for maximum
|
594
|
-
performance. Can be any string. If defined, then instead of searching for the
|
595
|
-
\fBfoobar\fP executable for some platform on \fBPATH\fP, SIERRA will look for
|
596
|
-
\fBfoobar\-$SIERRA_ARCH\fP\&.
|
597
|
-
.sp
|
598
|
-
\fBIMPORTANT:\fP
|
599
|
-
.INDENT 7.0
|
600
|
-
.INDENT 3.5
|
601
|
-
Not all platforms use this variable\-\-see the docs for your
|
602
|
-
platform of interest.
|
603
|
-
.UNINDENT
|
604
|
-
.UNINDENT
|
605
|
-
.UNINDENT
|
606
|
-
.INDENT 0.0
|
607
|
-
.TP
|
608
|
-
.B SIERRA_NODEFILE
|
609
|
-
Points to a file suitable for passing to \fBparallel\fP via
|
610
|
-
\fB\-\-sshloginfile\fP\&. See \fBparallel\fP docs for general
|
611
|
-
content/formatting requirements.
|
612
|
-
.sp
|
613
|
-
Used by SIERRA to configure experiments during stage 1,2; if it is not
|
614
|
-
defined and \fB\-\-nodefile\fP is not passed SIERRA will throw an error.
|
615
|
-
.UNINDENT
|
616
|
-
.INDENT 0.0
|
617
|
-
.TP
|
618
|
-
.B PARALLEL
|
619
|
-
When running on some execution environments, such as \fBhpc.slurm,hpc.pbs\fP,
|
620
|
-
any and all environment variables needed by your \fI\%Project\fP should be
|
621
|
-
exported via the \fBPARALLEL\fP environment variable before invoking SIERRA,
|
622
|
-
because GNU parallel does not export the environment of the node it is
|
623
|
-
launched from to slave nodes (or even on the local machine). Something like:
|
624
|
-
.INDENT 7.0
|
625
|
-
.INDENT 3.5
|
626
|
-
.sp
|
627
|
-
.nf
|
628
|
-
.ft C
|
629
|
-
export PARALLEL=\(dq\-\-workdir . \e
|
630
|
-
\-\-env PATH \e
|
631
|
-
\-\-env LD_LIBRARY_PATH \e
|
632
|
-
\-\-env LOADEDMODULES \e
|
633
|
-
\-\-env _LMFILES_ \e
|
634
|
-
\-\-env MODULE_VERSION \e
|
635
|
-
\-\-env MODULEPATH \e
|
636
|
-
\-\-env MODULEVERSION_STACK
|
637
|
-
\-\-env MODULESHOME \e
|
638
|
-
\-\-env OMP_DYNAMICS \e
|
639
|
-
\-\-env OMP_MAX_ACTIVE_LEVELS \e
|
640
|
-
\-\-env OMP_NESTED \e
|
641
|
-
\-\-env OMP_NUM_THREADS \e
|
642
|
-
\-\-env OMP_SCHEDULE \e
|
643
|
-
\-\-env OMP_STACKSIZE \e
|
644
|
-
\-\-env OMP_THREAD_LIMIT \e
|
645
|
-
\-\-env OMP_WAIT_POLICY \e
|
646
|
-
\-\-env SIERRA_ARCH \e
|
647
|
-
\-\-env SIERRA_PLUGIN_PATH\(dq
|
648
|
-
.ft P
|
649
|
-
.fi
|
650
|
-
.UNINDENT
|
651
|
-
.UNINDENT
|
652
|
-
.sp
|
653
|
-
Don\(aqt forget to include \fI\%ARGOS_PLUGIN_PATH\fP,
|
654
|
-
\fI\%ROS_PACKAGE_PATH\fP, etc., depending on your chosen \fI\%Platform\fP\&.
|
655
|
-
.UNINDENT
|
656
|
-
.INDENT 0.0
|
657
|
-
.TP
|
658
|
-
.B PARALLEL_SHELL
|
659
|
-
SIERRA sets up the \fI\%Experiment\fP execution environments by running one
|
660
|
-
or more shell commands in a subprocess (treated as a \fBshell\fP, which means
|
661
|
-
that \fBparallel\fP can\(aqt determine \fBSHELL\fP, and therefore defaults to
|
662
|
-
\fB/bin/sh\fP, which is not what users expect. SIERRA explicitly sets
|
663
|
-
\fBPARALLEL_SHELL\fP to the result of \fBshutil.which(\(aqbash\(aq)\fP in keeping with
|
664
|
-
the Principle Of Least Surprise.
|
665
|
-
.UNINDENT
|
666
|
-
.INDENT 0.0
|
667
|
-
.TP
|
668
|
-
.B ROS_PACKAGE_PATH
|
669
|
-
The list of directories which defines where ROS will search for
|
670
|
-
packages. SIERRA does \fInot\fP modify this variable, so it needs to be setup
|
671
|
-
properly prior to invoking SIERRA (i.e., sourcing the proper \fBsetup.bash\fP
|
672
|
-
script).
|
673
|
-
.UNINDENT
|
674
|
-
.SH CONFIGURABLE SIERRA VARIABLES
|
675
|
-
.sp
|
676
|
-
Non\-\fI\%Batch Criteria\fP variables which you can use to configure
|
677
|
-
simulations. All batch criteria are variables, but not all variables are batch
|
678
|
-
criteria.
|
679
|
-
.INDENT 0.0
|
680
|
-
.IP \(bu 2
|
681
|
-
\fI\%Experiment Setup\fP
|
682
|
-
.UNINDENT
|
683
|
-
.SS Experiment Setup
|
684
|
-
.sp
|
685
|
-
Configure \fI\%Experiment\fP time: length, controller cadence (\fI\%Tick\fP
|
686
|
-
duration/timestep), and how many datapoints to capture per \fI\%Experimental
|
687
|
-
Run\fP\&.
|
688
|
-
.SS Cmdline Syntax
|
689
|
-
.sp
|
690
|
-
\fBT{duration}[.K{ticks_per_sec}][.N{n_datapoints}\fP
|
691
|
-
.INDENT 0.0
|
692
|
-
.IP \(bu 2
|
693
|
-
\fBduration\fP \- Duration of timesteps in \fIseconds\fP (not timesteps).
|
694
|
-
.IP \(bu 2
|
695
|
-
\fBticks_per_sec\fP \- How many times each controller will be run per second.
|
696
|
-
.IP \(bu 2
|
697
|
-
\fBn_datapoints\fP \- # datapoints per \fI\%Experimental Run\fP to be captured;
|
698
|
-
the capture interval (if configurable) should be adjusted in
|
699
|
-
\fI\%Project\fP\-derived class from the platform \(dqExperiment setup class\(dq
|
700
|
-
(e.g., \fBsierra.plugins.platform.argos.variables.exp_setup.ExpSetup\fP for
|
701
|
-
\fI\%ARGoS\fP).
|
702
|
-
.UNINDENT
|
703
|
-
.SS Examples
|
704
|
-
.INDENT 0.0
|
705
|
-
.IP \(bu 2
|
706
|
-
\fBexp_setup.T1000\fP: Experimental run will be 1,000 seconds long and have
|
707
|
-
1,000*5=5,000 timesteps, with default (50) # datapoints.
|
708
|
-
.IP \(bu 2
|
709
|
-
\fBexp_setup.T2000.N100\fP: Experimental run will be 2,000 seconds long and have
|
710
|
-
2,000*5=10,000 timesteps, with 100 datapoints (1 every 20 seconds/100
|
711
|
-
timesteps).
|
712
|
-
.IP \(bu 2
|
713
|
-
\fBexp_setup.T10000.K10\fP: Experimental run will be 10,000 seconds long, and
|
714
|
-
have 10,000*10=100,000 timesteps with default (50) # datapoints.
|
715
|
-
.IP \(bu 2
|
716
|
-
\fBexp_setup.T10000.K10.N100\fP: Experimental run will be 10,000 seconds long,
|
717
|
-
and have 10,000*10=100,000 timesteps, with 100 datapoints (one every 100
|
718
|
-
seconds/1,000 timesteps).
|
719
|
-
.UNINDENT
|
720
|
-
.SH AUTHOR
|
721
|
-
John Harwell
|
722
|
-
.SH COPYRIGHT
|
723
|
-
2022, John Harwell
|
724
|
-
.\" Generated by docutils manpage writer.
|
725
|
-
.
|