From d526bbaee05f61c63535f8c463bac329043fb919 Mon Sep 17 00:00:00 2001 From: Dmitri Smirnov Date: Mon, 20 Apr 2026 14:32:43 -0400 Subject: [PATCH 1/2] docs(readme): rename project to simphony --- README.md | 58 +++++++++++++++++++++++----------------------- examples/README.md | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 2edf04e50..ad47b4553 100644 --- a/README.md +++ b/README.md @@ -44,46 +44,46 @@ environment, ensure that your system has the following tools installed: ## Build ```shell -git clone https://github.com/BNLNPPS/eic-opticks.git -cmake -S eic-opticks -B build +git clone https://github.com/BNLNPPS/simphony.git +cmake -S simphony -B build cmake --build build ``` ## Docker -Build latest `eic-opticks` image by hand: +Build latest `simphony` image by hand: ```shell -docker build -t ghcr.io/bnlnpps/eic-opticks:latest https://github.com/BNLNPPS/eic-opticks.git +docker build -t ghcr.io/bnlnpps/simphony:latest https://github.com/BNLNPPS/simphony.git ``` Build and run for development: ```shell -docker build -t ghcr.io/bnlnpps/eic-opticks:develop --target=develop . +docker build -t ghcr.io/bnlnpps/simphony:develop --target=develop . ``` Example commands for interactive and non-interactive tests: ```shell -docker run --rm -it -v $HOME/.Xauthority:/root/.Xauthority -e DISPLAY=$DISPLAY --net=host ghcr.io/bnlnpps/eic-opticks:develop +docker run --rm -it -v $HOME/.Xauthority:/root/.Xauthority -e DISPLAY=$DISPLAY --net=host ghcr.io/bnlnpps/simphony:develop -docker run --rm -it -v $HOME:/esi -v $HOME/eic-opticks:/workspaces/eic-opticks -e DISPLAY=$DISPLAY -e HOME=/esi --net=host ghcr.io/bnlnpps/eic-opticks:develop +docker run --rm -it -v $HOME:/esi -v $HOME/simphony:/workspaces/simphony -e DISPLAY=$DISPLAY -e HOME=/esi --net=host ghcr.io/bnlnpps/simphony:develop -docker run ghcr.io/bnlnpps/eic-opticks bash -c 'simg4ox -g tests/geom/sphere_leak.gdml -m tests/run.mac -c sphere_leak' +docker run ghcr.io/bnlnpps/simphony bash -c 'simg4ox -g tests/geom/sphere_leak.gdml -m tests/run.mac -c sphere_leak' ``` ## Singularity ```shell -singularity run --nv -B eic-opticks-prefix/:/opt/eic-opticks -B eic-opticks:/workspaces/eic-opticks docker://ghcr.io/bnlnpps/eic-opticks:develop +singularity run --nv -B simphony-prefix/:/opt/simphony -B simphony:/workspaces/simphony docker://ghcr.io/bnlnpps/simphony:develop ``` ## Running a test job at NERSC (Perlmutter) -To submit a test run of `eic-opticks` on Perlmutter, use the following example. Make sure to update +To submit a test run of `simphony` on Perlmutter, use the following example. Make sure to update any placeholder values as needed. ``` @@ -97,15 +97,15 @@ sbatch scripts/submit.sh #SBATCH -C gpu # constraint: use GPU partition #SBATCH -G 1 # request 1 GPU #SBATCH -q regular # queue -#SBATCH -J eic-opticks # job name +#SBATCH -J simphony # job name #SBATCH --mail-user= #SBATCH --mail-type=ALL #SBATCH -A m4402 # allocation account #SBATCH -t 00:05:00 # time limit (hh:mm:ss) # Path to your image on Perlmutter -IMAGE="docker:bnlnpps/eic-opticks:develop" -CMD='cd /src/eic-opticks && simg4ox -g $OPTICKS_HOME/tests/geom/sphere_leak.gdml -m $OPTICKS_HOME/tests/run.mac -c sphere_leak' +IMAGE="docker:bnlnpps/simphony:develop" +CMD='cd /src/simphony && simg4ox -g $OPTICKS_HOME/tests/geom/sphere_leak.gdml -m $OPTICKS_HOME/tests/run.mac -c sphere_leak' # Launch the container using Shifter srun -n 1 -c 8 --cpu_bind=cores -G 1 --gpu-bind=single:1 shifter --image=$IMAGE /bin/bash -l -c "$CMD" @@ -122,7 +122,7 @@ In Geant4, optical surface properties such as **finish**, **model**, and **type* These enums allow users to configure how optical photons interact with surfaces, controlling behaviors like reflection, transmission, and absorption based on physical models and surface qualities. The string values corresponding to these -enums (e.g. `"ground"`, `"glisur"`, `"dielectric_dielectric"`) can also be used directly in **GDML** files when defining +enums (e.g. "ground", "glisur", "dielectric_dielectric") can also be used directly in **GDML** files when defining `` elements for geometry. Geant4 will parse these attributes and apply the corresponding surface behavior. @@ -167,11 +167,11 @@ JSON config file (default `config/dev.json`). Key fields: | Torch photon generation | ✗ | ✗ | ✓ | ✓ | ✗ | | Photon input from text file | ✗ | ✗ | ✗ | ✗ | ✓ | | G4 optical photon tracking | ✓ | ✓ | ✓ | ✗ | ✗ | -| GPU simulation (eic-opticks) | ✓ | ✓ | ✓ | ✓ | ✓ | +| GPU simulation (Simphony) | ✓ | ✓ | ✓ | ✓ | ✓ | | Multi-threaded | ✓ | ✓ | ✗ | ✗ | ✗ | `GPUCerenkov` and `GPURaytrace` collect gensteps from charged particle interactions and -pass them to eic-opticks for GPU photon generation and tracing. `GPUPhotonSource` and +pass them to Simphony for GPU photon generation and tracing. `GPUPhotonSource` and `GPUPhotonSourceMinimal` instead generate photons directly from a torch configuration. `GPUPhotonSource` runs both G4 and GPU tracking for validation, while `GPUPhotonSourceMinimal` skips G4 tracking entirely for a lean simplistic code so showcase what is needed for GPU only. @@ -179,9 +179,9 @@ pass them to eic-opticks for GPU photon generation and tracing. `GPUPhotonSource distributions without code changes. -### GDML Scintillation Properties for Geant4 11.x + eic-opticks +### GDML Scintillation Properties for Geant4 11.x + Simphony -For scintillation to work with both Geant4 11.x and eic-opticks GPU simulation, the GDML +For scintillation to work with both Geant4 11.x and Simphony GPU simulation, the GDML must define properties using the correct syntax: 1. **Const properties** (yield, time constants) must use `coldim="1"` matrices: @@ -192,7 +192,7 @@ must define properties using the correct syntax: ``` -2. **Both old and new style property names** are required for eic-opticks compatibility: +2. **Both old and new style property names** are required for Simphony compatibility: ```xml @@ -227,7 +227,7 @@ and the **number of G4 threads**. For example: ``` Here setStackPhotons defines **whether G4 will propagate optical photons or -not**. In production eic-opticks (GPU) takes care of the optical photon propagation. +not**. In production Simphony (GPU) takes care of the optical photon propagation. Additionally the user has to define the **starting position**, **momentum** etc of the primary particles define in the **GeneratePrimaries** function in ```src/GPUCerenkov.h```. The hits of the optical photons are returned in the @@ -235,15 +235,15 @@ of the primary particles define in the **GeneratePrimaries** function in GPU RAM the execution of a GPU call should be moved to **EndOfEventAction** together with retriving the hits. -### Loading in geometry into EIC-Opticks +### Loading in geometry into Simphony -EIC-Opticks can import geometries with GDML format automatically. There are +Simphony can import geometries with GDML format automatically. There are about 10 primitives supported now, eg. G4Box. G4Trd or G4Trap are not supported yet, we are working on them. ```GPUCerenkov``` takes GDML files through arguments, eg. ```GPUCerenkov -g mygdml.gdml```. The GDML must define all optical properties of surfaces of materials including: -- Efficiency (used by EIC-Opticks to specify detection efficiency and assign +- Efficiency (used by Simphony to specify detection efficiency and assign sensitive surfaces) - Refractive index - Group velocity @@ -253,21 +253,21 @@ The GDML must define all optical properties of surfaces of materials including: ## Performance studies -In order to quantify the speed-up achieved by EIC-Opticks compared to G4 we +In order to quantify the speed-up achieved by Simphony compared to G4 we provide a python code that runs the same G4 simulation with and without tracking optical photons in G4. The difference of the runs will yield the time required to simulate photons. Meanwhile the same photons are simulated on GPU with -EIC-Opticks and the simulation time is saved. +Simphony and the simulation time is saved. ``` mkdir -p /tmp/out/dev mkdir -p /tmp/out/rel -docker build -t eic-opticks:perf-dev --target=develop -docker run --rm -t -v /tmp/out:/tmp/out eic-opticks:perf-dev run-performance -o /tmp/out/dev +docker build -t simphony:perf-dev --target=develop +docker run --rm -t -v /tmp/out:/tmp/out simphony:perf-dev run-performance -o /tmp/out/dev -docker build -t eic-opticks:perf-rel --target=release -docker run --rm -t -v /tmp/out:/tmp/out eic-opticks:perf-rel run-performance -o /tmp/out/rel +docker build -t simphony:perf-rel --target=release +docker run --rm -t -v /tmp/out:/tmp/out simphony:perf-rel run-performance -o /tmp/out/rel ``` ### Debug Analysis with `optiphy/ana/photon_history_summary.py` diff --git a/examples/README.md b/examples/README.md index 4372fce1b..00c69aa89 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -Assuming eic-opticks is properly installed on the system, compile and run this +Assuming Simphony is properly installed on the system, compile and run this example by simply doing from this directory: ```bash From d575abe7314a85fe838036f88553f940636f56e3 Mon Sep 17 00:00:00 2001 From: Dmitri Smirnov Date: Tue, 21 Apr 2026 11:15:30 -0400 Subject: [PATCH 2/2] refactor!: rename project identifiers from eic-opticks to simphony Rename project-facing identifiers and references from eic-opticks to simphony across build, container, examples, scripts, and DD4hep plugin docs. - CMake: project name and downstream package usage switched to simphony - Examples: update find_package/target namespaces and include paths - Devcontainer: rename container names and GHCR base image references - Dockerfile: update OPTICKS_* install/home/build paths to /opt/simphony and /workspaces/simphony - Scripts/docs: rename job/image/path and user-facing text references BREAKING CHANGE: CMake consumers must migrate from find_package(eic-opticks) and eic-opticks::* targets/includes to find_package(simphony) and simphony::*. --- dd4hepplugins/CMakeLists.txt | 18 +++++++++--------- dd4hepplugins/OpticsEvent.hh | 2 +- dd4hepplugins/OpticsRun.hh | 2 +- dd4hepplugins/OpticsSteppingAction.hh | 2 +- dd4hepplugins/examples/benchmark_drich.py | 6 +++--- .../examples/benchmark_gpu_speedup.py | 4 ++-- .../examples/geometry/raindrop_dd4hep.xml | 6 +++--- .../examples/test_raindrop_dd4hep_cpu.py | 2 +- .../examples/test_raindrop_dd4hep_gpu.py | 10 +++++----- dd4hepplugins/examples/validate_drich.py | 2 +- examples/CMakeLists.txt | 4 ++-- examples/simphox.cpp | 10 +++++----- optiphy/tools/run_performance.py | 2 +- scripts/submit.sh | 6 +++--- 14 files changed, 38 insertions(+), 38 deletions(-) diff --git a/dd4hepplugins/CMakeLists.txt b/dd4hepplugins/CMakeLists.txt index a3a971b90..8db49d27f 100644 --- a/dd4hepplugins/CMakeLists.txt +++ b/dd4hepplugins/CMakeLists.txt @@ -1,11 +1,11 @@ #------------------------------- -*- cmake -*- -------------------------------# -# eic-opticks DD4hep integration plugins +# simphony DD4hep integration plugins # -# Builds DD4hep action plugins that integrate eic-opticks GPU-accelerated +# Builds DD4hep action plugins that integrate simphony GPU-accelerated # optical photon simulation into DD4hep/Geant4. # -# Works both as part of the top-level eic-opticks build (in-tree) and as a -# standalone project against an installed eic-opticks. +# Works both as part of the top-level simphony build (in-tree) and as a +# standalone project against an installed simphony. # # Usage from a DD4hep steering file: # OpticsRun -- initializes/finalizes G4CXOpticks per run @@ -17,11 +17,11 @@ if(NOT TARGET G4CX) cmake_minimum_required(VERSION 3.18 FATAL_ERROR) project(ddeicopticks VERSION 0.1.0 LANGUAGES CXX) find_package(DD4hep REQUIRED COMPONENTS DDG4 DDCore) - find_package(eic-opticks REQUIRED) + find_package(simphony REQUIRED) find_package(Geant4 REQUIRED) - set(_g4cx eic-opticks::G4CX) - set(_u4 eic-opticks::U4) - set(_sysrap eic-opticks::SysRap) + set(_g4cx simphony::G4CX) + set(_u4 simphony::U4) + set(_sysrap simphony::SysRap) else() # In-tree: DD4hep already found by parent, targets use local names find_package(Geant4 REQUIRED) @@ -47,7 +47,7 @@ dd4hep_add_plugin(ddeicopticks ${_u4} ${_sysrap} ) -# STANDALONE changes class export macros in eic-opticks headers; +# STANDALONE changes class export macros in simphony headers; # only needed when building outside the main eic-opticks tree. if(NOT TARGET G4CX) target_compile_definitions(ddeicopticks PRIVATE STANDALONE) diff --git a/dd4hepplugins/OpticsEvent.hh b/dd4hepplugins/OpticsEvent.hh index b7ca518c1..d26d01455 100644 --- a/dd4hepplugins/OpticsEvent.hh +++ b/dd4hepplugins/OpticsEvent.hh @@ -12,7 +12,7 @@ namespace ddeicopticks { //---------------------------------------------------------------------------// /*! - * DDG4 action plugin for eic-opticks event-level GPU simulation. + * DDG4 action plugin for simphony event-level GPU simulation. * * At begin-of-event: prepares GPU event buffer (SEvt). * At end-of-event: triggers GPU optical photon simulation via diff --git a/dd4hepplugins/OpticsRun.hh b/dd4hepplugins/OpticsRun.hh index a9fec1e4b..446d9595f 100644 --- a/dd4hepplugins/OpticsRun.hh +++ b/dd4hepplugins/OpticsRun.hh @@ -8,7 +8,7 @@ namespace ddeicopticks { //---------------------------------------------------------------------------// /*! - * DDG4 action plugin for eic-opticks run-level lifecycle. + * DDG4 action plugin for simphony run-level lifecycle. * * At begin-of-run: initializes G4CXOpticks geometry from the Geant4 world * volume, translating the geometry to OptiX acceleration structures on GPU. diff --git a/dd4hepplugins/OpticsSteppingAction.hh b/dd4hepplugins/OpticsSteppingAction.hh index 0439b0f90..b8a100b84 100644 --- a/dd4hepplugins/OpticsSteppingAction.hh +++ b/dd4hepplugins/OpticsSteppingAction.hh @@ -11,7 +11,7 @@ namespace ddeicopticks * DDG4 stepping action that intercepts standard Geant4 Cerenkov and * Scintillation processes and collects gensteps for GPU simulation. * - * This follows the same approach as eic-opticks GPUCerenkov example: + * This follows the same approach as simphony GPUCerenkov example: * use standard G4Cerenkov / G4Scintillation, then read back the photon * count via GetNumPhotons() and pack gensteps for the GPU. */ diff --git a/dd4hepplugins/examples/benchmark_drich.py b/dd4hepplugins/examples/benchmark_drich.py index 3b50364ed..eecfb564b 100644 --- a/dd4hepplugins/examples/benchmark_drich.py +++ b/dd4hepplugins/examples/benchmark_drich.py @@ -6,14 +6,14 @@ cpu -- Optical photons generated AND tracked on CPU by Geant4 baseline -- Optical photons generated but NOT tracked (SetStackPhotons=false) - gpu -- Optical photons simulated on GPU via eic-opticks + gpu -- Optical photons simulated on GPU via simphony Speedup = CPU_optical_time / GPU_simulate_time where CPU_optical_time = T(cpu) - T(baseline) and GPU_simulate_time = wall time of G4CXOpticks::simulate() Prerequisites: - - Spack environment activated with DD4hep, Geant4, eic-opticks + - Spack environment activated with DD4hep, Geant4, simphony - `spack load epic` (sets DETECTOR_PATH to EPIC geometry) - DD4HEP_LIBRARY_PATH includes /opt/local/lib (eic-opticks plugins) @@ -253,7 +253,7 @@ def run_all(num_events, photon_threshold=0, multiplicity=100, geometry="1sector" label = { "baseline": "baseline (no photon tracking)", "cpu": "cpu (photons tracked on CPU)", - "gpu": "gpu (photons on GPU via eic-opticks)", + "gpu": "gpu (photons on GPU via simphony)", }[mode] extra = f", threshold={pt}" if pt > 0 else "" print(f"\n{'='*60}") diff --git a/dd4hepplugins/examples/benchmark_gpu_speedup.py b/dd4hepplugins/examples/benchmark_gpu_speedup.py index 15dadc2a6..5f21a7126 100644 --- a/dd4hepplugins/examples/benchmark_gpu_speedup.py +++ b/dd4hepplugins/examples/benchmark_gpu_speedup.py @@ -6,7 +6,7 @@ cpu -- Optical photons generated AND tracked on CPU by Geant4 baseline -- Optical photons generated but NOT tracked (SetStackPhotons=false) - gpu -- Optical photons simulated on GPU via eic-opticks + gpu -- Optical photons simulated on GPU via simphony Speedup = CPU_optical_time / GPU_simulate_time where CPU_optical_time = T(cpu) - T(baseline) @@ -194,7 +194,7 @@ def run_all(num_events, photon_threshold=0): label = { "baseline": "baseline (no photon tracking)", "cpu": "cpu (photons tracked on CPU)", - "gpu": "gpu (photons on GPU via eic-opticks)", + "gpu": "gpu (photons on GPU via simphony)", }[mode] extra = f", threshold={pt}" if pt > 0 else "" print(f"\n{'='*60}") diff --git a/dd4hepplugins/examples/geometry/raindrop_dd4hep.xml b/dd4hepplugins/examples/geometry/raindrop_dd4hep.xml index ff964eb3f..28140b3fb 100644 --- a/dd4hepplugins/examples/geometry/raindrop_dd4hep.xml +++ b/dd4hepplugins/examples/geometry/raindrop_dd4hep.xml @@ -1,9 +1,9 @@ - - Minimal optical geometry for eic-opticks DD4hep integration testing. - Matches eic-opticks tests/geom/opticks_raindrop_with_scintillation.gdml + Minimal optical geometry for simphony DD4hep integration testing. + Matches simphony tests/geom/opticks_raindrop_with_scintillation.gdml Nested boxes: Vacuum(240) > Lead(220) > Air(200) > Water(100) mm Water has RINDEX and scintillation. Air has RINDEX. Border surface between air medium and lead container (MediumContainerSurf). diff --git a/dd4hepplugins/examples/test_raindrop_dd4hep_cpu.py b/dd4hepplugins/examples/test_raindrop_dd4hep_cpu.py index b1cdee366..857fd7f84 100644 --- a/dd4hepplugins/examples/test_raindrop_dd4hep_cpu.py +++ b/dd4hepplugins/examples/test_raindrop_dd4hep_cpu.py @@ -2,7 +2,7 @@ """ CPU-only raindrop optical photon test via DD4hep. -Uses standard G4OpticalPhysics (no eic-opticks GPU plugins). +Uses standard G4OpticalPhysics (no simphony GPU plugins). Optical photons are tracked on CPU by Geant4 and collected as Geant4Tracker::Hit via the sensitive detector. diff --git a/dd4hepplugins/examples/test_raindrop_dd4hep_gpu.py b/dd4hepplugins/examples/test_raindrop_dd4hep_gpu.py index ad6957295..77c422d3b 100644 --- a/dd4hepplugins/examples/test_raindrop_dd4hep_gpu.py +++ b/dd4hepplugins/examples/test_raindrop_dd4hep_gpu.py @@ -1,14 +1,14 @@ #!/usr/bin/env python3 """ -Test eic-opticks DD4hep plugins with the raindrop geometry. +Test simphony DD4hep plugins with the raindrop geometry. Geometry: Vacuum world > Lead(220mm) > Air(200mm) > Water(100mm) - Water has RINDEX=1.333 and scintillation properties - Air has RINDEX=1.0 - One border surface between water drop and air medium - - Very short volume names (Ct, Md, Dr) -- avoids eic-opticks buffer overflow + - Very short volume names (Ct, Md, Dr) -- avoids simphony buffer overflow -This uses the same geometry as eic-opticks's own raindrop test, +This uses the same geometry as simphony's own raindrop test, but expressed as DD4hep compact XML instead of GDML. Approach: standard G4OpticalPhysics (G4Cerenkov + G4Scintillation) runs on CPU. @@ -16,7 +16,7 @@ OpticsEvent triggers GPU simulation and injects hits into DD4hep collections. Prerequisites: - - Spack environment activated (ROOT, DD4hep, eic-opticks on PYTHONPATH/LD_LIBRARY_PATH) + - Spack environment activated (ROOT, DD4hep, simphony on PYTHONPATH/LD_LIBRARY_PATH) - DD4hepINSTALL set (for elements.xml lookup) - libddeicopticks.so and libRaindropGeo.so on DD4HEP_LIBRARY_PATH """ @@ -75,7 +75,7 @@ def run(): ph.addPhysicsConstructor(str('G4OpticalPhysics')) kernel.physicsList().adopt(ph) - # --- eic-opticks GPU plugins --- + # --- simphony GPU plugins --- # SteppingAction: intercepts G4Cerenkov/G4Scintillation and collects gensteps stepping = DDG4.SteppingAction(kernel, 'OpticsSteppingAction/OpticsStep1') diff --git a/dd4hepplugins/examples/validate_drich.py b/dd4hepplugins/examples/validate_drich.py index ca33d5edc..bf19a9aca 100644 --- a/dd4hepplugins/examples/validate_drich.py +++ b/dd4hepplugins/examples/validate_drich.py @@ -2,7 +2,7 @@ """Run GPU and CPU with simplified dRICH geometry (no non-optical PDU components).""" import math, os, sys, numpy as np -_SCRIPT_DIR = "/tmp/eic-opticks/dd4hepplugins/examples" +_SCRIPT_DIR = "/tmp/simphony/dd4hepplugins/examples" _GEOM_DIR = os.path.join(_SCRIPT_DIR, "geometry") sys.path.insert(0, _SCRIPT_DIR) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 972441f73..9b14fae1d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -6,9 +6,9 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -find_package(eic-opticks REQUIRED) +find_package(simphony REQUIRED) add_executable(simphox simphox.cpp) -target_link_libraries(simphox eic-opticks::gphox eic-opticks::G4CX eic-opticks::SysRap) +target_link_libraries(simphox simphony::gphox simphony::G4CX simphony::SysRap) install(TARGETS simphox) diff --git a/examples/simphox.cpp b/examples/simphox.cpp index 59bacaf5a..5f346cb6d 100644 --- a/examples/simphox.cpp +++ b/examples/simphox.cpp @@ -2,12 +2,12 @@ #include #include -#include "eic-opticks/g4cx/G4CXOpticks.hh" -#include "eic-opticks/sysrap/NP.hh" -#include "eic-opticks/sysrap/sphoton.h" +#include "simphony/g4cx/G4CXOpticks.hh" +#include "simphony/sysrap/NP.hh" +#include "simphony/sysrap/sphoton.h" -#include "eic-opticks/config.h" -#include "eic-opticks/torch.h" +#include "simphony/config.h" +#include "simphony/torch.h" using namespace std; diff --git a/optiphy/tools/run_performance.py b/optiphy/tools/run_performance.py index da6665ee9..187da3098 100755 --- a/optiphy/tools/run_performance.py +++ b/optiphy/tools/run_performance.py @@ -18,7 +18,7 @@ def get_opticks_home(): """Get OPTICKS_HOME from environment, warn if not set.""" opticks_home = os.environ.get("OPTICKS_HOME") if opticks_home is None: - print("Warning: $OPTICKS_HOME is not defined, so this script should be called from the eic-opticks directory.") + print("Warning: $OPTICKS_HOME is not defined, so this script should be called from the simphony directory.") return Path(".") return Path(opticks_home) diff --git a/scripts/submit.sh b/scripts/submit.sh index cca9aec42..a40a7bf95 100644 --- a/scripts/submit.sh +++ b/scripts/submit.sh @@ -4,15 +4,15 @@ #SBATCH -C gpu # constraint: use GPU partition #SBATCH -G 1 # request 1 GPU #SBATCH -q regular # queue -#SBATCH -J eic-opticks # job name +#SBATCH -J simphony # job name #SBATCH --mail-user= #SBATCH --mail-type=ALL #SBATCH -A m4402 # allocation account #SBATCH -t 00:05:00 # time limit (hh:mm:ss) # Path to your image on Perlmutter -IMAGE="docker:bnlnpps/eic-opticks:develop" -CMD='cd /src/eic-opticks && OPTICKS_MAX_SLOT=1000000 simg4ox -g $OPTICKS_HOME/tests/geom/sphere_leak.gdml -m $OPTICKS_HOME/tests/run.mac -c sphere_leak' +IMAGE="docker:bnlnpps/simphony:develop" +CMD='cd /src/simphony && OPTICKS_MAX_SLOT=1000000 simg4ox -g $OPTICKS_HOME/tests/geom/sphere_leak.gdml -m $OPTICKS_HOME/tests/run.mac -c sphere_leak' # Launch the container using Shifter srun -n 1 -c 8 --cpu_bind=cores -G 1 --gpu-bind=single:1 shifter --image=$IMAGE /bin/bash -l -c "$CMD"