a national resource for computational science education

HOME BWPEP Shodor Blue Waters

Multidimensional Benchmarking with PetaKit

By Samuel Leeman-Munk

Module's webpage

High performance computing raises the bar for benchmarking. Existing benchmarking applications such as Linpack measure raw power of a computer in one dimension, but in the myriad architectures of high performance cluster computing an algorithm may show excellent performance on one cluster while on another cluster of the same benchmark it performs poorly. Petakit aims to improve this weakness of standard benchmarking by using multidimensional benchmarking technique that would measure a cluster's abilities via multiple unique tests rather than just one. In its final form, PetaKit will support thirteen different tests - one for each of the the thirteen dwarfs of computing as published in Berkeley's parallel computing research paper.

This module describes the current state of PetaKit, its infrastructure, and in broad terms how the greater system works. For a lab, the student uses the PetaKit statistics harvester StatKit and benchmarks his or her own program (a sample program is supplied) and views the output with PetaKit plotter PlotKit.

  • PetaKit Module - A PDF document providing background on the problem, and instructions for using the materials.
  • PlotKit and StatKit - All the files a student needs to benchmark his or her programs.


PetaKit Module : PDF document providing background and instructions for using the Petakit parallel benchmarking kit. : Zip archive containing all the source code for StatKit and PlotKit. (perl --help for documentation)

Petakit C Library : Zip archive containing the library with commands for outfitting C programs to provide StatKit-compatible output.

Parallel Code Example : Zip archive containing an example parallel code, which calculates the area under a curve, that can be benchmarked using the Petakit.