- Computing Systems
- Educational Materials
SHOC - Scalable Heterogeneous Computing Benchmark Suite
The Scalable Heterogeneous Computing Benchmark Suite (SHOC) is a collection of benchmark programs testing the performance and stability of systems using computing devices with non-traditional architectures for general purpose computing, and the software used to program them. Its initial focus is on systems containing Graphics Processing Units (GPUs) and multi-core processors, and on the OpenCL programming standard. It can be used on clusters as well as individual hosts.
In addition to OpenCL-based benchmark programs, SHOC also includes a Compute Unified Device Architecture (CUDA) version of many of its benchmarks for comparison with the OpenCL version.
Multiple benchmark applications written in both OpenCL and CUDA
Cluster-level parallelism with MPI
Node-level parallelism for multiple GPUs per node
Harness for running and easy reporting (in spreadsheet format) of the suite
Stability tests for large scale cluster resiliency testing
The SHOC benchmark suite is divided into two primary categories: stress tests and performance tests. The stress tests use computationally demanding kernels to identify OpenCL devices with bad memory, insufficient cooling, or other component problems. The performance tests are further subdivided according to their complexity and the nature of the device capability they exercise. This categorization is similar in spirit to that used in the BLAS API. Currently, the levels are:
Level 0: Very low level device characteristics (so-called “feeds and speeds”) such as bandwidth across the bus connecting the GPU to the host or peak floating point operations per second
Level 1: Device performance for low-level operations such as vector dot products and sorting operations