Acknowledgement: This software release is made possible with the funding support from the NIH/NIGMS under grant R01-GM114365.
MCX-CL v2025.10 ports a number of major features from CUDA-based MCX to OpenCL. Notable features ported to MCX-CL include
As of v2025.10, MCX-CL contains nearly all features in MCX except the following
In addition, in this release, we also added the following key new features
--optlevel 3 by default, boosting speed by 30%-100% on various devices
The detailed updates can be found in the below change log
Monte Carlo eXtreme (MCX) is a fast physically-accurate photon simulation software for 3D heterogeneous complex media. By taking advantage of the massively parallel threads and extremely low memory latency in a modern graphics processing unit (GPU), this program is able to perform Monte Carlo (MC) simulations at a blazing speed, typically hundreds to a thousand times faster than a single-threaded CPU-based MC implementation.
MCX-CL is the OpenCL implementation of the MCX algorithm. Unlike MCX which can only be executed on NVIDIA GPUs, MCX-CL is written in OpenCL, the Open Computing Language, and can be executed on most modern CPUs and GPUs available today, including Intel and AMD CPUs and GPUs. MCX-CL is highly portable, highly scalable and is feature-rich just like MCX.
MCX-CL shares nearly identical command line options and input file formats
as MCX. The simulation settings designed for MCX can be simply used for
MCX-CL simulations without major modifications. As of v2020, MCX-CL
contains almost all features currently supported in MCX (with additional
support of AMD/Intel CPUs and GPUs as well as JIT compilation and -J flag).
Similar to MCXLAB, MCXLAB-CL is the MATLAB mex version of the MCXCL software.
It can be directly called inside MATLAB and GNU Octave. It also uses the same
input structure settings as in MCXLAB, making both packages highly compatible.
One can even define USE_MCXCL=1 in MATLAB command window, and all MCXLAB calls
will call MCXLAB-CL automatically.
By default, MCX-CL uses OpenCL-based simulations to utilize
all GPUs and CPUs installed on your system. If you have a GPU
(NVIDIA, AMD or Intel), the OpenCL support is typically installed
if you have correctly installed the latest version of the graphics
driver. Please verify that the OpenCL library (libOpenCL.so* on Linux,
OpenCL.dll on Windows or /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
on the Mac) must exist in your system.
Generally speaking, AMD and NVIDIA high-end gaming GPUs perform the best, about 20-60x faster than a multi-core CPU; Intel's integrated GPU is about 3-4 times faster than a multi-core CPU.
In addition, MCX-CL has been fully tested with the open-source OpenCL runtime
pocl (http://portablecl.org/) on the CPU. To install pocl on a Ubuntu/Debian
system, please run
sudo apt-get install pocl-opencl-icd
Step-by-step installation guide can be found in this link.