SPEC MPI2007 Benchmark Description
John E. Stone
Benchmark Program General Category
Tachyon is a parallel ray tracing application.
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.
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.
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.
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.
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