docs: describe OpenMP CPU backend build and usage - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
HTML git clone git://src.adamsgaard.dk/sphere
DIR Log
DIR Files
DIR Refs
DIR LICENSE
---
DIR commit ae2babe0ed346ec9590f87deef5f5fdf8ac4c24c
DIR parent 8445fdaa62d4b38157b8aabcdefee867229566f0
HTML Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Sat, 4 Jul 2026 23:46:51 +0200
docs: describe OpenMP CPU backend build and usage
Diffstat:
M INSTALL.sh | 9 +++++++++
M README.rst | 15 +++++++++++++--
2 files changed, 22 insertions(+), 2 deletions(-)
---
DIR diff --git a/INSTALL.sh b/INSTALL.sh
@@ -1,2 +1,11 @@
+# CUDA backend (default). Requires the CUDA toolkit and an Nvidia GPU.
export NVSDKCOMPUTE_ROOT=/home/adc/NVIDIA_CUDA-5.0_Samples
cmake . && make
+
+# OpenMP CPU backend. No CUDA required; runs on any multi-core CPU.
+# On macOS with Apple clang, install the OpenMP runtime first:
+# brew install libomp
+# Build with:
+# cmake -DSPHERE_GPU=OFF . && make
+# Control the thread count and pinning at runtime with:
+# OMP_NUM_THREADS=8 OMP_PROC_BIND=true ./sphere <input>
DIR diff --git a/README.rst b/README.rst
@@ -5,9 +5,20 @@ sphere readme
allows for optional simulation of two-way coupled fluid flow using the
Navier-Stokes or Darcy formulations.
+Two computational backends are available from the same code base:
+
+- **CUDA** (default): ``cmake . && make``. Requires the CUDA toolkit and an
+ Nvidia GPU with proper support for double precision floating point.
+- **OpenMP CPU**: ``cmake -DSPHERE_GPU=OFF . && make``. Runs on any multi-core
+ CPU, including arm64 macOS. On macOS with Apple clang, install the OpenMP
+ runtime first with ``brew install libomp``. Select the number of threads at
+ runtime with the ``OMP_NUM_THREADS`` environment variable, and consider
+ setting ``OMP_PROC_BIND=true`` for thread pinning. The raytracer
+ (``sphere --render``) is only available with the CUDA backend.
+
A powerful Nvidia GPU with proper support for double precision floating is
-highly recommended. ``sphere`` has been tested with Nvidia Tesla GPUs, and has
-successfully been employed on the clusters `Grendel
+highly recommended. ``sphere`` has been tested with Nvidia Tesla GPUs, and has
+successfully been employed on the clusters `Grendel
<https://www.cscaa.dk/grendel/hardware/>`_ (Aarhus University), `ICME
<https://icme.stanford.edu/computer-resources/gpu-cluster>`_ (Stanford
University), `Comet <https://www.sdsc.edu/services/hpc/hpc_systems.html#comet>`_