Acknowledgement: This software release is made possible with the funding support from the NIH/NIGMS under grant R01-GM114365.
MCX-CL (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.
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. There are only a few features in MCX that have not yet been ported to MCXCL, such as photon replay, we are working on those and hopefully make both software 100% compatible.
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.
MCXCL/MCXLAB-CL v0.9-1 is a maintenance release. Compared to the v2019.3 released a month ago, it fixes crashes due to incorrect empty string tests.
Pre-compiled MCXCL and MCXLAB-CL binaries are provided for Windows, Linux and Mac OS.
In all cases, the OpenCL library (libOpenCL.so*, OpenCL.dll or /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL on the Mac) must be preinstalled in your system. Typically, these libraries are automatically installed after you installed your integrated or discrete GPU graphics driver.
The lowest OpenCL support version is OpenCL 1.0. Essentially, nearly all OpenCL compliant processors can run MCXCL/MCXLAB-CL.
Step-by-step installation guide can be found in this link.
The below features have not yet been ported to MCXCL:
we are working hard to port these features to MCXCL and MCXLABCL.