-
Notifications
You must be signed in to change notification settings - Fork 0
/
Job.ini
103 lines (73 loc) · 6.02 KB
/
Job.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# WARNING:
# Take care that indentation needs to be made by tabulator character, because indentation by spaces will result in multiline arguments!
# Section and option names may contain the following characters [_a-zA-Z-], e.g ${Sec1-Sub1:Opt_1-32}
# Environment variables are prepended with 'ENV::'
# All options with value "will_be_overwritten" mark options which do not need to be defined yet because they will get automatically generated
#
# The configure.py script defines some additional variables:
# General:configuratorModuleDir : this is the path to the HPCJobConfigurator module (where all standart templates can be found, for certain generators)
# General:configuratorModulePath : this is the path where the HPCJobConfigurator module is located
# General:currentWorkDir : the current working dir (where you executed the configure.py script
# General:jobDir : the job directory
# General:submitScriptArgs : the arguments to the configure.py script
# All these options in section (Job and Template) are strictly needed by GeneratorMPI which inherits from Generator
# GeneratorMPI provides these additional parameters which can be referenced in all sections:
# Job:jobIdx : The index of the currently generated job
# Job:submitCommand
[Job]
globalDir = ENV::MYGLOBALSCRATCH_DIR/${Cluster:jobName}/${Cluster:jobName}.${Job:jobIdx}
localDir = ENV::MYLOCALSCRATCH_DIR/${Cluster:jobName}.${Job:jobIdx}
jobName = ${Cluster:jobName}.${Job:jobIdx}
scriptDirName = Launch_${Job:jobName}
scriptDir = ${Cluster:jobGeneratorOutputDir}/${Job:scriptDirName}
copyLocation =
submitArgs = -W ${Cluster:runTime} -J "${Job:jobName}" -n ${Cluster:nProcesses} -R rusage[scratch=${Cluster:localScratchPerCore},mem=${Cluster:ramPerCore}] -oo "${Job:scriptDir}/lsf${Cluster:jobName}" < ${Job:scriptDir}/launch.sh
submitCommand = will_be_generated
executableCommand = ${RigidBodySim:executableSim} ${RigidBodySim:executableArgs} ${RigidBodySim:executablePipe}
# Check files/executables
pathChecker = [ "${RigidBodySim:mediaDir}" , "${RigidBodySim:firstInitialCondSimFile}" ]
executableChecker = [ [ "['RigidBodySim']['executableSim']" , "${RigidBodySim:executableSim}" ] , [ "['RigidBodySim']['executableConverter']" , "${RigidBodySim:executableConverter}"] , [ "['RigidBodySim']['asanMangler']" , "${RigidBodySim:asanMangler}"] ]
processIdxVariabel = $${OMPI_COMM_WORLD_RANK}
processFolderName = ProcessMPI_${Job:processIdxVariabel}
processDir = ${Job:localDir}/${Job:processFolderName}
# =====================================================
# All these files listed under this section are first replaced with the variables defined here and by the generator
# and the output is written to the jobs script directory folder by default.
# To each template defined here two additional options are generated if they do not yet exist!
# TempaltesOut:myTemplate : The output path of the template ${Templates:myTemplate}
# The default path is the the job script directory ${Job:scriptDir}/basename(${Templates:myTemplate})
[Templates]
launch = ${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/templates/launch.sh
startJob = ${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/templates/start.sh
preProcessPerNode = ${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/templates/preProcess.sh
processPerCore = ${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/templates/process.sh
postProcessPerNode = ${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/templates/postProcess.sh
endJob = ${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/generatorRigidBodySim/templates/end.sh
submitJob = ${General:configuratorModuleDir}/jobGenerators/templates/submit.sh
sceneFile = { "inputFile" : "${RigidBodySim:sceneFileTemplate}", "configurator" : { "modulePath" : "${General:configuratorModuleDir}/jobGenerators/jobGeneratorMPI/generatorRigidBodySim/adjusterContinue.py" , "moduleName" : "adjusterContinue" , "className" : "AdjusterContinue" } }
[TemplatesOut]
sceneFile = ${Job:scriptDir}/SceneFile${Job:jobIdx}.xml
# All these options in section (RigidBodySim) are strictly needed by RigidBodySim which inherits from GeneratorMPI
# RigidBodySim provides these automatic generated additional parameters which can be referenced in all sections:
# RigidBodySim:sceneFile : The jobs scene file
[RigidBodySim]
mediaDir = ENV::GRSF_MEDIA_DIR
sceneFileTemplate = ${General:jobDir}/data/SceneFileFunnel.xml
executableArgs = -s ${TemplatesOut:sceneFile} -g ${Job:globalDir} -l ${Job:localDir} -m ${RigidBodySim:mediaDir}
executableSim = ENV::GRSF_SIMMPI_D
executableConverter = ENV::GRSF_SIMCONV
asanMangler = ENV::ASANMANGLER
executablePipe = 2>&1 | ${asanMangler}
# when you pipe stdout/stderr through asanMangler, when a signal is recevied the pipe destroys the output of the executable
# without asanMangler there is no output problem.
firstInitialCondSimFile = ${General:jobDir}/data/SimState.sim
adjustSceneFile = HPCJobConfigurator.jobGeneratorMPI.generatorRigidBodySim.AdjusterContinue
simFilePath = ${Job:globalDir}/SimFiles/SimDataRECORDMPI_0/SimState.sim
# adjustSceneFile is the python module which is used to adjust the scene file successively over all ${Cluster:nJobs}
# So far implemented adjusters are:
#
# - jobGenerators.jobGeneratorMPI.generatorRigidBodySim.AdjusterContinue :
# this adjuster makes each job continue from the last state of the last job
# therefore this adjuster needs an option ${RigidBodySim:simFilePath} which specifies the last sim state file
# take care this simFilePath is not an input to the simulation , the simulation outputs exactly this directory structure (this is a TODO)
# to be able to adjust the global initial condition in the next scene files job