Changes between Version 17 and Version 18 of Public/User_Guide/JUBE
- Timestamp:
- Aug 27, 2019, 1:20:58 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Public/User_Guide/JUBE
v17 v18 1 1 = Integrate applications in JUBE = 2 3 2 == Introduction == 4 5 * JUBE Benchmarking Environment: provides a script based framework to easily create benchmark sets, run those sets on different computer systems and evaluate the results. 6 * Documentation: http://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html 7 * Current version available in the DEEP and DEEP-ER systems: 2.1.0 8 * Example commands: 3 * JUBE Benchmarking Environment: provides a script based framework to easily create benchmark sets, run those sets on different computer systems and evaluate the results. 4 * Documentation: http://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html 5 * Current version available in the DEEP and DEEP-ER systems: 2.2.2 6 * Example commands: 9 7 10 8 {{{ 11 9 ssh user@deep 12 10 13 $ jube2 info benchmark_directory 14 $ jube2 status benchmark_directory [-i run_id] 15 $ jube2 run benchmark_xml_file [--tag tag1 tag2 ...] 16 $ jube2 analyse benchmark_directory [-i run_id] 17 $ jube2 result benchmark_directory [-i run_id] 18 }}} 19 11 $ jube info benchmark_directory 12 $ jube status benchmark_directory [-i run_id] 13 $ jube run benchmark_xml_file [--tag tag1 tag2 ...] 14 $ jube analyse benchmark_directory [-i run_id] 15 $ jube result benchmark_directory [-i run_id] 16 }}} 20 17 == Example application == 21 22 18 {{{ 23 19 ssh manzano@deep … … 25 21 cd /usr/local/deep-er/sdv-benchmarks/applications/MAXW-DGTD 26 22 }}} 27 28 23 === JUBE compile input file === 29 30 24 See for instance the JUBE xml file of the example application: 31 25 … … 33 27 vim MAXW-DGTD-jube-master-SDV.compile.xml 34 28 }}} 35 36 29 Important parts in the file are: 37 30 … … 43 36 </include-path> 44 37 }}} 45 46 38 Under /usr/local/jube2/platform/deep there are a series of files with default values for the DEEP and DEEP-ER systems: 47 39 … … 51 43 platform.xml 52 44 }}} 53 54 45 These files won't be modified but the default values can be overwritten in the JUBE xml file. 55 46 … … 59 50 <benchmark name="MAXW-DGTD-compile" outpath="./compile"> 60 51 }}} 61 62 52 The outpath describes the benchmark run directory (relative to the position of the input file). This directory will be managed by JUBE and will be automatically created if it doesn’t exist. The directory name and position are very important, because they are the main interface to communicate with your benchmark, after it was submitted. 63 53 … … 70 60 </fileset> 71 61 }}} 72 73 62 The source files will be copied to the user sandbox directory and untar before the compilation. 74 63 … … 83 72 </parameterset> 84 73 }}} 85 86 74 The values in the set of parameters with name "systemParamter" will be initialized with the default values found in the file "MAXW-DGTD_specs.xml". This last file takes in turn some of the default values of platform.xml and overwrites them. See the file for more information. 87 75 … … 93 81 </parameterset> 94 82 }}} 95 96 83 So the value of the targetdir parameter will be /usr/local/deep-er/sdv-benchmarks/applications/MAXW-DGTD/executable/k2. 97 84 … … 109 96 </step> 110 97 }}} 111 112 98 In the step compile we tell which parameters and source files to use with the tag <use></use>. The <do></do> contains a single shell command. This command will run inside of a sandbox directory environment (inside the outpath directory tree). 113 99 … … 123 109 </step> 124 110 }}} 125 126 111 The copy_exec step depends on the compile step and will wait until it is finished for copying the executables resulting from the compilation to the $targetdir directory. 127 112 128 113 === Compile application === 129 130 114 {{{ 131 115 jube2 run MAXW-DGTD-jube-master-SDV.compile.xml 132 116 }}} 133 134 117 A series of output files will be generated and stored under /usr/local/deep-er/sdv-benchmark/applications/MAXW-DGTD/compile/benchmark_id/. The structure is as follows: 135 118 … … 157 140 +- stdout # standard output of used shell commands 158 141 }}} 159 160 142 The executable resulting of the compilation will be stored under /usr/local/deep-er/sdv-benchmark/applications/MAXW-DGTD/executable/. 161 143 162 144 === JUBE run job input file === 163 164 145 See for instance the JUBE xml file of the example application: 165 146 … … 167 148 vim MAXW-DGTD-jube-master-SDV.modules.test.xml 168 149 }}} 169 170 150 Important parts in the file are: 171 151 … … 184 164 </parameterset> 185 165 }}} 186 187 166 You can tell JUBE to use one parameter set or another depending on the tag. For doing so you can specify it with the jube2 run command: 188 167 … … 190 169 jube2 run MAXW-DGTD-jube-master-SDV.modules.test.xml --tag woman 191 170 }}} 192 193 171 will use MAXW-DGTDParameter-woman, 194 172 … … 196 174 jube2 run MAXW-DGTD-jube-master-SDV.modules.test.xml 197 175 }}} 198 199 176 will use MAXW-DGTDParameter-head. 200 177 … … 206 183 <parameter name="iopath" type="string" >"/nvme/tmp/manzano/MAXW-DGTD-test/","/sdv-work/manzano/MAXW-DGTD-test/"</parameter> 207 184 }}} 208 209 185 You can specify comma separated values for the parameters. In this case JUBE will execute the benchmark 4 times with the following values: 210 186 … … 215 191 k=3, iopath=/sdv-work/manzano/MAXW-DGTD-test/ 216 192 }}} 217 218 193 3) Substitute set 219 194 … … 242 217 </substituteset> 243 218 }}} 244 245 219 And in MAXW-DGTD-jube-master-SDV.modules.test.xml: 246 220 … … 254 228 </substituteset> 255 229 }}} 256 257 230 This will tell JUBE to take the file ${submit_script}.in and create an output file named ${submit_script} with the occurrences #NOTIFY_EMAIL#, #QUEUE#, etc. substituted by the corresponding values. 258 231 … … 286 259 </step> 287 260 }}} 288 289 The interesting parts of this section are at the end. With 261 The interesting parts of this section are at the end. With 290 262 291 263 {{{ 292 264 <do>$chainjob_script $shared_job_info $submit_script</do> 293 265 }}} 294 295 266 you can submit a series of jobs (in this example 4, see section 2). The first job will run and the next one will wait until the first one is finished. The ${chainjob_script} looks as follows: 296 267 … … 323 294 exit 0 324 295 }}} 325 326 296 In ${shared_jobinfo} the jobid of the preceding job is stored. Notice that 327 297 … … 329 299 ${shared_jobinfo} = ${shared_folder}/jobid = ./shared/jobid 330 300 }}} 331 332 301 and all jobs have in their sandbox a soft link called "shared" pointing to ./benchmarks_modules_test/benchmark_id/execute_shared. 333 302 … … 343 312 </analyzer> 344 313 }}} 345 346 314 After the job has run, you can analyse the results with: 347 315 … … 349 317 jube2 analyse benchmarks_modules_test --id jube_id 350 318 }}} 351 352 319 The analyse step will look for the corresponding patterns in the output files, in this case exe/maxdg3DP$k.out and job.log, and the data will be stored inside the benchmark directory. The patterns to look for are specified in the MAXW-DGTD_specs.xml file: 353 320 … … 375 342 </patternset> 376 343 }}} 377 378 344 If there are multiple matches inside a single file you can add a reduce option. Normally only the first match will be extracted. See https://apps.fz-juelich.de/jsc/jube/jube2/docu/glossar.html#term-pattern-tag for more information. 379 345 … … 392 358 </result> 393 359 }}} 394 395 360 The last part is the result table creation. Here you have to use an existing analyser. The <column> contains a pattern or a parameter name. sort is the optional sorting order (separated by ,). The style attribute can be csv or pretty to get different ASCII representations. To create the result table you have to write: 396 361 … … 398 363 jube2 result benchmarks_modules_test --id jube_id 399 364 }}} 400 401 365 The result table will be written to STDOUT and into a result.dat file inside ./benchmarks_modules_test/benchmark_id/result.