I am pleased to let you know a new release of the mesh-based Monte Carlo photon simulator, or MMC, is now available for download.
The updated ChangeLog and README files can be browsed from here:
The new release, v0.4 (Pecan Pie), is primarily a maintenance release with specific focuses on speed optimization and portability. The main features of the new code include
1. the default binary, compiled with gcc, is almost twice faster than the previous version. It was found that the math functions in glibc were quite slow. With a fast approximated expf(), sincos (with _buildin_sincosf), and fine tuning of inline settings, the speed of the gcc binary was improved by 60% to 100%.
2. if you have a license for Intel C++ compilers (icc), you can compile MMC to gain another 10% to 20% speed-up. This difference is even bigger for the previous release of MMC (icc+MMC0.2 is about 2x faster than gcc+MMC0.2).
3. The makefile settings support more compilers. You can use gcc/icc/llvm-gcc/tcc or even arm-gcc for portable devices. Just for fun, an Android version MMC was provided which can be run on a smartphone. Of course, it is still slow at this point. My Samsung Epic is about 47x slower than an E5520 core :( The screenshot is here.
4. I added an initial support for the SFMT-19937 random number generator, which is supposedly to have better characteristics. The speed is slightly faster than the default GNU drand48_r. There is definitely space for further improvement.
5. Initial inline documentation, in Doxygen format, was added. I will continue to add more inline comments to make the code easier to understand. The current code documents can be browsed online at
Please feel free to let me know if you have any questions or suggestions. I am also open to new collaborations to find new applications for this code.