Dear registered MCX users:
Some of you might have noticed a new open-source software,
MMC (or Mesh-based Monte Carlo) was added to the
MCX homepage in the late summer. However, I didn't
get chance to make a announcement. I'd like to use
this opportunity to write a release note for this
new package and explain the differences between MCX
and MMC.
The following is the summary of the new release:
------------------------------------------------
Package name: Mesh-based Monte Carlo (MMC)
Version: 0.2.0 (first release)
Release date: Aug. 29, 2010
URL:
http://mcx.sf.net/mmc/
Reference [1]:
http://www.opticsinfobase.org/boe/abstract.cfm?uri=boe-1-1-165
Platform: Linux (32/64bit), Windows (32/64bit)
License: GPL v3
------------------------------------------------
As you all know, Monte Carlo simulations of photon
transport were generally time-consuming, and fairly
limited in modeling targets with complex shapes.
MCX was designed to tackle the first issue, while,
MMC was developed for the second.
Unlike MCX, MMC uses a tetrahedral mesh to represent a
complex heterogeneous domain. By doing so, one can
define boundaries between different media more
accurately; it also allows one to use locally-refined
mesh to represent detailed structures without increasing
the global mesh density. In comparison, MCX uses a
voxelated grid to represent media. Although it is
general enough to accommodate complex media, the
boundaries are always "staircase-shape". In
applications where accuracy is critical, MMC
is expected to perform better.
MMC is also more memory-efficient. As mentioned
above, a mesh allows one to sample the geometry
more efficiently: you can use larger tetrahedra
near smoothed contours, and smaller ones near sharply
varying contours. This will gain a lot when simulating
time-resolved problems with very refined time-windows.
Currently, MMC was written for multi-core CPU and
a GPU version is on my todo-list. A nice linear
speed-up was observed when using more CPU cores.
When using 1 core, MMC has roughly the same speed
as tMCimg. I do expect magnitude speed-up when
porting MMC to the GPU.
Using MMC does involve an additional step of work,
i.e. making a tetrahedral mesh. Fortunately, this
task is now fairly straightforward with the iso2mesh
toolbox and CGAL tools. You can find more details
on image-based meshing at
http://iso2mesh.sf.net/
If you want to learn more on the algorithms
behind MMC, please read a recent paper of mine
published on Biomed Optics Express [1]. More
resources can be found at
http://mcx.sf.net/mmc/
Feel free to let me know if you have any thoughts
or suggestions. If you have a Mac machine, I am
appreciated if you can help me to compile the
software for your platform and send me the binary.
Enjoy the software!
Qianqian
[1]
Qianqian Fang, "Mesh-based Monte
Carlo method using fast
ray-tracing in Plücker coordinates," Biomed. Opt. Express
1, 165-175 (2010)
The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
http://www.partners.org/complianceline . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.