MCXCL - Monte Carlo eXtreme for OpenCL
A GPU-accelerated MC for heterogeneous computing platforms
- A paper summarizing this work is currently under review. We will share the paper when it is publiclly available.
- 1. Introduction
- 2. Supported Devices and Simulation Speed
- 3. Download
- 3.1. Binary package
- 3.2. Source code
- 5. Acknowledgement
MCXCL (or MCX for OpenCL) is a high-performance, highly scalable and general-purpose Monte Carlo photon transport simulator for biophotonics applications. Compared to MCX
(implemented with NVIDIA CUDA), MCXCL is written in the OpenCL framework, and is capable of launching parallel photon simulations on most modern CPUs and GPUs produced by many vendors, including NVIDIA, AMD and Intel.
2. Supported Devices and Simulation Speed
MCXCL is supported on NVIDIA GPUs, AMD CPUs and GPUs as well as Intel CPUs and (integrated) GPUs. A comparison between different CPUs/GPUs in 3 benchmark problems
(and 3 optimizations
) is shown in the below figure. MCXCL is currently about 2x-3x slower than MCX (CUDA based) on NVIDIA GPUs (see the inset). This is a result of lagged OpenCL driver development of NVIDIA. On the other hand, MCXCL performs quite well on AMD and Intel processors.
- Update: 11/14/2017, added AMD Vega 64 results
3.1. Binary package
Pre-compiled MCXCL binary packages (preview version) for Linux/Windows/MacOS can be downloaded here. The current preview package is named "mcxcl-*-git_20171108.zip".
However, you are highly recommended to download the MCXSuite.zip package for each platform (Linux/Windows/MacOS). MCXCL is part of the suite and easy-to-use GUI interface (MCX Studio) is provided to help one design new simulation and review results. After downloading and extracting the MCXSuite package, please start the GUI program by executing the "mcxsuite(.exe)" executable inside subfolder MCXSuite/mcxsuite/mcxsuite/.
3.2. Source code
MCXCL is open-source! You can download the latest source code at http://github.com/fangq/mcxcl
A tutorial on how to use MCX Studio GUI tool can be found below. The tutorial uses MCX as an example; the procedures for using MCXCL is almost the same, except that you need to select "NVIDIA/AMD/Intel CPUs/GPUs"
when creating the simulation. More tutorials can be found here
We thank the funding support from the National Institutes of Health (NIH) under grants R01-GM114365 and R01-CA204443.