Changes between Version 17 and Version 18 of Public/User_Guide/JUBE


Ignore:
Timestamp:
Aug 27, 2019, 1:20:58 PM (5 years ago)
Author:
Andreas Smolenko
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Public/User_Guide/JUBE

    v17 v18  
    11= Integrate applications in JUBE =
    2 
    32== 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:
    97
    108{{{
    119ssh user@deep
    1210
    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}}}
    2017== Example application ==
    21 
    2218{{{
    2319ssh manzano@deep
     
    2521cd /usr/local/deep-er/sdv-benchmarks/applications/MAXW-DGTD
    2622}}}
    27 
    2823=== JUBE compile input file ===
    29 
    3024See for instance the JUBE xml file of the example application:
    3125
     
    3327vim MAXW-DGTD-jube-master-SDV.compile.xml
    3428}}}
    35 
    3629Important parts in the file are:
    3730
     
    4336  </include-path>
    4437}}}
    45 
    4638Under /usr/local/jube2/platform/deep there are a series of files with default values for the DEEP and DEEP-ER systems:
    4739
     
    5143platform.xml
    5244}}}
    53 
    5445These files won't be modified but the default values can be overwritten in the JUBE xml file.
    5546
     
    5950<benchmark name="MAXW-DGTD-compile" outpath="./compile">
    6051}}}
    61 
    6252The 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.
    6353
     
    7060    </fileset>
    7161}}}
    72 
    7362The source files will be copied to the user sandbox directory and untar before the compilation.
    7463
     
    8372    </parameterset>
    8473}}}
    85 
    8674The 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.
    8775
     
    9381    </parameterset>
    9482}}}
    95 
    9683So the value of the targetdir parameter will be /usr/local/deep-er/sdv-benchmarks/applications/MAXW-DGTD/executable/k2.
    9784
     
    10996    </step>
    11097}}}
    111 
    11298In 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).
    11399
     
    123109    </step>
    124110}}}
    125 
    126111The 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.
    127112
    128113=== Compile application ===
    129 
    130114{{{
    131115jube2 run MAXW-DGTD-jube-master-SDV.compile.xml
    132116}}}
    133 
    134117A 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:
    135118
     
    157140         +- stdout      # standard output of used shell commands
    158141}}}
    159 
    160142The executable resulting of the compilation will be stored under /usr/local/deep-er/sdv-benchmark/applications/MAXW-DGTD/executable/.
    161143
    162144=== JUBE run job input file ===
    163 
    164145See for instance the JUBE xml file of the example application:
    165146
     
    167148vim MAXW-DGTD-jube-master-SDV.modules.test.xml
    168149}}}
    169 
    170150Important parts in the file are:
    171151
     
    184164    </parameterset>
    185165}}}
    186 
    187166You 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:
    188167
     
    190169jube2 run MAXW-DGTD-jube-master-SDV.modules.test.xml --tag woman
    191170}}}
    192 
    193171will use MAXW-DGTDParameter-woman,
    194172
     
    196174jube2 run MAXW-DGTD-jube-master-SDV.modules.test.xml
    197175}}}
    198 
    199176will use MAXW-DGTDParameter-head.
    200177
     
    206183<parameter name="iopath" type="string" >"/nvme/tmp/manzano/MAXW-DGTD-test/","/sdv-work/manzano/MAXW-DGTD-test/"</parameter>
    207184}}}
    208 
    209185You can specify comma separated values for the parameters. In this case JUBE will execute the benchmark 4 times with the following values:
    210186
     
    215191k=3, iopath=/sdv-work/manzano/MAXW-DGTD-test/
    216192}}}
    217 
    2181933) Substitute set
    219194
     
    242217    </substituteset>
    243218}}}
    244 
    245219And in MAXW-DGTD-jube-master-SDV.modules.test.xml:
    246220
     
    254228    </substituteset>
    255229}}}
    256 
    257230This 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.
    258231
     
    286259    </step>
    287260}}}
    288 
    289 The interesting parts of this section are at the end. With
     261The interesting parts of this section are at the end. With
    290262
    291263{{{
    292264<do>$chainjob_script $shared_job_info $submit_script</do>
    293265}}}
    294 
    295266you 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:
    296267
     
    323294exit 0
    324295}}}
    325 
    326296In ${shared_jobinfo} the jobid of the preceding job is stored. Notice that
    327297
     
    329299${shared_jobinfo} = ${shared_folder}/jobid = ./shared/jobid
    330300}}}
    331 
    332301and all jobs have in their sandbox a soft link called "shared" pointing to ./benchmarks_modules_test/benchmark_id/execute_shared.
    333302
     
    343312    </analyzer>
    344313}}}
    345 
    346314After the job has run, you can analyse the results with:
    347315
     
    349317jube2 analyse benchmarks_modules_test --id jube_id
    350318}}}
    351 
    352319The 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:
    353320
     
    375342  </patternset>
    376343}}}
    377 
    378344If 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.
    379345
     
    392358    </result>
    393359}}}
    394 
    395360The 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:
    396361
     
    398363jube2 result benchmarks_modules_test --id jube_id
    399364}}}
    400 
    401365The result table will be written to STDOUT and into a result.dat file inside ./benchmarks_modules_test/benchmark_id/result.