Loading slurm-docker-cluster-node/Dockerfile 0 → 100644 +198 −0 Original line number Diff line number Diff line #Dockerfile for building scord in rockylinux:8 FROM slurm-docker-cluster:21.08.6 ENV DEPS_SOURCES /deps ENV DEPS_INSTALL_PATH /usr # Install basic packages and dependencies available from the distribution RUN set -ex \ && dnf makecache \ && dnf update -y \ && dnf install -y dnf-plugins-core \ && dnf config-manager --set-enabled crb \ && dnf install -y epel-release \ && dnf install -y \ git \ gcc \ gcc-c++ \ make \ automake \ ninja-build \ libtool \ diffutils \ file \ cmake \ libstdc++-static \ libstdc++ \ bind-utils \ # dependencies boost-devel \ json-c-devel \ hiredis-devel \ libconfig-devel \ libfabric \ libfabric-devel \ openmpi \ openmpi-devel \ boost-openmpi-devel \ && dnf clean all \ && rm -rf /var/cache/dnf ### # Install openmpi ### RUN set -ex \ ### && cd \ ### && mkdir deps \ ### && cd deps \ ### && wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.bz2 \ ### && tar xvfj openmpi-4.1.6.tar.bz2 \ ### && cd openmpi-4.1.6 \ ### && mkdir build \ ### && cd build \ ### && ../configure \ ### --prefix=${DEPS_INSTALL_PATH} \ ### --with-slurm \ ### --with-pmix=external \ ### --disable-silent-rules \ ### --enable-builtin-atomics \ ### --enable-mpi-cxx \ ### --without-ucx \ ### --without-hcol \ ### && make -j8 all \ ### && make install \ ### && dnf install -y boost-openmpi-devel ### # TODO: remove openmpi-4 dir # Download and install dependencies RUN set -ex \ && export LD_LIBRARY_PATH=${DEPS_INSTALL_PATH}/lib:${DEPS_INSTALL_PATH}/lib64 \ && export PKG_CONFIG_PATH=${DEPS_INSTALL_PATH}/lib/pkgconfig:${DEPS_INSTALL_PATH}/lib64/pkgconfig \ && mkdir -p ${DEPS_SOURCES} \ && pushd ${DEPS_SOURCES} \ # && git clone https://github.com/ofiwg/libfabric --recurse-submodules \ && git clone https://github.com/pmodels/argobots --recurse-submodules \ && git clone https://github.com/mercury-hpc/mercury --recurse-submodules \ && git clone https://github.com/mochi-hpc/mochi-margo --recurse-submodules \ && git clone https://github.com/sewenew/redis-plus-plus --recurse-submodules \ && git clone https://github.com/francielizanon/agios --recurse-submodules \ && git clone https://github.com/USCiLab/cereal --recurse-submodules \ && git clone https://github.com/mochi-hpc/mochi-thallium --recurse-submodules \ && git clone https://storage.bsc.es/gitlab/hpc/cargo.git \ \ && popd \ ### argobots && pushd ${DEPS_SOURCES}/argobots \ && ./autogen.sh \ && mkdir build \ && pushd build \ && CFLAGS="-ggdb3 -O0" ../configure --prefix=${DEPS_INSTALL_PATH} \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ # ### libfabric # && pushd ${DEPS_SOURCES}/libfabric \ # && git checkout v1.14.0rc3 \ # && ./autogen.sh \ # && mkdir build \ # && pushd build \ # && CFLAGS="-ggdb3 -O0" \ # ../configure \ # --prefix=${DEPS_INSTALL_PATH} \ # --disable-psm3 \ # && make install -j \ # && popd \ # && rm -rf build \ # && cd \ \ ### mercury && pushd ${DEPS_SOURCES}/mercury \ && mkdir build \ && pushd build \ && cmake \ -DMERCURY_USE_SELF_FORWARD:BOOL=ON \ -DBUILD_TESTING:BOOL=ON \ -DMERCURY_USE_BOOST_PP:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DNA_USE_OFI:BOOL=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ ### mochi-margo && pushd ${DEPS_SOURCES}/mochi-margo \ && ./prepare.sh \ && mkdir build \ && pushd build \ && CFLAGS="-ggdb3 -O0" ../configure --prefix=${DEPS_INSTALL_PATH} \ && make -j install \ && popd \ && rm -rf build \ && popd \ \ ### redis-plus-plus && pushd ${DEPS_SOURCES}/redis-plus-plus \ && mkdir build \ && pushd build \ && cmake \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ ### agios && pushd ${DEPS_SOURCES}/agios \ && git checkout development \ && mkdir build \ && pushd build \ && cmake \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ ### cereal && pushd ${DEPS_SOURCES}/cereal \ && mkdir build \ && pushd build \ \ && cmake \ -DCMAKE_BUILD_TYPE:STRING=Debug \ -DBUILD_DOC:BOOL=OFF \ -DBUILD_SANDBOX:BOOL=OFF \ -DBUILD_TESTS:BOOL=OFF \ -DSKIP_PERFORMANCE_COMPARISON:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ .. \ && make -j install \ && popd \ && rm -rf build \ && popd \ \ ### mochi-thallium && pushd ${DEPS_SOURCES}/mochi-thallium \ && mkdir build \ && pushd build \ && cmake \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make -j install \ && popd \ && rm -rf build \ && popd \ # intentionally keep sources so that we can debug && chmod a+rwx ${DEPS_SOURCES} Loading
slurm-docker-cluster-node/Dockerfile 0 → 100644 +198 −0 Original line number Diff line number Diff line #Dockerfile for building scord in rockylinux:8 FROM slurm-docker-cluster:21.08.6 ENV DEPS_SOURCES /deps ENV DEPS_INSTALL_PATH /usr # Install basic packages and dependencies available from the distribution RUN set -ex \ && dnf makecache \ && dnf update -y \ && dnf install -y dnf-plugins-core \ && dnf config-manager --set-enabled crb \ && dnf install -y epel-release \ && dnf install -y \ git \ gcc \ gcc-c++ \ make \ automake \ ninja-build \ libtool \ diffutils \ file \ cmake \ libstdc++-static \ libstdc++ \ bind-utils \ # dependencies boost-devel \ json-c-devel \ hiredis-devel \ libconfig-devel \ libfabric \ libfabric-devel \ openmpi \ openmpi-devel \ boost-openmpi-devel \ && dnf clean all \ && rm -rf /var/cache/dnf ### # Install openmpi ### RUN set -ex \ ### && cd \ ### && mkdir deps \ ### && cd deps \ ### && wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.bz2 \ ### && tar xvfj openmpi-4.1.6.tar.bz2 \ ### && cd openmpi-4.1.6 \ ### && mkdir build \ ### && cd build \ ### && ../configure \ ### --prefix=${DEPS_INSTALL_PATH} \ ### --with-slurm \ ### --with-pmix=external \ ### --disable-silent-rules \ ### --enable-builtin-atomics \ ### --enable-mpi-cxx \ ### --without-ucx \ ### --without-hcol \ ### && make -j8 all \ ### && make install \ ### && dnf install -y boost-openmpi-devel ### # TODO: remove openmpi-4 dir # Download and install dependencies RUN set -ex \ && export LD_LIBRARY_PATH=${DEPS_INSTALL_PATH}/lib:${DEPS_INSTALL_PATH}/lib64 \ && export PKG_CONFIG_PATH=${DEPS_INSTALL_PATH}/lib/pkgconfig:${DEPS_INSTALL_PATH}/lib64/pkgconfig \ && mkdir -p ${DEPS_SOURCES} \ && pushd ${DEPS_SOURCES} \ # && git clone https://github.com/ofiwg/libfabric --recurse-submodules \ && git clone https://github.com/pmodels/argobots --recurse-submodules \ && git clone https://github.com/mercury-hpc/mercury --recurse-submodules \ && git clone https://github.com/mochi-hpc/mochi-margo --recurse-submodules \ && git clone https://github.com/sewenew/redis-plus-plus --recurse-submodules \ && git clone https://github.com/francielizanon/agios --recurse-submodules \ && git clone https://github.com/USCiLab/cereal --recurse-submodules \ && git clone https://github.com/mochi-hpc/mochi-thallium --recurse-submodules \ && git clone https://storage.bsc.es/gitlab/hpc/cargo.git \ \ && popd \ ### argobots && pushd ${DEPS_SOURCES}/argobots \ && ./autogen.sh \ && mkdir build \ && pushd build \ && CFLAGS="-ggdb3 -O0" ../configure --prefix=${DEPS_INSTALL_PATH} \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ # ### libfabric # && pushd ${DEPS_SOURCES}/libfabric \ # && git checkout v1.14.0rc3 \ # && ./autogen.sh \ # && mkdir build \ # && pushd build \ # && CFLAGS="-ggdb3 -O0" \ # ../configure \ # --prefix=${DEPS_INSTALL_PATH} \ # --disable-psm3 \ # && make install -j \ # && popd \ # && rm -rf build \ # && cd \ \ ### mercury && pushd ${DEPS_SOURCES}/mercury \ && mkdir build \ && pushd build \ && cmake \ -DMERCURY_USE_SELF_FORWARD:BOOL=ON \ -DBUILD_TESTING:BOOL=ON \ -DMERCURY_USE_BOOST_PP:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DBUILD_SHARED_LIBS:BOOL=ON \ -DNA_USE_OFI:BOOL=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ ### mochi-margo && pushd ${DEPS_SOURCES}/mochi-margo \ && ./prepare.sh \ && mkdir build \ && pushd build \ && CFLAGS="-ggdb3 -O0" ../configure --prefix=${DEPS_INSTALL_PATH} \ && make -j install \ && popd \ && rm -rf build \ && popd \ \ ### redis-plus-plus && pushd ${DEPS_SOURCES}/redis-plus-plus \ && mkdir build \ && pushd build \ && cmake \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ ### agios && pushd ${DEPS_SOURCES}/agios \ && git checkout development \ && mkdir build \ && pushd build \ && cmake \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make install -j \ && popd \ && rm -rf build \ && popd \ \ ### cereal && pushd ${DEPS_SOURCES}/cereal \ && mkdir build \ && pushd build \ \ && cmake \ -DCMAKE_BUILD_TYPE:STRING=Debug \ -DBUILD_DOC:BOOL=OFF \ -DBUILD_SANDBOX:BOOL=OFF \ -DBUILD_TESTS:BOOL=OFF \ -DSKIP_PERFORMANCE_COMPARISON:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ .. \ && make -j install \ && popd \ && rm -rf build \ && popd \ \ ### mochi-thallium && pushd ${DEPS_SOURCES}/mochi-thallium \ && mkdir build \ && pushd build \ && cmake \ -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_PATH} \ -DCMAKE_BUILD_TYPE:STRING=Debug \ .. \ && make -j install \ && popd \ && rm -rf build \ && popd \ # intentionally keep sources so that we can debug && chmod a+rwx ${DEPS_SOURCES}