Release Notes for Monte Carlo eXtreme - OpenCL v2025.10 (1.8)

code name: Infinity, released on October 12, 2025

Click this link to download MCX-CL/MCXLAB-CL v2025.10

Acknowledgement: This software release is made possible with the funding support from the NIH/NIGMS under grant R01-GM114365.

1. What's New
2. Introduction
3. System requirements
4. Reference

1. What's New

MCX-CL v2025.10 ports a number of major features from CUDA-based MCX to OpenCL. Notable features ported to MCX-CL include

  • multi-source support (introduced to MCX in v2024.2)
  • "hyperboloid" and "ring" source times (introduced in Oct 2021 and Sep 2023, respectively)
  • Russian roulette support (introduced in v2017.3, but never ported to mcxcl)
  • support multi-source replay (fangq/mcx#250)

As of v2025.10, MCX-CL contains nearly all features in MCX except the following

  • SVMC (MCX v2021.2)
  • polarized light simulations (MCX v2023)
  • mua/mus/g/n float format (MCX v2024.2)
  • RF replay (MCX v2023)
  • international language support (MCX v2025.10)

In addition, in this release, we also added the following key new features

  • enable --optlevel 3 by default, boosting speed by 30%-100% on various devices
  • pmcxcl now supports Apple silicon
  • pmcxcl is updated to import new pmcx utility functions introduced in v2025.10
  • optimize thread configuration to accelerate Arm Mali GPU, speed-up by 6x

The detailed updates can be found in the below change log

  • 2025-10-01 [a4e9f1b] [bug] fix failing multisrc example after fixing -o 4 warnings
  • 2025-10-01 [f967e86] [bug] fix hyperboloid and slit sources, add demo script
  • 2025-10-01 [8e61287] [clang] fix additional clang warnings
  • 2025-10-01 [a396631] [clang] fix all clang warnings on macos
  • 2025-10-01 [06d2d5e] [opencl] fix ocl compilation warnings
  • 2025-09-30 [17c9faa] [bug] fix multi-source replay bug, ported from fangq/mcx#250
  • 2025-09-29 [ff45ab3] [bug] add the missing gcfg constants for -o 4 optimization
  • 2025-09-26 [f4e0f0d] [doc] update documentation for v2025.10
  • 2025-09-26 [aa2e389] [memory] release event objects, did not fix memory leak
  • 2025-09-20 [c5cc650] [feat] port Russian Roulette, ring src, hyperboloid src from mcx to mcxcl
  • 2025-09-19 [a9dd9af] [ci] fix upload ci error
  • 2025-09-19 [3a81111] [ci] restore the removed PATH setting
  • 2025-09-19 [817e505] [ci] fix octave windows path
  • 2025-09-19 [db396e8] [bug] fix multi-source bug after porting fangq/mcx#163
  • 2025-09-19 [afc0db9] [feat] initial port of the multi-source support, fangq/mcx#163
  • 2025-08-25 [f931612] [pmcxcl] bump version to 0.3.2 to include expanded mcx utils functions
  • 2025-07-20 [4f1de0e] [ci] use windows-2022 as 2019 has retired
  • 2025-07-20 [a38255b] [pmcxcl] build for apple silicon
  • 2025-04-23 [eb39147] [pmcxcl] fix pmcxcl ci build, bump version to 0.3.1
  • 2025-04-23 [18ea941] [feat] optimize mcxcl for Arm Mali GPU, gain 6x speedup

2. Introduction

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.

3. System requirements

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.

4. Reference

Powered by Habitat