The hml-env provides a development environment for interdisciplinary research between high-energy physics and artificial intelligence. Based on the included software and libraries, it is divided into three environments:
-
base: Provides the fundamental software for phenomenological research in high-energy physics and can generate simulated collision events. -
lite: Builds uponbaseby adding support for TensorFlow 2.16. -
dev: Builds uponliteby adding support for a complete machine learning framework, enabling comprehensive research.
base |
lite |
dev |
|
|---|---|---|---|
| Ubuntu 22.04 | ✔ | ✔ | ✔ |
| CUDA 12.2.2 | ✔ | ✔ | |
| cuDNN 8 | ✔ | ✔ | |
| ROOT 6.28.12 | ✔ | ✔ | ✔ |
| Delphes 3.5.0 | ✔ | ✔ | ✔ |
| Madgraph5 (MG5) 3.4.2 | ✔ | ✔ | ✔ |
| HepMC 2.06.09 (by MG5) | ✔ | ✔ | ✔ |
| LHAPDF 6.5.4 (by MG5) | ✔ | ✔ | ✔ |
| PYTHIA 8.311 (by MG5) | ✔ | ✔ | ✔ |
| Tensorflow 2.16.1 (include Keras 3) | ✔ | ✔ | |
| PyTorch 2.3.0 | ✔ | ||
| Jax 0.4.28 | ✔ |
-
liteanddevare built based on the imagenvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04. Before starting the container, you need to install the NVIDIA Container Toolkit. Please refer to here for installation instructions. -
Delphes is installed separately for performance considerations during compilation. The software installed by MG5 has also undergone some minor modifications to utilize all CPU cores during compilation.
-
All three machine learning frameworks support GPU and can be used as backends for Keras versions 3 and above.
-
The memory growth of TensorFlow and Jax is limited to prevent a single program from occupying the entire GPU memory at once.
-
Launching the Container and Generating Events with Madgraph5:
docker run -it --rm star9daisy/hml-env:3.0.0-base
After entering the container, type
mg5_aMCto open the Madgraph5 command-line interface. -
Starting the Container in the Background and Attaching with VSCode:
docker run -itd --gpus all star9daisy/hml-env:3.0.0-dev
After starting, attach VSCode to the running container, allowing you to open the container as if it were a local directory.
-
The image includes an SSH service, and you can add port mappings and passwords when starting the container:
docker run -itd --gpus all --publish <port>:22 --env PASSWORD=<password> star9daisy/hml-env:3.0.0-dev
When this container is running on a remote server, doing so can save a step: changing from local → remote → container to local → container. Use the following command to SSH directly into the container:
ssh -p <port> root@<remote server ip>