Monte Carlo eXtreme, or MCX, is a fast Monte Carlo simulation package for photon transport in 3D heterogeneous media. It uses Graphics Processing Units (GPU) for massively parallel computing and offers hundreds times acceleration compared to a traditional single-threaded CPU-based simulation.
MCX 0.9.7-2 (code named "Dark Matter") contains a number of important bug fixes. These corrections include:
The first bug affects all previous MCX releases! This bug will result in inaccurate results when you deal with refractive index mismatch at the internal boundaries (it does not affect the n-mismatch at the outer boundary). Thanks to Kim Shultz for spotting this long-lasting issue!
The second bug affects all simulations using the 'gaussian' source profile. The previous implementation (initially introduced in 0.9.7) contains an approximation. This is now replaced by a rigorous implementation, thanks to David Gasperino's patch.
The third bug appears when you run the mcx binary along with the "-u len" input to specify a sub-millimeter resolution grid. If you have already produced output using the old MCX software, you need to multiply 1/(len*len) to scale the solution, where len is your specified voxel length in mm. This bug does not affect MCXLAB simulations.
The 4th bug result in a lower number of simulated photons. The deviation can be up to the number of threads.
If you are using a previous version of MCX, you are strongly recommended to upgrade to this release to avoid getting erroneous results.
There is also a new feature added:
This allows one to save the seed of a detected photon, so one can "replay" these photons to produce a sensitivity profile, similar to the latest version of MMC.
Pre-compiled MCX are provided for Windows (32/64 bit), Linux (32/64bit) and Mac OS (64bit). In the case of MCXLAB, mex files for both Matlab and Octave on these platforms are provided. All binaries have been tested on a Fermi GPU (GTX 590).
To install version 0.9.7-2, you need
If you download the "fermi" packages, you need to have a Fermi (GTX 4xx) or newer graphics card. This binary will allow you to use photon detection, atomic operations and shared memory buffer, originally provided by different binaries, in a single binary, and the features are switched using command line options (-R option in particular).
If your downloaded package contains "cuda4" in the file name, you should download cuda 4.2.x before running MCX; likewise, if it has cuda6, you should install cuda 6.0 first.
To use MCXLAB v0.9.7-2 in MATLAB, you must have a MATLAB pre-installed. Be careful, newer MATLAB ships with a copy of libcudart library. Make sure you the MCX version matches the shipped cuda in your matlab.
To use MCXLAB v0.9.7-2 in GNU Octave, you must install the following:
In all cases, CUDA libraries (libcudart.so for Linux, libcudart.dylib for Mac and cudart*.dll for Windows) must be properly installed before you launch MCX.
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)