System¶
Some low-level system options, such as enabling the GPU, are set up once per
program execution. They are not loaded by the Problem definition
but are used by the both framework integrations and standalone applications.
-
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_ASYNCenvironment variable here