MCX-CL v2025 (Harmonic)
Monte Carlo eXtreme (MCX-CL) - OpenCL Edition
v2025
- Author: Qianqian Fang (q.fang at neu.edu)
- License: GNU General Public License version 3 (GPLv3)
- Version: 1.6 (v2025, Harmonic)
- Website: https://mcx.space
- Python module: https://pypi.org/project/pmcxcl/
Download
- Please download pre-compiled packages from https://mcx.space/wiki/?Get
- Full ChangeLog: https://mcx.space/wiki/index.cgi?MCXCL/ChangeLog
- Release note: https://mcx.space/wiki/index.cgi?MCXCL/Doc/ReleaseNotes/v2025
What's New
MCX-CL v2025 is a maintenance release with multiple bug fixes and minor new features.
It is highly recommended to upgrade for all users.
Notable major bug fixes include
-
a high priority bug fangq/mcx#222, introduced in 198cd34, was fixed. this bug affects all simulations
since v2023. Particularly, when a photon has a long pathlength, with weight drops to numerical 0,
its pathlength data is carried in the immediately launched new photon, causing skews in the
detected photon pathlength distributions -
multi-GPU simulations was not working (serialized) in v2024.2, this has been fixed
-
further updates to the handling of low absorption medium (fangq/mcx#164), previously affect not-so-low mua values
-
fix incorrect
angleinvcdfandinvcdfbuffer length, ported from fangq/mcx#233 -
fix missing
nscatoutput due to incorrect macro, fix #56 -
add missing
--maxjumpdebugflag, accept float, fix #54 -
avoid double-base64-encoding when -Z 2 is used, fangq/mcx#219
-
for all brain related simulations, we have updated the CSF mua value of 0.004/mm that was
previously used in Custo et al. 2006 paper to 0.0004/mm, matching its upstream reference Strangman et al. 2003.
However, we want to highlight that both literature may not provide the best mua value for CSF - as such low
mua/mus CSF properties are mostly for CSF in the inner part of the brain, but not representiative to those in
the subarachnoid space. A few literature have shown that CSF in the subarachnoid space may have a higher
mus' value, in the range between 0.16/mm to 0.32/mm, as shown in Okada et al. 2003 -
[Okada_2003] E. Okada and D. T. Delpy, “Near-infrared light propagation in an adult head model. I. Modeling of low-level scattering in the cerebrospinal fluid layer,” Applied Optics 42, 2906–2914 (2003)
-
[Custo_2006] A. Custo, W. M. Wells III., A. H. Barnett, et al., “Effective scattering coefficient of the cerebral spinal fluid in adult head models for diffuse optical imaging,” Applied Optics 45, 4747 (2006)
-
[Strangman_2003] G. Strangman, M. A. Franceschini, and D. A. Boas, “Factors affecting the accuracy of near-infrared spectroscopy concentration calculations for focal changes in oxygenation parameters,” NeuroImage 18, 865–879 (2003)
In addition, in this release, we also added the following key new features
- optimize thread configurations on Apple processors (M1/M2/M3/M4) and achieve 7x speed acceleration
- the new
-N/--netcommand line flag allows one to browse and run growing number of community-contributed
simulations hosted on https://neurojson.io (one can browse the list at https://neurojson.org/db/mcx) - mcx can read stdin (standard input) using pipe, allow one to use advanced text processing utilities in the shell,
such assed, perl, jqto modify JSON inputs at runtime. For examplemcx -N cube60 | jq '.Forward.Dt=1e-10' | mcx -f - a new shortcut option
-Qfor--benchto conveniently browse and run built-in benchmarks - mcxlabcl and pmcxcl cam set
cfg.flog=1or 0 to disable printing of mcxcl banner
The detailed updates can be found in the below change log
- 2025-01-23 [2a9476b] [feat] support reading pipe from command line with -f -
- 2025-01-22 [febd932] [bug] fix incorrect per-voxel pathlength when mua->0, fangq/mcx#164
- 2025-01-21 [3640d79] [bug] fix windows -N error
- 2025-01-21 [44f63c0] [cmake] update cmake to add -N support
- 2025-01-20 [6de71b0] [neurojson] avoid needing c++11, fix ci
- 2025-01-20 [3cb78c4] [ci] fix mac warnings and errors
- 2025-01-20 [29b0f3b] [feat] add -N/--net to download simulations from NeuroJSON.io, add -Q
- 2024-11-13 [d79f6ed] [ci] remove mac local file
- 2024-11-13 [96b8dbc] [ci] speedup macos-13 and windows octave download
- 2024-11-13 [299b920] [ci] add install octave using dmg
- 2024-11-13 [f8bb370] [ci] add windows octave mex build back
- 2024-09-30 [0f642c3] [pmcxcl] bump pmcxcl version to 0.2.1 to include fix in fangq/mcx#233
- 2024-09-29 [42917da] [bug] fix incorrect angleinvcdf and invcdf length, fangq/mcx#233
- 2024-09-14 [f15814c] [ci] revert pybind11 version further for python3.6
- 2024-09-14 [d3baf8c] [ci] add ubuntu-24.04 and macos-14
- 2024-09-14 [e2fa087] [ci] remove DL_LDFLAGS
- 2024-09-14 [dd99f92] [ci] macos ci fails with -shared
- 2024-09-14 [7a3e4aa] [ci] test without macos-14
- 2024-09-13 [4b9e21b] [bug] fix the potential typo in Custo et al for CSF mua, fangq/mcx#232
- 2024-09-11 [c13dcf2] [ci] remove upx as github disabled upx for macos
- 2024-09-11 [2191885] [ci] allow make oct to link with OpenCL on macos
- 2024-09-03 [7c57318] [ci] fix action alert related to download-artifact https://github.com/NeuroJSON/zmat/security/dependabot/1
- 2024-08-20 [8f84acf] [ci] use gcc-12 on macos runner
- 2024-08-18 [d7defeb] [bug] fix lzma memory leakage, NeuroJSON/zmat#11, lloyd/easylzma#4
- 2024-07-19 [9c86f6b] [bug] fix multi-gpu serialization bug on nvidia GPUs the bug was introduced in 9b4d76f
- 2024-06-12 [953c4e9] [ci] remove compiler warnings
- 2024-06-12 [57612d0] [test] make mcxcl pass all tests on Alder lake Intel iGPU
- 2024-06-12 [4609451] [bug] detector radius is not squared, fix #58
- 2024-06-11 [2b91626] [intel] pass all tests and remove all warnings on old i7-2635QM on mac
- 2024-06-11 [59d88a0] [test] sync test script between mcx and mcxcl after #57
- 2024-06-11 [88899f9] [bug] reset replay.tof when tof too big, improve replay test, fix #57
- 2024-06-09 [6e91fe3] [opencl] optimizing thread number on Apple silicon, gain 7x speedup
- 2024-06-09 [c2bbf7f] [ci] test on macos-13
- 2024-06-09 [7b558a4] [bug] fix colin27 failure on Apple silicon, fix #49
- 2024-06-08 [93c589c] [ci] trying to fix macos-12 build
- 2024-06-08 [9e84ecc] [bug] apply the same patch to ensure shared mem reset, fangq/mcx#222
- 2024-06-08 [1154916] [bug] fix missing nscat output due to incorrect macro, fix #56
- 2024-06-05 [8918150] [bug] add missing --maxjumpdebug flag, accept float, fix #54
- 2024-06-04 [4b00f6d] [bug] fix double fclose error, close #53
- 2024-04-25 [027cc55] [bug] avoid double-base64-encoding when -Z 2 is used, fangq/mcx#219
- 2024-03-29 [cbfa564] [ci] modify DL_LDFLAGS
- 2024-03-29 [ac879dc] [ci] revert LDFLAGS changes to compare difference on macos-12
- 2024-03-29 [d175187] [ci] print verbose mkoctfile log to debug macos-12
- 2024-03-29 [334c882] [package] copy LFLAGS to LDFLAGS, close #50