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 is hundreds times faster compared to traditional single-threaded CPU-based simulations.
MCX is designed for generality, high computational efficiency, and excellent portability. The software can be compiled on various platforms including Windows, Linux, Mac OS, and can be used on almost all generations of CUDA-capable devices (8800GT to Fermi).
In July 2012, we also released an OpenCL version of MCX (mcxcl). If you have an AMD/ATI graphics card or plan to run MCX on a CPU, you should download mcxcl from MCX's website.
MCX 0.8.0 (code named "Charm Quark") is a maintenance release. In this release, we made various bug fixes by listing to user feedback over the past months. These corrections allow MCX to give proper simulation results even under special scenarios such as limited graphics memory and non-dedicated GPUs.
In particular, we would like to give our thanks to Vivian Pera from Northeastern for giving several useful comments; to and Okito Yamashita Matt Adams for the characterization and feedback on the random number generators and use of shared memory; to Audrey Steever for the suggestion of new features; and to Suresh Paidi for the patch to calculate GPU core numbers.
In parallel to the new MCX binaries, we also release the updated MCXLAB package with easy-to-use interfaces and ready-to-run demo scripts.
Compared to the last beta release, version 0.7.9, released in Jan. 2012, "Dark Matter" gains the following new features and bug fixes:
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.8.0, 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 cuda5.5, you should install cuda 5.5 first.
To use MCXLAB v0.9.7 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 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)