Release Notes for Monte Carlo eXtreme Version 0.5.1

code name: Black Hole update 1, released on Jun. 6, 2011

1. Introduction
2. About this release
3. What's new compared to 0.5.0
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 high computational efficiency, accuracy and excellent portability. It contains 5 variant forms which are suited for a spectrum of practical needs ranging from high simulation speed to accuracy-demanding applications. 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.5.1 is a maintenance release. It is aimed to fix several bugs discovered in the previous 0.5.0 release. This version is more stable than 0.5.0 and is highly recommended to upgrade to.

3. What's new compared to 0.5.0

The new release of v0.5.1 gains the followings compared to v0.5.0 published in Mar. 2011:

  1. !!critical!! fix a shared-memory buffer bug that can cause crashes in mcx_cached and mcx_det_cached
  2. !!critical!! change the flux normalization scheme to significantly reduce the effect of data racing
  3. mcxlab_atom now accepts cfg.crop0 and cfg.crop1 to manually specify atomic region
  4. MCXLAB now supports Mac OS on Intel processors
  5. tested with GPU ocelot to support heterogeneous platforms including CPU and AMD GPU targets

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 470).

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

4. System requirements

To install MCX v0.5.1, 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.5.1 in MATLAB, you must have a MATLAB pre-installed.

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

  • GNU Octave
  • libblas, libgfortran and libhdf5

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.

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
  2. in rare cases, MCXLAB may takes very long time to return and gave erroneous results. This is likely caused by a MATLAB issue and a fresh start of MATLAB can solve the problem.
  3. if you don't have a dedicated GPU, you may get the "kernel-launch-time-out" error when the simulation time is longer than a few seconds. This is a limitation of CUDA and please read the Doc/FAQ for suggestions.

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