content_image/1009860.jpg
WTIME = wtime.c MACHINE = -DIBM 

It is not feasible to cover all the compilation parameters, so the tests varied only the level of optimization. The following parameters were common for all builds: 

GLYPH<SM590000> -qsmp=noauto:omp 

GLYPH<SM590000> -qnosave 

GLYPH<SM590000> -qmaxmem=-1 

GLYPH<SM590000> -qarch=auto 

GLYPH<SM590000> -qtune=auto:balanced 

The example considers four sets of compilation parameters. In addition to the previous compilation parameters, the remaining parameters are listed in Table 9-1. The column “Option set name” lists shortcuts that were used to reference each set of compilation parameters that are presented in the “Compilation parameters” columns. 

<img src='content_image/1009860.jpg'>

All of the runs were performed with the following environment variables: 

GLYPH<SM590000> export OMP_DYNAMIC="FALSE" 

GLYPH<SM590000> export OMP_SCHEDULE="static" 

The benchmarks were submitted through IBM Spectrum Load Sharing Facility (IBM Spectrum LSF) by using jsrun  as the job launcher. IBM Spectrum LSF configured the node for the needed SMT level, and jsrun  made sure to pack the requested OpenMP threads into all available CPUs in each core. 

Example 9-2 shows how to submit a job to run on 22 CPU cores with SMT-2 by using 44 virtual CPUs. 

$ cat jobscript #! /bin/bash #BSUB -q excl #BSUB -J NPB-22cpu-smt2 #BSUB -nnodes 1 #BSUB -alloc_flags "smt2" #BSUB -o NPB-22cpu-smt2.%J ### End BSUB Options and begin shell commands export OMP_DYNAMIC="FALSE" export OMP_SCHEDULE="static" # 22 cpus with SMT2 = 44 available cpus. export OMP_NUM_THREADS=44 

