Skip to content

Commit 2be9416

Browse files
committed
CI/CD: update workflow, add containers
1 parent a3d8aa9 commit 2be9416

File tree

7 files changed

+85
-12
lines changed

7 files changed

+85
-12
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
strategy:
1515
fail-fast: false
1616
matrix:
17-
shmem: [sos, oshmem, oshmem_ubuntu, oshmem_fedora, oshmpi, osss]
17+
shmem: [sos_ubuntu, sos_fedora, oshmem_ubuntu, oshmem_fedora, oshmpi_ubuntu, oshmpi_fedora, osss_ubuntu, osss_fedora]
1818
runs-on: ubuntu-latest
1919
steps:
2020
- name: Checkout

docker/oshmpi_fedora/Dockerfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
FROM fedora:latest
2+
3+
ENV INSTALL_DIR=/home/shmem
4+
RUN mkdir /home/shmem
5+
6+
RUN dnf update -y && \
7+
dnf install -y git vim wget pkg-config make automake gcc gcc-c++ kernel-devel libtool lbzip2 hwloc hwloc-devel \
8+
pmix pmix-devel libevent libevent-devel python3 python3-devel python3-pip && \
9+
dnf clean all
10+
11+
RUN cd $INSTALL_DIR && \
12+
git clone https://github.com/dalcinl/oshmpi -b fix-api-1.5 --recurse-submodules && \
13+
cd oshmpi && \
14+
./autogen.sh && \
15+
./configure CC=/usr/bin/mpicc CXX=/usr/bin/mpicxx --prefix=$INSTALL_DIR/oshmpi/install && \
16+
make -j && make install
17+
18+
ENV PATH="/home/shmem/oshmpi/install/bin/:${PATH}"
19+
RUN ln -s /usr/bin/python3 /usr/bin/python
20+
RUN python -m pip install numpy cffi
File renamed without changes.
File renamed without changes.

docker/oshmem/Dockerfile renamed to docker/osss_ubuntu/Dockerfile

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,34 @@ RUN apt-get update -y && apt-get install -y \
1111
wget \
1212
automake \
1313
libtool \
14+
mpich \
15+
pkg-config \
16+
libpmix-bin libpmix-dev \
1417
python3 python3-pip python-is-python3
1518

16-
# Build UCX
1719
RUN cd $INSTALL_DIR && \
1820
git clone https://github.com/openucx/ucx && \
1921
cd ucx && ./autogen.sh && \
2022
./configure --prefix=$INSTALL_DIR/ucx-master/install --disable-debug --disable-assertions --disable-params-check && \
2123
make -j && make install
2224

23-
# Build OpenMPI
24-
RUN cd $INSTALL_DIR && \
25-
wget -c https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.4.tar.bz2 && \
26-
tar xf openmpi-4.1.4.tar.bz2 && \
27-
cd openmpi-4.1.4 && \
28-
./configure --enable-oshmem --prefix=$INSTALL_DIR/openmpi-4.1.4/install \
29-
--with-ucx=/home/shmem/ucx-master/install && \
25+
RUN cd $INSTALL_DIR && \
26+
wget -c https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.4.tar.bz2 && \
27+
tar xf openmpi-4.1.4.tar.bz2 && \
28+
cd openmpi-4.1.4 && \
29+
./configure --enable-oshmem --prefix=$INSTALL_DIR/openmpi-4.1.4/install \
30+
--with-ucx=/home/shmem/ucx-master/install && \
3031
make -j && make install
3132

32-
ENV PATH="/home/shmem/openmpi-4.1.4/install/bin:${PATH}" \
33+
RUN cd $INSTALL_DIR && \
34+
git clone https://github.com/openshmem-org/osss-ucx osss-ucx && \
35+
cd osss-ucx/ && \
36+
./autogen.sh && \
37+
./configure --prefix=$INSTALL_DIR/osss-ucx/install --enable-debug --enable-logging --with-pmix --with-ucx=/home/shmem/ucx-master/install && \
38+
make -j && make install
39+
40+
ENV PATH=$INSTALL_DIR/osss-ucx/install/bin:/home/shmem/openmpi-4.1.4/install/bin:"${PATH}" \
3341
OMPI_ALLOW_RUN_AS_ROOT=1 \
3442
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
3543

36-
RUN python -m pip install numpy cffi
44+
RUN python -m pip install setuptools cffi numpy

docker/sos_fedora/Dockerfile

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# adapted from https://github.com/Sandia-OpenSHMEM/SOS/blob/master/scripts/docker/Dockerfile
2+
3+
FROM fedora:latest
4+
5+
ENV INSTALL_DIR=/home/shmem
6+
RUN mkdir /home/shmem
7+
8+
RUN dnf update -y && \
9+
dnf install -y git vim wget pkg-config make automake gcc gcc-c++ kernel-devel libtool lbzip2 hwloc hwloc-devel \
10+
libevent libevent-devel python3 python3-devel python3-pip mpich && \
11+
dnf clean all
12+
13+
ENV CC=gcc
14+
ENV CXX=g++
15+
16+
# Build Libevent
17+
RUN cd $INSTALL_DIR && \
18+
wget -c https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz && \
19+
tar -xzvf libevent-2.1.10-stable.tar.gz && \
20+
cd libevent-2.1.10-stable && \
21+
./autogen.sh && \
22+
./configure --prefix=$INSTALL_DIR/libevent-2.1.10-stable/install && \
23+
make clean all install
24+
25+
# Build Libfabric
26+
RUN cd $INSTALL_DIR && \
27+
git clone -b v1.13.x --depth 10 https://github.com/ofiwg/libfabric.git libfabric && \
28+
cd libfabric && \
29+
./autogen.sh && \
30+
./configure --prefix=$INSTALL_DIR/libfabric/install && \
31+
make -j && make install
32+
33+
# Build SOS
34+
RUN cd $INSTALL_DIR && \
35+
git clone https://github.com/Sandia-OpenSHMEM/SOS.git && \
36+
cd SOS && \
37+
./autogen.sh && \
38+
# To build SOS w/ basic Libfabric \
39+
./configure --prefix=$INSTALL_DIR/SOS/install --with-ofi=$INSTALL_DIR/libfabric/install \
40+
--without-ucx --without-portals4 --enable-pmi-simple --disable-fortran && \
41+
make -j && make install && \
42+
make check TESTS= -j
43+
44+
ENV PATH="/home/shmem/SOS/install/bin:/usr/lib64/mpich/bin:${PATH}"
45+
RUN ln -s /usr/bin/python3 /usr/bin/python
46+
RUN python -m pip install numpy cffi setuptools

docker/sos/Dockerfile renamed to docker/sos_ubuntu/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,4 @@ RUN cd $INSTALL_DIR
4949
make check TESTS= -j
5050

5151
ENV PATH="/home/shmem/SOS/install/bin:${PATH}"
52-
5352
RUN python -m pip install numpy cffi setuptools

0 commit comments

Comments
 (0)