Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aeeb_v1_0.tar.gz(2186 Kbytes)
Manuscript Title: Accelerating Monte Carlo Simulations with an NVIDIA® Graphics Processor
Authors: Paul Martinsen, Johannes Blaschke, Rainer Künnemeyer, Robert Jordan
Program title: Phoogle-C/Phoogle-G
Catalogue identifier: AEEB_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 180(2009)1983
Programming language: C++.
Computer: Designed for Intel PCs. Phoogle-G requires a NVIDIA graphics card with support for CUDA 1.1.
Operating system: Windows XP.
Has the code been vectorised or parallelized?: Phoogle-G is written for SIMD architectures.
Keywords: Monte Carlo photon transport, Scattering media, General purpose graphics card computing, parallel computing.
PACS: 87.10.Rt, 33.80.Gj.
Classification: 21.1.

External routines: Charles Karney Random number library. Microsoft Foundation Class library. NVIDA CUDA library [1]

Nature of problem:
The Monte Carlo technique is an effective algorithm for exploring the propagation of light in turbid media. However, accurate results require tracing the path of many photons within the media. The independence of photons naturally lends the Monte Carlo technique to implementation on parallel architectures. Generally, parallel computing can be expensive, but recent advances in consumer grade graphics cards have opened the possibility of high-performance desktop parallel-computing.

Solution method:
In this pair of programmes we have implemented the Monte Carlo algorithm described by Prahl et al. [2] for photon transport in infinite scattering media to compare the performance of two readily accessible architectures: a standard desktop PC and a consumer grade graphics card from NVIDIA.

The graphics card implementation uses single precision floating point numbers for all calculations. Only photon transport from an isotropic point-source is supported. The graphics-card version has no user interface. The simulation parameters must be set in the source code. The desktop version has a simple user interface; however some properties can only be accessed through an ActiveX client (such as Matlab).

Additional comments:
The random number library used has a LGPL (http://www.gnu.org/copyleft/lesser.html) licence.

Running time:
Runtime can range from minutes to months depending on the number of photons simulated and the optical properties of the medium.

[1] http://www.nvidia.com/object/cuda_home.html
[2] S. Prahl, M. Keijzer, Sl Jacques, A. Welch, SPIE Institute Series 5 (1989) 102