Benchmarking: SHOC
Jump to navigation
Jump to search
- The Scalable HeterOgeneous Computing benchmark suite (SHOC) is a collection of benchmark programs that tests the performance and stability of systems using computing devices with nontraditional architectures for general purpose computing, and the software used to program them. It's initial focus is on systems containing Graphics Processing Units (GPUs) and multi-core processors, and on the OpenCL[3] programming standard.
Step 1: Unzip Source
tar -xvzf shoc-1.01.tar.gzStep 2: Configure Build Environment
- If you are using Linux and OpenMPI or MPICH2; use the scripts in the config directory;
- They call ./configure as well; so do make sure you are in the top level directory of shoc-1.01
- If you are using Linux and OpenMPI, use the appropriate mpicxx and note its PATH in the conf-linux-openmpi.sh script
sh ./config/conf-linux-openmpi.sh- If you are using Linux and MPICH2, use the appropriate mpicxx and note its PATH in the conf-linux-mpich2.sh script
sh ./config/conf-linux-mpich2.sh
Step 3: Build Benchmarks
- Please note this will take some time
make- Check if the benchmarks have been built. You should have the following directories; Serial, EP and TP;
- serial, embarrassingly parallel and true parallel programs, respectively; each having two directories for CUDA and OpenCL
cd ./bin
lsStep 4: Run the Benchmarks
export PATH=$PATH:/path/to/your/mpi/bin/dir
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/mpi/lib/dir
cd ./tools- To run the driver in serial mode, specify either -cuda or -opencl, based on which version of the benchmarks you want to run.
- This will test each available device in the system. You also need to specify the problem size (1-4). The size convention is:
- 1 - CPUs / Debugging
- 2 - Mobile/Integrated GPUs
- 3 - Discrete GPUs (e.g. GeForce or Radeon series)
- 4 - HPC-Focused or Large Memory GPUs (e.g. Tesla or Firestream Series)
- It is recommended to use the driver.pl script in the ./tools directory and ALWAYS be sure to specify -cuda or -opencl
- To run an HPC focused benchmark on 2 Tesla GPUs:
cd $SHOC_ROOT/tools
perl driver.pl -cuda -s 4- To run the benchmarks on a single node.
cd $SHOC_ROOT/tools
perl driver.pl -s 4 -cuda- To run on more than one node, supply the script with the number of nodes and the number of available devices per node. For example, if running on 2 nodes that each have 2 devices, execute:
cd $SHOC_ROOT/tools
perl driver.pl -cuda -n 2 -d 2 -s 4 -cuda- To run a single-process benchmark program; for example SCAN in OpenCL
cd $SHOC_ROOT/bin
./Serial/OpenCL/Scan- To run a parallel benchmark program
cd $SHOC_ROOT/bin
mpirun -np 8 ./EP/Scan