Launch Configuration#
The launch configuration defines and parametrizes the actions you can execute in a workspace. See also the launch file documentation here. A full, simple example can be found here . A more complex example is here.
Tag |
Type |
Description |
Value Constraints |
Example |
---|---|---|---|---|
sDTI |
string |
DTI of launch file. Must be this value. |
|
|
sId |
string |
Id of launch file. |
Any string. |
|
sInfo |
string |
Information string shown by command |
Any string. |
|
mGlobalArgs |
dict |
Default arguments used by all actions. |
See below |
|
mActions |
dict |
Definition of actions that can be executed. |
See below |
Action Arguments#
The top level elements of the mActions
dictionary are user defined names of the actions. These names are used in the -a
argument of the command cathy ws launch -c [config] -a [action]
, to determine which action is to be executed for a configuration. Each action block must either contain an action definition or an action alias definition. Note that action blocks can also be nested.
Action Definition#
An action definition uses the DTI /catharsys/launch/action:1.0
.
Here is an example of a standard action definition:
"mActions": {
"my_render": {
"sDTI": "/catharsys/launch/action:1.0",
"sActionDTI": "/catharsys/action/std/blender/render/std:1.0",
"mConfig": {
// Launch arguments for action
}
}
}
This action would be executed via cathy ws launch -c trial-01 -a my_render
.
Here is an example of nested action names:
"mActions": {
"my_render": {
"std": {
"sDTI": "/catharsys/launch/action:1.0",
"sActionDTI": "/catharsys/action/std/blender/render/std:1.0",
"mConfig": {
// Launch arguments for action
}
},
"rs": {
"sDTI": "/catharsys/launch/action:1.0",
"sActionDTI": "/catharsys/action/std/blender/render/rs:1.0",
"mConfig": {
// Launch arguments for action
}
}
}
}
These actions would be executed via cathy ws launch -c trial-01 -a my_render/std
and cathy ws launch -c trial-01 -a my_render/rs
.
The action definition dictionary must have these elements:
Tag |
Type |
Description |
Value Constraints |
Example |
---|---|---|---|---|
sDTI |
string |
DTI of action arguments. Must be this value. |
|
|
sActionDTI |
string |
DTI of action to use. See actions overview |
DTI of any action installed in environment |
|
mConfig |
dict |
Dictionary of launch arguments. |
Action Alias#
It is also possible to define action aliases, that refer to other actions, but overwrite some launch arguments. In this way, you can, for example, have an action that generates a Blender file for debugging but does not render the actual scene as an alias of the actual render action.
An action alias uses the DTI /catharsys/launch/action-alias:1.0
. Here is an example,
"mActions": {
"my_render": {
"image": {
"sDTI": "/catharsys/launch/action:1.0",
"sActionDTI": "/catharsys/action/std/blender/render/std:1.0",
"mConfig": {
// Launch arguments for render action
"bDoProcess": true,
"bDoStoreProcessData": false,
}
},
"blend": {
"sDTI": "/catharsys/launch/action-alias:1.0",
"sActionName": "my_render/image",
"mConfig": {
// Overwrite launch arguments of action "my_render/image"
"bDoProcess": false,
"bDoStoreProcessData": true,
}
}
}
}
These actions would be executed via cathy ws launch -c trial-01 -a my_render/image
and cathy ws launch -c trial-01 -a my_render/blend
.
The action alias definition must have these elements:
Tag |
Type |
Description |
Value Constraints |
Example |
---|---|---|---|---|
sDTI |
string |
DTI of action arguments. Must be this value. |
|
|
sActionName |
string |
The name of the action in this launch file to use. |
Any action name defined in this file. |
|
mConfig |
dict |
Dictionary of launch arguments. |
Launch Arguments#
The launch arguments listed here can be used in the mGlobalArgs
block as well as in the mConfig
block of the actions.
Note
The mGlobalArgs
dictionary defines default values that are used by all actions.The elements defined here are not global variabels.
This dictionary should probably be called mDefaultArgs
instead. This may be changed in a future version.
Tag |
Type |
Description |
Value Constraints |
Example |
---|---|---|---|---|
sDTI |
string |
DTI of launch arguments structure. Must be this value. |
|
|
sTrialFile |
string |
Name of the trial configuration file to be used. |
Relative path to file. Extension not needed. |
|
sExecFile |
string |
Name of the execution configuration file to be used. |
Relative path to file. Extension not needed. |
|
iFrameFirst |
int |
Index of first frame to render. |
|
1 |
iFrameLast |
int |
Index of last frame to render. |
|
1 |
iFrameStep |
int |
Frame increment |
|
1 |
iRenderQuality |
int |
Render quality. For Blender the number of rays per pixel. |
|
256 |
sTopFolder |
string |
(opt) If given, defines the name of the top production folder. |
Any string that can be used as folder name. |
|
bDoProcess |
bool |
Flag whether to perform action (true) or just generate config. |
true, false |
true |
bDoOverwrite |
bool |
Flag whether to overwrite files (true) or not. |
true, false |
false |
bDoStoreProcessData |
bool |
For Blender render action stores the generated/modified Blender file. |
true, false |
false |
iConfigGroups |
int |
Number of execution groups, configurations are collected in. |
|
1 |
iFrameGroups |
int |
Number of execution group, frames are collected in. |
|
1 |
iConfigsPerGroup |
int |
Number of configurations per group. Takes prevalence over iConfigGroups. |
|
2 |
iFramesPerGroup |
int |
Number of frames per group. Takes prevalence over iConfigGroups. |
|
2 |
iMaxLocalWorkers |
int |
Maximal number of parallel local processes. |
|
5 |
Note
Apart from the elements given in the table, you can add any other element to the launch arguement dictionary block in the JSON file. All launch arguments are available to all other configurations via the dictionary ${action:args}
.
For example, to access the iFrameFirst
element of the current action, use ${action:args:iFrameFirst}
. If you add some other element foo
to the launch arguments, then it is accessible via ${action:args:foo}
. See also The dictionary action.
Execution Groups#
The parameters iConfigGroups
and iFrameGroups
are useful when processing
multiple jobs in parallel.
iConfigGroups
defines into how many groups all configurations are split.
The number of configurations is determined by the trial configuration.
For values <= 0, there is one group for each configuration.
iFrameGroups
defines into how many groups all frames are split.
The total number of jobs generated are the number of configuration groups times the number of frame groups.
For example, suppose there are three configurations, each with 10 frames,
and iConfigGroups = 0
and iFrameGroups = 2
, then there are 3*2 = 6
jobs,
two jobs per configuration each rendering 5 frames.
Instead of specifying the number of config and frame groups, you can
also set the number of configs and frames per group. If these values
are specified they take prevalence over iConfigGroups
and iFrameGroups
.
The number of config groups and frame groups are then calculated
from these values.
The parameter iMaxLocalWorkers
specifies the maximal number of parallel
local processes. So, even if there are 100 jobs that need execution, only
iMaxLocalWorkers
of them are run concurrently.
If you are running on an job scheduling system like LSF, then this parameter
only gives the number of parallel processes that register LSF jobs. The number
of jobs the LSF system runs in parallel is specified by the execution configuration.