diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..113a283 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +deploy/ +tmp/ diff --git a/atlas/gfortran-10.patch b/atlas/gfortran-10.patch new file mode 100644 index 0000000..9983d99 --- /dev/null +++ b/atlas/gfortran-10.patch @@ -0,0 +1,40 @@ +Description: Fix FTBFS with gfortran 10 +Origin: other, https://github.com/Reference-LAPACK/lapack/commit/7fb63b1cd386b099d7da6eeaafc3e7dce055a7d0 +Bug-Debian: https://bugs.debian.org/957015 +Forwarded: no +Reviewed-by: Sébastien Villemot +Last-Update: 2020-05-20 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/interfaces/blas/C/testing/c_dblat1.f ++++ b/interfaces/blas/C/testing/c_dblat1.f +@@ -247,11 +247,11 @@ + IF (ICASE.EQ.7) THEN + * .. DNRM2TEST .. + STEMP(1) = DTRUE1(NP1) +- CALL STEST1(DNRM2TEST(N,SX,INCX),STEMP,STEMP,SFAC) ++ CALL STEST1(DNRM2TEST(N,SX,INCX),STEMP(1),STEMP,SFAC) + ELSE IF (ICASE.EQ.8) THEN + * .. DASUMTEST .. + STEMP(1) = DTRUE3(NP1) +- CALL STEST1(DASUMTEST(N,SX,INCX),STEMP,STEMP,SFAC) ++ CALL STEST1(DASUMTEST(N,SX,INCX),STEMP(1),STEMP,SFAC) + ELSE IF (ICASE.EQ.9) THEN + * .. DSCALTEST .. + CALL DSCALTEST(N,SA((INCX-1)*5+NP1),SX,INCX) +--- a/interfaces/blas/C/testing/c_sblat1.f ++++ b/interfaces/blas/C/testing/c_sblat1.f +@@ -247,11 +247,11 @@ + IF (ICASE.EQ.7) THEN + * .. SNRM2TEST .. + STEMP(1) = DTRUE1(NP1) +- CALL STEST1(SNRM2TEST(N,SX,INCX),STEMP,STEMP,SFAC) ++ CALL STEST1(SNRM2TEST(N,SX,INCX),STEMP(1),STEMP,SFAC) + ELSE IF (ICASE.EQ.8) THEN + * .. SASUMTEST .. + STEMP(1) = DTRUE3(NP1) +- CALL STEST1(SASUMTEST(N,SX,INCX),STEMP,STEMP,SFAC) ++ CALL STEST1(SASUMTEST(N,SX,INCX),STEMP(1),STEMP,SFAC) + ELSE IF (ICASE.EQ.9) THEN + * .. SSCALTEST .. + CALL SSCALTEST(N,SA((INCX-1)*5+NP1),SX,INCX) diff --git a/compile-all.sh b/compile-all.sh new file mode 100755 index 0000000..db5c2d9 --- /dev/null +++ b/compile-all.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +export DEPLOY_DIR="$PWD/deploy/" + +#./compile-openmpi.sh +./compile-atlas.sh + diff --git a/compile-atlas.sh b/compile-atlas.sh new file mode 100755 index 0000000..186c233 --- /dev/null +++ b/compile-atlas.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -e +set -v + +ATLAS_VERSION="3.10.3" +ATLAS_SRC_TAR_NAME="atlas${ATLAS_VERSION}.tar.bz2" +ATLAS_SRC_URL="http://downloads.sourceforge.net/math-atlas/${ATLAS_SRC_TAR_NAME}" + +if [[ -z "${DEPLOY_DIR}" ]]; then + echo "DEPLOY_DIR not set!" >&2 + exit 1 +fi + +ATLAS_TMP_DIR="${PWD}/tmp/atlas" +ATLAS_SRC_TAR="${ATLAS_TMP_DIR}/${ATLAS_SRC_TAR_NAME}" +ATLAS_SRC_DIR="${ATLAS_TMP_DIR}/ATLAS" +ATLAS_BUILD_DIR="${ATLAS_SRC_DIR}/build" +ATLAS_DEPLOY_DIR="${DEPLOY_DIR}/atlas" + +rm -rf "${ATLAS_TMP_DIR}" +mkdir -p "${ATLAS_TMP_DIR}" + +mkdir -p "${ATLAS_BUILD_DIR}" + +rm -rf "${ATLAS_DEPLOY_DIR}" +mkdir -p "${ATLAS_DEPLOY_DIR}" + +curl -L "${ATLAS_SRC_URL}" -o "${ATLAS_SRC_TAR}" + +tar -xvf "${ATLAS_SRC_TAR}" -C "${ATLAS_TMP_DIR}" + +pushd "${ATLAS_SRC_DIR}" + +popd + +pushd "${ATLAS_BUILD_DIR}" + +"${ATLAS_SRC_DIR}/configure" \ + --force-tids="1 0" \ + --prefix="${ATLAS_DEPLOY_DIR}" \ + -Fa acg '-march=native -O3 -fomit-frame-pointer -flto' + +make build + +#make + +popd diff --git a/compile-openmpi.sh b/compile-openmpi.sh new file mode 100755 index 0000000..b26aafe --- /dev/null +++ b/compile-openmpi.sh @@ -0,0 +1,55 @@ +#!/bin/bash +set -e +set -v + +OPENMPI_VERSION_MAJOR_MINOR="5.0" +OPENMPI_VERSION_REVISION="0" +OPENMPI_CFLAGS="-march=native -Ofast -fomit-frame-pointer -flto" +OPENMPI_CXXFLAGS="${OPENMPI_CFLAGS}" +OPENMPI_FCFLAGS="${OPENMPI_CFLAGS}" +OPENMPI_LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" + +if [[ -z "${DEPLOY_DIR}" ]]; then + echo "DEPLOY_DIR not set!" >&2 + exit 1 +fi + +OPENMPI_VERSION="${OPENMPI_VERSION_MAJOR_MINOR}.${OPENMPI_VERSION_REVISION}" +OPENMPI_TMP_DIR="${PWD}/tmp/openmpi" +OPENMPI_SRC_TAR="${OPENMPI_TMP_DIR}/openmpi-${OPENMPI_VERSION}.tar.bz2" +OPENMPI_SRC_DIR="${OPENMPI_TMP_DIR}/openmpi-${OPENMPI_VERSION}" + +OPENMPI_DEPLOY_DIR="${DEPLOY_DIR}/openmpi" + +rm -rf "${OPENMPI_TMP_DIR}" +mkdir -p "${OPENMPI_TMP_DIR}" + +rm -rf "${OPENMPI_DEPLOY_DIR}" +mkdir -p "${OPENMPI_DEPLOY_DIR}" + +curl "https://download.open-mpi.org/release/open-mpi/v${OPENMPI_VERSION_MAJOR_MINOR}/openmpi-${OPENMPI_VERSION}.tar.bz2" -o "${OPENMPI_SRC_TAR}" + +tar -xvf "${OPENMPI_SRC_TAR}" -C "${OPENMPI_TMP_DIR}" + +pushd "${OPENMPI_SRC_DIR}" + + +# TODO: Add UCX +# TODO: Research more options (WE NEED MAXIMUM PERFORMANCE!!!11!!!1!1!) +# TODO: Compile with our compilers +./configure \ + --prefix="${OPENMPI_DEPLOY_DIR}" \ + --disable-shared \ + --enable-static \ + --enable-mpirun-prefix-by-default \ + --with-mpi-param-check=never \ + "CFLAGS=${OPENMPI_CFLAGS}" \ + "CXXFLAGS=${OPENMPI_CXXFLAGS}" \ + "FCFLAGS=${OPENMPI_FCFLAGS}" \ + "LDFLAGS=${OPENMPI_LDFLAGS}" + +make -j +make install + + +popd