Release Notes for Mesh-based Monte Carlo Version 0.9.5

code name: Wasabi Peas, released on Jan. 5, 2014

1. Introduction
2. About this release
3. What's new compared to 0.9.0
3.1. new features
3.2. bug fixes
4. System requirements
5. Known issues
6. Reference

1. Introduction

Mesh-based Monte Carlo, or MMC, is a Monte Carlo simulation package designed for simulating photon transport in 3D heterogeneous media. MMC can use a volumetric mesh to represent a complex domain, making it computationally and memory efficient.

MMC supports multi-threading based parallel computing. You can obtain a nearly linear speed-up when using more CPU cores in your simulation. Starting from version 0.8, MMC also supports the Single-Instruction Multiple-Data (SIMD) parallism on modern CPUs, allowing MMC to take further advantage of modern processors.

The download link to this release can be accessed from here.

2. About this release

MMC 0.9.5 is a stable release. It contains fixes to a high priority bug that effects all simulations using a g=0 medium. Also, a number of key features (some are experimental) are added, including saving photon exit position and direction, photon "replay" for perturbation MC, and fast generation of absorption Jacobian. Another major addition is the MMCLAB toolbox - an easy-to-use interface to run MMC in MATLAB/Octave.

3. What's new compared to 0.9.0

The new release was highly polished upon the previous version, v0.9.0, published over 2 years ago. The key changes include:

3.1. new features

  1. !!key!! add MMCLAB - a matlab interface
  2. !!key!! photon replay with a pre-recorded seed for perturbation MC
  3. !!key!! (experimental) output absorption Jacobian pattern in the "replay" mode
  4. save the photon exit position and direction with the "-x" flag
  5. support isotropic source, reading source types from JSON input
  6. output static or dynamic libraries (libmmc.a/libmmc.so) for new programs built upon mmc
  7. support binary output format with -F flag
  8. (experimental) WebMMC skeleton uploaded, allowing MMC to run inside a web browser

3.2. bug fixes

  1. !!critical!! fix the bug for isotropic scattering inside a g=0 medium
  2. !!critical!! fix crashes caused by time gate index round off error

Pre-compiled MMC binaries are provided for Windows (64bit), Linux (64bit) and Mac OS (64bit). In all cases, a binary compiled with a fast SFMT-19937 RNG (mmc_sfmt) is included along with the default binary (mmc) using the GLIBC RNG.

Using mmc_sfmt is generally recommended over mmc. The highest simulation speed can be typically achieved by using

  mmc_sfmt -M S -C 0 ....

One can recompile all binaries using an Intel C++ Compiler. It can generate binaries up to 25% faster than the equivalent binaries compiled with GCC.

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

4. System requirements

The "multicore" MMC binaries can be used for almost all computers (even those with a single-core processor).

The "sse" binaries require your computer to support SSE4 instructions. This can be determined by using the following command on Linux/MacOS

  grep 'sse4' /proc/cpuinfo 

or using a freeware "CPU-Z" on windows. If you attempt to run the SSE4 on an unsupported computer, you will get an error when executing the binary. In that case, you should switch to the "multicore" binaries.

5. Known issues

  • the support of generating absorption Jacobians is still experimental

6. Reference

Powered by Habitat