Release Notes for Monte Carlo eXtreme Version 0.7.9

code name: Charm Quarks - beta, released on Jan. 16, 2012

1. Introduction
2. About this release
3. What's new compared to 0.5.2
4. System requirements
5. Known issues
6. Reference

1. Introduction

Monte Carlo eXtreme, or MCX, is a fast Monte Carlo simulation software for photon transport in 3D heterogeneous media. It uses Graphics Processing Units (GPU) based massively parallel computing techniques and is hundreds times faster compared to traditional single-threaded CPU-based simulations.

MCX is designed for generality, high computational efficiency, and excellent portability. It contains 5 variant forms which are compiled with different feature sets. The software can be compiled on various platforms including Windows, Linux, Mac OS, and can be used with almost all generations of CUDA-capable devices (8800GT to Fermi).

2. About this release

MCX v0.7.9 is a beta release to the next milestone, code named "Charm Quarks". It contains all the bug fixes and features included in the stable release v0.5.3. In addition, a key new feature added in 0.7.9 is the support of JSON-based 3D shape files and run-time shape rasterization. This new feature frees users from making a binary volume file before running the simulation. A JSON shape file is easy to understand, compact in size, and supports various 3D shape primitives such as layered media, spheres and cylinders.

3. What's new compared to 0.5.2

Compared to Black Hole update 2 released in Sep. 2011, version 0.7.9 includes the following changes:

  1. !!critical!! fix a forward-direction bias bug when g=0 (reported by Dave Giraud)
  2. fix a regression introduced in 0.5.2 when boundary reflection is enabled
  3. allow users to use negative number (-1) with -E option to set RNG seed at run-time
  4. !!key!! support structural JSON-formatted input files.
  5. !!key!! support JSON-formatted shape files.
  6. using JSON shapes constructs in the command line with the -P option (for MCXLAB, it is cfg.shapes)
  7. backward compatible with CUDA 2.x and 3.x

Sample JSON shape files and benchmarks are provided under the example/shapetest folder.

Pre-compiled MCX were provided for Windows (32/64bit), Linux (32/64bit) and Mac OS (32bit). In the case of MCXLAB, mex files for both Matlab and Octave on these platforms are provided. All binaries were tested on a Fermi GPU (GTX 590).

The detailed change logs can be found in the ChangeLog and SVN commit history pages.

If you choose to use JSON input and shape files, you can use the JSONlab toolbox to direct load/save these JSON input files in MATLAB or Octave. JSONlab was written by the same author as MCX.

4. System requirements

To install MCX v0.7.9, you need

  • a CUDA-enabled graphics card made by nVidia, a full list of supported cards can be found here
  • a computer running GNU/Linux, Windows or Mac OS
  • the latest CUDA toolkit (version 4.0 is required to run the binaries) and development driver, you can download from here

To use MCXLAB v0.7.9 in MATLAB, you must have a MATLAB pre-installed.

To use MCXLAB v0.7.9 in GNU Octave, you must install the following:

  • GNU Octave
  • libblas, libgfortran and libhdf5

In all cases, CUDA libraries ( for Linux, libcudart.dylib for Mac and cudart*.dll for Windows) must be properly installed before you launch MCX.

5. Known issues

  1. the internal reflection code has not been tested extensively, please communicate with the author if you have any findings or comments

6. Reference

Qianqian Fang and David A. Boas, "Monte Carlo Simulation of Photon Migration in 3D Turbid Media Accelerated by Graphics Processing Units," Opt. Express, vol. 17, issue 22, pp. 20178-20190 (2009)

Powered by Habitat