-
Notifications
You must be signed in to change notification settings - Fork 230
Doc: WarpX no-MPI Perlmutter Container #6422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ax3l
wants to merge
1
commit into
BLAST-WarpX:development
Choose a base branch
from
ax3l:doc-pm-container-nompi
base: development
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+282
−0
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bb7aaab to
f79db47
Compare
ax3l
commented
Nov 27, 2025
3774e65 to
8673cc3
Compare
8673cc3 to
866cc24
Compare
ax3l
commented
Nov 29, 2025
Tools/machines/perlmutter-nersc/container/gpu/nompi/Containerfile
Outdated
Show resolved
Hide resolved
ax3l
commented
Nov 29, 2025
Tools/machines/perlmutter-nersc/container/gpu/nompi/Containerfile
Outdated
Show resolved
Hide resolved
A container for WarpX on GPU on Perlmutter without MPI support. Add HDF5.
b5ea900 to
fc341b7
Compare
Member
|
Amazing, thanks for this PR (and for #6389, which I had missed). Here's the diff between the MPI Containerfile and the no-MPI Containerfile: 2c2
< # podman build --build-arg NJOBS=6 -t warpx-perlmutter .
---
> # podman build --build-arg NJOBS=6 -t warpx-perlmutter-nompi .
5c5
< # WarpX executables are installed in /usr/bin/
---
> # WarpX executables are installed in /opt/warpx/bin
9c9
< # podman-hpc run --rm --gpu --cuda-mpi --nccl -v $PWD:/opt/pwd -it registry.nersc.gov/m558/superfacility/warpx-perlmutter:latest warpx.2d /opt/pwd/inputs_base_2d
---
> # podman-hpc run --rm --gpu -v $PWD:/opt/pwd -it registry.nersc.gov/m558/superfacility/warpx-perlmutter-nompi:latest warpx.2d /opt/pwd/inputs_base_2d
13c13
< # podman run ... ${INPUTS} ${GPU_AWARE_MPI}" \
---
> # podman run ... ${INPUTS}" \
52,53d51
< # Perlmutter MPICH: cray-mpich/8.1.30 based on MPICH 3.4a2
< # Ubuntu 22.04 ships MPICH 4.0, so we build from source
73a72
> libhdf5-dev \
81,109d79
< # Install MPICH 3.4 support from source
< # after https://docs.nersc.gov/development/containers/shifter/how-to-use/#using-mpi-in-shifter
< # Note:
< # w/o GPUdirect here, because we will swap out the MPI binaries on Perlmutter using a Podman-HPC
< # plugin (--mpi/--cuda-mpi). This only works if we do NOT build GPUdirect here, this we skip:
< # --with-ch4-shmmods=posix,gpudirect
< # Perlmutter MPICH: cray-mpich/8.1.30 based on MPICH 3.4a2
< # TODO: install libfabric from source and depend on it (or expose where embedded libfabric gets installed)
< ARG mpich=3.4.3
< ARG mpich_prefix=mpich-$mpich
<
< RUN \
< curl -Lo $mpich_prefix.tar.gz https://www.mpich.org/static/downloads/$mpich/$mpich_prefix.tar.gz && \
< tar xzf $mpich_prefix.tar.gz && \
< cd $mpich_prefix && \
< FFLAGS=-fallow-argument-mismatch FCFLAGS=-fallow-argument-mismatch \
< ./configure \
< --disable-fortran \
< --prefix=/opt/warpx \
< --with-device=ch4:ofi && \
< make -j ${NJOBS} && \
< make install && \
< make clean && \
< cd .. && \
< rm -rf ${mpich_prefix}*
<
< RUN /sbin/ldconfig
< # ENV MPICH_GPU_SUPPORT_ENABLED=1
<
131d100
< # TODO: install libfabric from source and depend on it (or expose where MPICH-embedded libfabric gets installed)
145a115
> -DADIOS2_USE_MPI=OFF \
212a183
> openpmd-viewer \
244c215
< -DWarpX_DIMS="2;RZ" \
---
> -DWarpX_DIMS="1;2;RZ;3" \
245a217
> -DWarpX_MPI=OFF \
257a230
> ln -s /opt/warpx/bin/warpx.1d* /opt/warpx/bin/warpx.1d && \
259c232,233
< ln -s /opt/warpx/bin/warpx.rz* /opt/warpx/bin/warpx.rz
---
> ln -s /opt/warpx/bin/warpx.rz* /opt/warpx/bin/warpx.rz && \
> ln -s /opt/warpx/bin/warpx.3d* /opt/warpx/bin/warpx.3d
275a250
> libhdf5-103-1 \I was wondering if we could/should smoothen some of the differences, e.g.:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
backend: cuda
Specific to CUDA execution (GPUs)
component: documentation
Docs, readme and manual
install
machine / system
Machine or system-specific issue
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A container for WarpX on GPU on Perlmutter without MPI support.
Used as base image for SYNAPSE for now BLAST-AI-ML/synapse#279
To Do
registry.nersc.gov/m558/superfacility/warpx-perlmutter-nompi:25.11