Release Notes for Monte Carlo eXtreme Version 1.0 alpha (0.9.7)

code name: Dark Matter - alpha, released on Sep. 22, 2013

1. Introduction
2. About this release
3. What's new compared to 0.7.9 (Charm Quarks)
4. System requirements
5. Known issues
6. Sample simulation images with complex sources
7. 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) 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 plan to run MCX on a CPU, you should download mcxcl from MCX's website.

2. About this release

MCX 1.0 alpha (code named "Dark Matter") is a preview of the next generation MCX software. The biggest improvement of this release is the addition of 8 types of new source forms, including isotropic source, cone beam, Gaussian beam, uniform planar source, uniform disk, arcsine distribution beam, especially, the Fourier and arbitrary illumination patterns. All sources can be located outside of the volume and point towards any direction. This new feature is expected to greatly expand the applications of MCX and facilitates the development of new algorithms and systems utilizing wide-field illuminations. In addition, we also optimized the build-in random number generator for better performance, and included a number of bug fixes.

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. Please check out the new demo_mcxlab_srctype.m script to see the new source types in live. The MCXStudio GUI also received an update for all platforms.

3. What's new compared to 0.7.9 (Charm Quarks)

Compared to the last release, version 0.7.9, released in Jan. 2012, "Dark Matter" gains the following new features and bug fixes:

  1. !!key!! wide-field source support, including 9 source types
  2. !!key!! merge all variants into a single binary for Fermi cards (make fermi)
  3. optimized the build-in logistic lattice RNG for better quality
  4. returning random numbers in MCXLAB for easy RNG debugging
  5. add "Best practices guide" section in the README
  6. MCXstudio updates to incorporate the new features
  7. fix double correction for unitinmm
  8. fix Bug/0005, incorrect returned field and normalization for multiple gate groups (reported by Vivian Pera)
  9. fix Bug/0004. incorrect detected photon buffer pointer in MCXLAB with respin>1 (Vivian Pera)
  10. fix Bug/0001, forward scattering bias with automatic reseeding of the RNG (Matt Adams,Okito Yamashita)
  11. backport features from MMCLAB: exception handling and print inside matlab
  12. fix Bug/0002-2, conflict between savedet and share memory cache (Okito Yamashita)
  13. change default MAX_DETECTORS from 256 to 1024
  14. fix Bug/0002. use srcfrom0 flag to set crop0 and crop1 in mcx_cached (Okito Yamashita)
  15. calculate exact exit point when savedet is true (suggested by Audrey Steever)
  16. fix MP core count bug (patch by Suresh Paidi)

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

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

4. System requirements

To install "Dark Matter", 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 and development driver, you can download from here

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:

  • 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 speed of this release is about 20% slower than the 0.7/0.8 series. we are exploring new approaches to improve the speed while keeping the new features.

6. Sample simulation images with complex sources

upload:mcx_0.9.7_srcdemo_group1.png
upload:mcx_0.9.7_srcdemo_group2.png
upload:mcx_0.9.7_srcdemo_group3.png

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