= Integrate applications in JUBE = == Introduction == * JUBE Benchmarking Environment: provides a script based framework to easily create benchmark sets, run those sets on different computer systems and evaluate the results. * Documentation: http://apps.fz-juelich.de/jsc/jube/jube2/docu/index.html * Current version available in the DEEP and DEEP-ER systems: 2.1.0 * Example commands: {{{ ssh user@deep $ jube2 info benchmark_directory $ jube2 status benchmark_directory [-i run_id] $ jube2 run benchmark_xml_file [--tag tag1 tag2 ...] $ jube2 analyse benchmark_directory [-i run_id] $ jube2 result benchmark_directory [-i run_id] }}} == Example application == {{{ ssh manzano@deep cd /usr/local/deep-er/sdv-benchmarks/applications/MAXW-DGTD }}} === JUBE input file - Compile application === See for instance the JUBE xml file of the example application: {{{ vim MAXW-DGTD-jube-master-SDV.compile.xml }}} Important parts in the file are: 1) Platform {{{ /usr/local/jube2/platform/deep }}} Under /usr/local/jube2/platform/deep there are a series of files with default values for the DEEP and DEEP-ER systems: {{{ deep-chainJobs.sh submit.job.in platform.xml }}} These files won't be modified but the default values can be overwritten in the JUBE xml file. 2) Benchmark name and outpath {{{ }}} 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. 3) Source files {{{ MAXW-DGTD.tar.gz tar -xzf MAXW-DGTD.tar.gz }}} The source files will be copied to the work directory and untar before the compilation. 4) Parameterset {{{ intel/15.2.164 parastation/intel-5.1.4-1_1_g064e3f7 $jube_benchmark_home/executable/k$k mpif90 -align dcommons -openmp -no-opt-prefetch -O3 -r8 -axCORE-AVX2 -fpp }}} 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. We can reference other parameters with $ like in the example $k or $jube_benchmark_home. $jube_benchmark_home is a JUBE variable with the value of the original input file location and $k is 2: {{{ 2 }}} So the value of the targetdir parameter will be /usr/local/deep-er/sdv-benchmarks/applications/MAXW-DGTD/executable/k2 5) Step compile {{{ sources MAXW-DGTDMakefileFile compileset systemParameter MAXW-DGTDParameter-head MAXW-DGTDMakefileSub module purge; module load $modules; export LD_LIBRARY_PATH=/opt/parastation/mpi2/lib:/usr/local/deep-er/sdv-benchmarks/libraries/scr/lib:/direct/Software/Extoll/SDV/lib:/usr/local/parastation/pscom/lib64:$LD_LIBRARY_PATH; cd MAXW-DGTD; rm -f Makefile; cp -p ../Makefile.out Makefile; make $k }}} In the step compile we tell which parameters and source files to use with the tag . The contains a single shell command. This command will run inside of a sandbox directory environment (inside the outpath directory tree). 6) Step copy_exec {{{ systemParameter MAXW-DGTDParameter-head mkdir -p $targetdir cp -p compile/MAXW-DGTD/exe/gdL$k $targetdir/gdL$k-jubeID_$jube_benchmark_id rm -f $targetdir/gdL$k; ln -s $targetdir/gdL$k-jubeID_$jube_benchmark_id $targetdir/gdL$k }}} 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.