MILC is a collaborative project used and maintained by scientists studying the theory of strong interactions of subatomic physics, otherwise referred to as quantum chromodynamics (QCD).
MILC
MILC is a collaborative project used and maintained by scientists studying the theory of strong interactions of subatomic physics, otherwise referred to as quantum chromodynamics (QCD). MILC performs simulations of four-dimensional SU(3) lattice gauge theory on MIMD parallel machines. MILC is publicly available for research purposes and publications of work using MILC or derivatives of this code should acknowledge this use.
System requirements
Before running the NGC MILC container please ensure your system meets the following requirements.
- One of the following container runtimes
- nvidia-docker
- Singularity >= 3.1
- One of the following NVIDIA GPU(s)
- Pascal(sm60)
- Volta (sm70)
- Ampere (sm80)
- Hopper (sm90)
x86_64
- CPU with AVX instruction support
- One of the following CUDA driver versions
- r520 (>=.61.05)
- >= 450.80.02
arm64
- Marvell ThunderX2 CPU
Examples
The following examples demonstrate how to run the NGC MILC container on a single GPU using the SC15 student cluster competition benchmark.
The SC15 student cluster competition benchmark script is located
in the /workspace/examples directory inside of the container. Please
note that the SC15 cluster data will be downloaded by the script if it is not
already available in the directory mounted to /data in the container.
Throughout this example the container version will be referenced as $TAG, replace this with the tag you wish to run.
Executables
su3_rhmd_hisq: primary MILC application binary
Example command form:
su3_rhmd_hisq -geom $GEOM $INPUT_FILE $OUTPUT_FILE
Where
$GEOM: a grid of virtual processors for GPU optimization$INPUT_FILE: Input file to be processed$OUTPUT_FILE: file in which to write results to
Running with nvidia-docker
docker run --gpus all -it --rm -v $(pwd)/data:/data -v $(pwd):/sc15_cluster nvcr.io/hpc/milc:$TAG /workspace/examples/sc15_cluster.sh 1
Note: Docker < v1.40
Docker versions below 1.40 must enable GPU support with --runtime nvidia.
docker run --rm --runtime nvidia --ipc=host -v $PWD:/host_pwd -w /host_pwd nvcr.io/hpc/milc:$TAG /workspace/examples/sc15_cluster.sh 1
Running with Singularity
mkdir run data
singularity run --nv -B $(pwd)/data:/data -B $(pwd)/run:/sc15_cluster docker://nvcr.io/hpc/milc:$TAG /workspace/examples/sc15_cluster.sh 1
Note: Singularity < v3.5
There is currently an issue in Singularity versions below v3.5 causing the LD_LIBRARY_PATH to be incorrectly set within the container environment. As a workaround The LD_LIBRARY_PATH must be unset before invoking Singularity:
LD_LIBRARY_PATH="" singularity run --nv -B $(pwd)/data:/data -B $(pwd)/run:/sc15_cluster docker://nvcr.io/hpc/milc:$TAG /workspace/examples/sc15_cluster.sh 1