System¶
These are low-level system options set up once per program execution, such as
enabling GPU. They are not loaded by the Problem
definition but
are used when Setting up problems.
-
struct System
Set up system parameters defined once at program startup.
- Todo:
Add OpenMP options
Add MPI options
Add Logger verbosity
Public Members
-
std::map<std::string, std::string> environment
Environment variables used for program setup/diagnostic.
-
std::optional<Device> device
Optional: activate GPU.
-
struct Device
Set up GPU capabilities and debugging options.
Stream sharing and synchronization might be helpful for debugging potential race conditions or improving timing accuracy (at the cost of reducing performance).
The CUDA heap and stack sizes may be needed for VecGeom, which has dynamic resource requirements.
- Todo:
Move the
CELER_DEVICE_ASYNC
environment variable here