-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Synchronize stable with develop branch (#152)
Synchronize stable with develop branch
- Loading branch information
Showing
229 changed files
with
19,763 additions
and
1,936 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# Note: Run `docker build -f .devcontainer/Dockerfile -t pdc:latest .` from the root directory of the repository to build the docker image. | ||
|
||
# Use Ubuntu Jammy (latest LTS) as the base image | ||
FROM ubuntu:jammy | ||
|
||
|
||
|
||
# Install necessary tools, MPICH, UUID library and developer files | ||
RUN apt-get update && apt-get install -y \ | ||
build-essential \ | ||
git \ | ||
mpich \ | ||
libmpich-dev \ | ||
uuid \ | ||
uuid-dev \ | ||
autoconf \ | ||
libtool \ | ||
cmake \ | ||
cmake-curses-gui \ | ||
wget \ | ||
axel \ | ||
curl \ | ||
vim \ | ||
nano \ | ||
gdb \ | ||
cgdb \ | ||
curl \ | ||
valgrind | ||
|
||
# Set WORK_SPACE environment variable and create necessary directories | ||
RUN mkdir -p /workspaces | ||
ENV WORK_SPACE=/workspaces | ||
|
||
|
||
# Clone the repositories | ||
WORKDIR $WORK_SPACE/source | ||
RUN git clone https://github.com/ofiwg/libfabric.git && \ | ||
git clone https://github.com/mercury-hpc/mercury.git --recursive | ||
|
||
COPY ./ ${WORK_SPACE}/source/pdc | ||
|
||
ENV LIBFABRIC_SRC_DIR=$WORK_SPACE/source/libfabric | ||
ENV MERCURY_SRC_DIR=$WORK_SPACE/source/mercury | ||
ENV PDC_SRC_DIR=$WORK_SPACE/source/pdc | ||
ENV LIBFABRIC_DIR=$WORK_SPACE/install/libfabric | ||
ENV MERCURY_DIR=$WORK_SPACE/install/mercury | ||
ENV PDC_DIR=$WORK_SPACE/install/pdc | ||
|
||
RUN mkdir -p $LIBFABRIC_SRC_DIR && \ | ||
mkdir -p $MERCURY_SRC_DIR && \ | ||
mkdir -p $LIBFABRIC_DIR && \ | ||
mkdir -p $MERCURY_DIR && \ | ||
mkdir -p $PDC_DIR | ||
|
||
|
||
# Save the environment variables to a file | ||
RUN echo "export LIBFABRIC_SRC_DIR=$WORK_SPACE/source/libfabric" > $WORK_SPACE/pdc_env.sh && \ | ||
echo "export MERCURY_SRC_DIR=$WORK_SPACE/source/mercury" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export PDC_SRC_DIR=$WORK_SPACE/source/pdc" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export LIBFABRIC_DIR=$WORK_SPACE/install/libfabric" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export MERCURY_DIR=$WORK_SPACE/install/mercury" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export PDC_DIR=$WORK_SPACE/install/pdc" >> $WORK_SPACE/pdc_env.sh | ||
|
||
|
||
# Build and install libfabric | ||
WORKDIR $LIBFABRIC_SRC_DIR | ||
RUN git checkout v1.18.0 && \ | ||
./autogen.sh && \ | ||
./configure --prefix=$LIBFABRIC_DIR CC=mpicc CFLAG="-O2" && \ | ||
make clean && \ | ||
make -j && make install && \ | ||
make check | ||
|
||
ENV LD_LIBRARY_PATH="$LIBFABRIC_DIR/lib:$LD_LIBRARY_PATH" | ||
ENV PATH="$LIBFABRIC_DIR/include:$LIBFABRIC_DIR/lib:$PATH" | ||
RUN echo 'export LD_LIBRARY_PATH=$LIBFABRIC_DIR/lib:$LD_LIBRARY_PATH' >> $WORK_SPACE/pdc_env.sh && \ | ||
echo 'export PATH=$LIBFABRIC_DIR/include:$LIBFABRIC_DIR/lib:$PATH' >> $WORK_SPACE/pdc_env.sh | ||
|
||
|
||
# Build and install Mercury | ||
WORKDIR $MERCURY_SRC_DIR | ||
ENV MERCURY_CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=$MERCURY_DIR -DCMAKE_C_COMPILER=mpicc -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DNA_USE_OFI=ON -DNA_USE_SM=OFF -DNA_OFI_TESTING_PROTOCOL=tcp " | ||
RUN git checkout v2.2.0 \ | ||
mkdir -p build | ||
WORKDIR ${MERCURY_SRC_DIR}/build | ||
RUN cmake $MERCURY_CMAKE_FLAGS ../ && \ | ||
make -j && make install && \ | ||
ctest | ||
|
||
# Set the environment variables | ||
ENV LD_LIBRARY_PATH="$MERCURY_DIR/lib:$LD_LIBRARY_PATH" | ||
ENV PATH="$MERCURY_DIR/include:$MERCURY_DIR/lib:$PATH" | ||
RUN echo 'export LD_LIBRARY_PATH=$MERCURY_DIR/lib:$LD_LIBRARY_PATH' >> $WORK_SPACE/pdc_env.sh \ | ||
echo 'export PATH=$MERCURY_DIR/include:$MERCURY_DIR/lib:$PATH' >> $WORK_SPACE/pdc_env.sh | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"name": "pdc_devcontainer", | ||
"dockerFile": "devcontainer.Dockerfile", | ||
"forwardPorts": [ | ||
3000 | ||
], | ||
"postCreateCommand": ".devcontainer/post-create.sh", | ||
"postStartCommand": ".devcontainer/post-start.sh" | ||
} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#!/bin/bash |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#!/bin/bash | ||
|
||
|
||
ln -s /workspaces/pdc /home/codespace/source/pdc | ||
mkdir -p /workspaces/install | ||
mkdir -p /workspaces/source | ||
ln -s $PDC_SRC_DIR /workspaces/source/pdc | ||
ln -s $PDC_DIR /workspaces/install/pdc | ||
|
||
export PDC_SRC_DIR=/workspaces/source/pdc | ||
|
||
# Build and install PDC | ||
export PDC_CMAKE_FLAGS="-DBUILD_MPI_TESTING=ON -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DCMAKE_INSTALL_PREFIX=$PDC_DIR -DPDC_ENABLE_MPI=ON -DMERCURY_DIR=$MERCURY_DIR -DCMAKE_C_COMPILER=mpicc -DMPI_RUN_CMD=mpiexec " | ||
|
||
cd $PDC_SRC_DIR | ||
rm -rf build && mkdir -p build | ||
|
||
|
||
cd ${PDC_SRC_DIR}/build | ||
cmake $PDC_CMAKE_FLAGS ../ 2>&1 > ./cmake_config.log || echo "ignoring cmake config error and proceed" | ||
make -j && make install | ||
|
||
# Set the environment variables | ||
export LD_LIBRARY_PATH="$PDC_DIR/lib:$LD_LIBRARY_PATH" | ||
export PATH="$PDC_DIR/include:$PDC_DIR/lib:$PATH" | ||
echo 'export LD_LIBRARY_PATH=$PDC_DIR/lib:$LD_LIBRARY_PATH' >> $WORK_SPACE/pdc_env.sh | ||
echo 'export PATH=$PDC_DIR/include:$PDC_DIR/lib:$PATH' >> $WORK_SPACE/pdc_env.sh | ||
|
||
|
||
cd $PDC_SRC_DIR/build | ||
# ctest |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
# Use Ubuntu Jammy (latest LTS) as the base image | ||
FROM ubuntu:jammy | ||
|
||
# Install necessary tools, MPICH, UUID library and developer files | ||
RUN apt-get update && apt-get install -y \ | ||
build-essential \ | ||
git \ | ||
mpich \ | ||
libmpich-dev \ | ||
uuid \ | ||
uuid-dev \ | ||
autoconf \ | ||
libtool \ | ||
cmake \ | ||
cmake-curses-gui \ | ||
wget \ | ||
axel \ | ||
curl \ | ||
vim \ | ||
nano \ | ||
gdb \ | ||
cgdb \ | ||
curl \ | ||
valgrind | ||
|
||
# Set WORK_SPACE environment variable and create necessary directories | ||
ENV WORK_SPACE=/home/codespace | ||
RUN mkdir -p $WORK_SPACE | ||
|
||
# Clone the repositories | ||
WORKDIR $WORK_SPACE/source | ||
RUN git clone https://github.com/ofiwg/libfabric.git && \ | ||
git clone https://github.com/mercury-hpc/mercury.git --recursive | ||
|
||
COPY ./ ${WORK_SPACE}/source/pdc | ||
|
||
ENV LIBFABRIC_SRC_DIR=$WORK_SPACE/source/libfabric | ||
ENV MERCURY_SRC_DIR=$WORK_SPACE/source/mercury | ||
ENV PDC_SRC_DIR=$WORK_SPACE/source/pdc | ||
ENV LIBFABRIC_DIR=$WORK_SPACE/install/libfabric | ||
ENV MERCURY_DIR=$WORK_SPACE/install/mercury | ||
ENV PDC_DIR=$WORK_SPACE/install/pdc | ||
|
||
RUN mkdir -p $LIBFABRIC_SRC_DIR \ | ||
mkdir -p $MERCURY_SRC_DIR \ | ||
mkdir -p $PDC_SRC_DIR \ | ||
mkdir -p $LIBFABRIC_DIR \ | ||
mkdir -p $MERCURY_DIR \ | ||
mkdir -p $PDC_DIR | ||
|
||
|
||
# Save the environment variables to a file | ||
RUN echo "export LIBFABRIC_SRC_DIR=$WORK_SPACE/source/libfabric" > $WORK_SPACE/pdc_env.sh && \ | ||
echo "export MERCURY_SRC_DIR=$WORK_SPACE/source/mercury" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export PDC_SRC_DIR=$WORK_SPACE/source/pdc" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export LIBFABRIC_DIR=$WORK_SPACE/install/libfabric" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export MERCURY_DIR=$WORK_SPACE/install/mercury" >> $WORK_SPACE/pdc_env.sh && \ | ||
echo "export PDC_DIR=$WORK_SPACE/install/pdc" >> $WORK_SPACE/pdc_env.sh | ||
|
||
|
||
# Build and install libfabric | ||
WORKDIR $LIBFABRIC_SRC_DIR | ||
RUN git checkout v1.18.0 && \ | ||
./autogen.sh && \ | ||
./configure --prefix=$LIBFABRIC_DIR CC=mpicc CFLAG="-O2" && \ | ||
make clean && \ | ||
make -j && make install && \ | ||
make check | ||
|
||
ENV LD_LIBRARY_PATH="$LIBFABRIC_DIR/lib:$LD_LIBRARY_PATH" | ||
ENV PATH="$LIBFABRIC_DIR/include:$LIBFABRIC_DIR/lib:$PATH" | ||
RUN echo 'export LD_LIBRARY_PATH=$LIBFABRIC_DIR/lib:$LD_LIBRARY_PATH' >> $WORK_SPACE/pdc_env.sh && \ | ||
echo 'export PATH=$LIBFABRIC_DIR/include:$LIBFABRIC_DIR/lib:$PATH' >> $WORK_SPACE/pdc_env.sh | ||
|
||
|
||
# Build and install Mercury | ||
WORKDIR $MERCURY_SRC_DIR | ||
ENV MERCURY_CMAKE_FLAGS="-DCMAKE_INSTALL_PREFIX=$MERCURY_DIR -DCMAKE_C_COMPILER=mpicc -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DNA_USE_OFI=ON -DNA_USE_SM=OFF -DNA_OFI_TESTING_PROTOCOL=tcp " | ||
RUN git checkout v2.2.0 \ | ||
mkdir -p build | ||
WORKDIR ${MERCURY_SRC_DIR}/build | ||
RUN cmake $MERCURY_CMAKE_FLAGS ../ && \ | ||
make -j && make install && \ | ||
ctest | ||
|
||
# Set the environment variables | ||
ENV LD_LIBRARY_PATH="$MERCURY_DIR/lib:$LD_LIBRARY_PATH" | ||
ENV PATH="$MERCURY_DIR/include:$MERCURY_DIR/lib:$PATH" | ||
RUN echo 'export LD_LIBRARY_PATH=$MERCURY_DIR/lib:$LD_LIBRARY_PATH' >> $WORK_SPACE/pdc_env.sh \ | ||
echo 'export PATH=$MERCURY_DIR/include:$MERCURY_DIR/lib:$PATH' >> $WORK_SPACE/pdc_env.sh |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Note: Run `docker build -f .docker/Dockerfile -t pdc:latest .` from the root directory of the repository to build the docker image. | ||
|
||
# Use Ubuntu Jammy (latest LTS) as the base image | ||
FROM zhangwei217245/pdc_dev_base:latest | ||
|
||
# Build and install PDC | ||
ENV PDC_CMAKE_FLAGS="-DBUILD_MPI_TESTING=ON -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON -DCMAKE_INSTALL_PREFIX=$PDC_DIR -DPDC_ENABLE_MPI=ON -DMERCURY_DIR=$MERCURY_DIR -DCMAKE_C_COMPILER=mpicc -DMPI_RUN_CMD=mpiexec " | ||
|
||
|
||
WORKDIR $PDC_SRC_DIR | ||
RUN rm -rf build && \ | ||
mkdir -p build | ||
|
||
# COPY ../ ${PDC_SRC_DIR} | ||
# RUN ls -l $PDC_SRC_DIR | ||
|
||
WORKDIR ${PDC_SRC_DIR}/build | ||
RUN cmake $PDC_CMAKE_FLAGS ../ 2>&1 > ./cmake_config.log || echo "ignoring cmake config error and proceed" && \ | ||
make -j && make install | ||
|
||
# Set the environment variables | ||
ENV LD_LIBRARY_PATH="$PDC_DIR/lib:$LD_LIBRARY_PATH" | ||
ENV PATH="$PDC_DIR/include:$PDC_DIR/lib:$PATH" | ||
RUN echo 'export LD_LIBRARY_PATH=$PDC_DIR/lib:$LD_LIBRARY_PATH' >> $WORK_SPACE/pdc_env.sh && \ | ||
echo 'export PATH=$PDC_DIR/include:$PDC_DIR/lib:$PATH' >> $WORK_SPACE/pdc_env.sh | ||
|
||
|
||
# WORKDIR $PDC_SRC_DIR/build | ||
# RUN ctest |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Exclude files and directories from the Docker build context | ||
!/.git/ |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
**Bug Report** | ||
|
||
A clear and concise description of what the bug is, including module and feature. | ||
|
||
**To Reproduce** | ||
|
||
How are you building/running PDC? | ||
|
||
- version of PDC: [e.g., 0.3, branch, or hash] | ||
- installed PDC using: [spack, from source] | ||
- operating system: [name and version] | ||
- machine: [Are you running on a supercomputer or public cluster?] | ||
- version of Mercury: [e.g., 1.12.0] | ||
- name and version of MPI: [e.g., OpenMPI 4.1.1] | ||
|
||
What did you use to build PDC (cmake command)? | ||
|
||
```bash | ||
... | ||
``` | ||
|
||
What is the running setup you use? | ||
|
||
```bash | ||
... | ||
``` | ||
|
||
**Expected Behavior** | ||
|
||
A clear and concise description of what you expected to happen. | ||
|
||
**Additional Information** | ||
|
||
If built from source, include the cmake options you used. | ||
Add any other information about the problem here. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
**What does this feature solve or improve?** | ||
|
||
A clear and concise description of what the problem is. | ||
Example: I always do the following workflow [...] | ||
|
||
**Describe the solution you'd like** | ||
|
||
A clear and concise description of what you want to happen. | ||
Example: It would be fantastic if one could [...] | ||
|
||
**Describe alternatives you've considered** | ||
|
||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional Information** | ||
|
||
Add any other information about the feature request here. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
**Issue Description** | ||
|
||
This is what I have tried so far: | ||
|
||
|
||
```commandline | ||
... | ||
``` | ||
|
||
This is the error I am facing during installation: | ||
|
||
``` | ||
... | ||
``` | ||
|
||
**Software Environment** | ||
|
||
- version of PDC: [e.g. 0.3] | ||
- installed PDC using: [spack, from source] | ||
- operating system: [name and version] | ||
- machine: [Are you running on a supercomputer or public cluster?] | ||
- version of Mercury: [e.g. 1.12.0] | ||
- name and version of MPI: [e.g. OpenMPI 4.1.1] | ||
|
||
**Additional Information** | ||
|
||
Add any other information about the problem here. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
**Usage Case** | ||
|
||
A clear and concise description of what your usage case is. | ||
|
||
**Additional Information** | ||
|
||
Add any other information about your intended usage, limitation, or questions here. | ||
|
||
**Software Environment** | ||
|
||
- version of PDC: [e.g. 0.3] | ||
- installed PDC using: [spack, from source] | ||
- operating system: [name and version] | ||
- machine: [Are you running on a supercomputer or public cluster?] | ||
- version of Mercury: [e.g. 1.12.0] | ||
- name and version of MPI: [e.g. OpenMPI 4.1.1] |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Related Issues / Pull Requests | ||
|
||
List all related issues and/or pull requests if there are any. | ||
|
||
# Description | ||
|
||
Include a brief summary of the proposed changes. | ||
|
||
# What changes are proposed in this pull request? | ||
|
||
- [ ] Bug fix (non-breaking change which fixes an issue) | ||
- [ ] New feature (non-breaking change which adds functionality) | ||
- [ ] Breaking change (fix or feature that would cause existing functionality not to work as expected; for instance, examples in this repository must be updated too) | ||
- [ ] This change requires a documentation update | ||
|
||
# Checklist: | ||
|
||
- [ ] My code modifies existing public API, or introduces new public API, and I updated or wrote docstrings | ||
- [ ] I have commented my code | ||
- [ ] My code requires documentation updates, and I have made corresponding changes to the documentation | ||
- [ ] I have added tests that prove my fix is effective or that my feature works | ||
- [ ] New and existing unit tests pass locally with my changes |
Oops, something went wrong.