SPEC MPI2007 Benchmark Description

Benchmark Name


Benchmark Author

John E. Stone


Benchmark Program General Category

Tachyon is a parallel ray tracing application.

Benchmark Description

To paraphrase the author:

Tachyon is a result of the author's curiosities in computer graphics. Some of it was written as part of his M.S. degree in Computer Science, other parts of it were done purely for their entertainment value.

MPI Usage

Tachyon is nearly embarrassingly parallel. As a result, MPI usage tends to be much lower as compared to other types of MPI applications.

The scene to be rendered is partitioned up into a fixed number of pieces of the scene, which are distributed out to each processor participating in the computation by the master process. Each processor then renders its piece of the scene in parallel, independent of the other processors. Once a processor completes the rendering of its particular piece of the scene, it waits until the other processors have rendered their pieces of the scene, and then transmits its piece back to the master process. The process is repeated until all pieces of the scene have been rendered.

Input Description

The input files contain descriptions of scenes to be rendered by the ray tracing algorithm. The descriptions consist of a series of equations used to mathematically model objects in the scene, one or more light sources, the colors and reflective properties of objects, and the position of the viewer looking into the scene at a given angle.

Output Description

Ordinarily, ray tracing programs produce a binary image file as a final result. However, binary files are particularly challenging to validate for the purposes of a benchmark. Hence, we have come up with a validation strategy that computes an error term based on the values of the scene, as compared to the expected output. This error term is then produced as textual output to be validated. If the error term is within a predefined delta value, then the output is considered to be valid. Otherwise, the SPEC tools will report a validation error.

Programming Language


Known portability issues

Some directives related to header files exist for various system-specific threading and timing routines. It is not clear that these directives are necessary for the purposes of an MPI-based benchmark.

Version and Licensing

This benchmark was ported from the 0.97 release of Tachyon.

The license for the code is stated by the author as follows:

  All work included in this distribution is copyrighted by John E. Stone,
  except where noted within specific source files.  You may use this code
  for any purpose you wish, as long as credit is given to its source(s).


Last updated: February 2, 2007