Monte Carlo eXtreme (MCX)
* best viewed on non-IE browsers
Fast photon transport simulator powered by GPU-based parallel computing
- Monte Carlo eXtreme, or MCX, is a Monte Carlo simulation software for time-resolved photon transport in 3D turbid media. It uses Graphics Processing Units (GPU) based massively parallel computing techniques and is extremely fast compared to the traditional single-threaded CPU-based simulations. Using an nVidia 8800GT graphics card (14MP/114Cores), the acceleration is about 300x~400x compared to tMCimg running on a single core of Xeon 5120 CPU; this ratio can be as high as 700x with a GTX 280 GPU and 1400x with a GTX 470.
- MCX was developed by Qianqian Fang at the Optics Division, Martinos Center for Biomedical Imaging, Massachusetts General Hospital/Harvard Medical School.
- Details of this software can be found in the following paper:
This website also hosts another open-source Monte Carlo code - Mesh-based Monte Carlo
, or MMC
- developed by the same author
. Please browse MMC page
for more details.
- [2015/06/08] It is my great pleasure to announce that, the MCX/MMC project has received a 4-year funding support from the NIH (National Institute of Health)/NIGMS (National Institute of General Medical Sciences) starting this summer! This marks a new chapter for MCX/MMC development. In this new project, I will be working with a number of leading experts, Dr. Simon Arridge (UCL), Dr. David Kaeli (Northeastern) and Dr. Xavier Intes (RPI), on advancing MCX/MMC towards one of the fastest, most comprehensive and accurate photon transport simulator. We will develop rapid computational models not just for forward modeling, but also for rapid image reconstructions; we have also proposed new methods to further speed up simulation by 10x or more. In addition, we plan to organize workshops, share detailed training materials and write intuitive user interfaces to make MCX/MMC even more easy-to-use. A detailed workplan will be posted shortly. I am looking forward to serving this growing community, and meeting everyone in one of our future events!
- [2014/09/23] MCX 0.9.7-2 (code named Dark Matter) is here! This release contains several critical bug fixes; one of them affects all previous MCX releases. You are strongly recommended to upgrade your MCX copy to this version. See release notes for the update details. Download the software from here. I'd like to thank Kim Shultz and David Gasperino@UMN for their patches and bug reports!
- [2014/01/05] Happy new year! A new maintenance release of MCX (version 0.9.7-1) is now available for download. It contains a critical bug fix for all simulations with g=0. If this bug is affecting you, I urge you to upgrade to the latest version asap.
- [2013/09/22] MCX 1.0 alpha (Dark Matter) and 0.8 final (Charm Quark) have finally arrived! In the 1.0 alpha release, we added support for complex source types. One can now simulate isotropic sources, Gaussian beam, cone beam, and various pattern illumination sources with MCX! Also got updated are MCXLAB and MCXstudio. Please check out the demo script to find out how to simulate complex sources with just a few lines of MATLAB code. Download the latest software from here. Post your feedback on our mailing list.
- [2012/08/14] MCX was used as a benchmark for GPU flow-control optimization. Two recent papers (PDF1, PDF2) from the GPU Ocelot team revealed some interesting characteristics of MCX.
- [2012/08/10] The official MCX Bug Tracker page is online for testing. Here is the announcement.
- [2012/07/15] Announcing MCX for OpenCL (MCXCL) - works for NVIDIA/ATI GPUs and Intel/AMD CPUs. Here is the development log.
- [2012/01/20] A JSON file loading bug was reported and fixed. Only windows users are affected. Please download the new Windows binaries.
- [2012/01/16] Two new releases for MCX and MCXLAB became available at the same time. In the stable release v0.5.3, we fixed a forward-scattering-bias bug, discovered by David Giraud@BU, and added JSON-formatted input file support. In the beta release v0.7.9, we added additional support for 3D shape files and run-time rasterization. You are recommended to upgrade to the new releases. Your feedback to the new beta release is welcome! See ChangeLogs for more details. Get them from here.
- [2011/09/21] A new version of MCX and MCXLAB is released, fixing a high-priority bug. See Release Notes and ChangeLogs for more details. MCX and MCXLAB can be downloaded from here.
- [2011/06/16] A bug-fixing release to MCX and MCXLAB is announced. Please read the Release Notes and ChangeLogs. The updated software can be downloaded from here.
- [2011/03/20] The final release of MCX v0.5.0 has arrived! It gains MCXLAB, a simple-to-use MATLAB/GNU Octave interface for MCX (see Screenshots). Please read the full Release Notes here. You can also find the updated ChangeLogs and SVN commit history for more details. Download MCX and MCXLAB from this page.
- [2010/11/03] A new open-source software, Mesh-based Monte Carlo (MMC), was announced. MMC supports more accurate tissue boundaries, and multi-threaded parallel computing. Please find the release notes and the original paper to learn more. Download it from here.
- [2010/09/10] Here you can find my slides presented at the 2010 Virtual Photonics Workshop at BLI. It was a wonderful event organized by Dr. Venugopalan and Dr. Spanier.
- [2010/08/01] It is my great pleasure to announce the availability of a new beta release, v0.4.9, of MCX. Please read the release notes and the detailed Change Log/SVN history. The pre-compiled binaries for Linux/Windows can be accessed via the download page.
- [2010/06/24] A recent conference paper by Intel engineers tried to put a question mark over many "greater than 100x GPU/CPU acceleration" claims. It was a bit disappointing though to see that Intel engineers had picked an MC code that performed poorly on the GPU. Hope they find this website as pointed out by nVidia's official response and this blog. Update: see my comments to this thread, hope I made myself clear :)
- [2010/05/14] A recent commit allows one to choose which GPU to use on a multi-GPU system. MCX was recently tested on a GTX 470 card and had achieved a speed of 12800 photons/millisecond using over 40000 threads and a block size of 512. This is 4x faster than the results with 8800GT (and 1200x times faster than a 64bit CPU core).
- [2010/04/12] Here are my slides [PDF (3.1M)] for my OSA talk on MCX.
- [2010/03/08] For those who are wondering about the OpenCL version of MCX, I just want to let you know that this has been done! The current version of MCX-OpenCL runs perfectly on ATI Radeon 4890OC, Intel quad-core CPU (with ATI OpenCL implementation) and nVidia CUDA 3.0-beta. I will be sending an email to the mcx-news mailing list when a beta version is available; meanwhile, a short paper is on its way. Email me if you want to have a preview of the code.
- [2009/12/20] The final release of MCX 0.2 has arrived. You can read the announcement here and download the binaries and source codes from the Download page. Two mailing lists were created to facilitate discussions.
- [2009/12/09] A cross-platform GUI for Monte Carlo eXtreme, MCX Studio, is 99% working. It will be included in the final version of MCX 0.2. You can find some screenshots here.
- [2009/10/21] The paper describing this software is now published online at Optics Express website. The abstract and PDF can be browsed from this link. Also, support for Windows is now available. Executable will be uploaded and please check out here.
- [2009/10/20] The first public release of MCX, version 0.2 beta, is now ready for download. Both binary and source code are provided. To get started, please checkout the online documentation. Please let me know if you have any feedback or suggestions. Ideas on new features or collaborations are welcome!
- [2009/05/01] The software package is currently under a series of internal tests for processing real application data. We will keep you posted when the binary software package is ready for public test.
total visitors since Oct. 2009: