   #[1]Monte Carlo eXtreme: GPU-based Monte Carlo Simulations

MCXCL - Monte Carlo eXtreme for OpenCL

A GPU-accelerated MC for heterogeneous computing platforms

   This work is described in the following paper

     * Leiming Yu, Fanny Nina-Paravecino, David Kaeli, Qianqian Fang,
       "[2]Scalable and massively parallel Monte Carlo photon transport
       simulations for heterogeneous computing platforms," J. Biomed. Opt.
       23(1), 010504 (2018).

          1. [3]Introduction

          2. [4]Supported Devices and Simulation Speed

          3. [5]Download

                3.1. [6]Binary package

                3.2. [7]Source code

          4. [8]Tutorial

          5. [9]Acknowledgement

1. Introduction

   MCXCL (or MCX for OpenCL) is a high-performance, highly scalable and
   general-purpose Monte Carlo photon transport simulator for biophotonics
   applications. Compared to [10]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 a [11]long list of processors, including NVIDIA
   GPUs, AMD CPUs and GPUs as well as Intel CPUs and (integrated) GPUs. A
   comparison between different CPUs/GPUs in [12]3 benchmark problems (and
   [13]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.

   [14]upload:mcxcl_benchmark_0118.png

     * Update: 11/14/2017, added AMD Vega 64 results

3. Download

3.1. Binary package

   Pre-compiled MCXCL binary packages (v2018) for Linux/Windows/MacOS can
   be [15]downloaded here.

   However, you are highly recommended to download the [16]MCXSuite.zip
   package for each platform. 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. Video tutorials regarding MCXStudio can
   be found [17]here.

3.2. Source code

   MCXCL is open-source! You can download the latest source code at
   [18]http://github.com/fangq/mcxcl.

4. Tutorial

   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
   [19]here.

          [20][mcxstudio_tutorial_2.png]

   For tutorials to use the command line mcxcl binary, please check out
   the below tutorial:

   [21]http://mcx.space/wiki/index.cgi?Demo/MCXCL

5. Acknowledgement

   We thank the funding support from the National Institutes of Health
   (NIH) under grants R01-GM114365 and R01-CA204443.

References

   1. http://mcx.space/wiki/index.cgi?action=rss
   2. https://www.spiedigitallibrary.org/journals/journal-of-biomedical-optics/volume-23/issue-01/010504/Scalable-and-massively-parallel-Monte-Carlo-photon-transport-simulations-for/10.1117/1.JBO.23.1.010504.full?SSO=1#ArticleLink
   3. http://mcx.space/wiki/index.cgi?MCXCL#Introduction
   4. http://mcx.space/wiki/index.cgi?MCXCL#Supported_Devices_and_Simulation_Speed
   5. http://mcx.space/wiki/index.cgi?MCXCL#Download
   6. http://mcx.space/wiki/index.cgi?MCXCL#Binary_package
   7. http://mcx.space/wiki/index.cgi?MCXCL#Source_code
   8. http://mcx.space/wiki/index.cgi?MCXCL#Tutorial
   9. http://mcx.space/wiki/index.cgi?MCXCL#Acknowledgement
  10. http://mcx.space/
  11. https://www.khronos.org/conformance/adopters/conformant-products/opencl
  12. https://github.com/fangq/mcxcl/tree/master/example/benchmark
  13. https://github.com/fangq/mcxcl_bench/blob/master/run_benchmarking.sh#L3
  14. http://mcx.space/wiki/upload/mcxcl_benchmark_0118.png
  15. http://mcx.space/wiki/index.cgi?Get
  16. http://mcx.space/wiki/index.cgi?Learn#mcxstudio
  17. http://mcx.space/wiki/index.cgi?Demo/MCXStudio
  18. http://github.com/fangq/mcxcl
  19. http://mcx.space/wiki/index.cgi?Demo/MCXStudio
  20. http://mcx.space/tutorials/mcxstudio/4_How_to_design_a_simulation_and_visualize_the_results.htm
  21. http://mcx.space/wiki/index.cgi?Demo/MCXCL
