Changed order of some commands for consistent flow. Updated OPENMPI MPICH OPENBLAS and FFTW install commands.
This commit is contained in:
parent
1d5170bf10
commit
438056eefc
1 changed files with 111 additions and 27 deletions
138
make_cluster.sh
138
make_cluster.sh
|
|
@ -17,33 +17,34 @@ fi
|
|||
GCC_BUILD_DIR=${BUILD_LOCATION}/gcc
|
||||
GCC_INSTALL_DIR=${INSTALL_LOCATION}/gcc
|
||||
mkdir -p ${GCC_INSTALL_DIR}
|
||||
mkdir gcc-${GCC_VERSION}-build
|
||||
|
||||
GCC_VERSION=7.5.0
|
||||
cd ${GCC_BUILD_DIR}
|
||||
mkdir gcc-${GCC_VERSION}-build
|
||||
|
||||
wget https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.gz
|
||||
wget ftp://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.gz
|
||||
tar -xf gcc-${GCC_VERSION}.tar.gz
|
||||
mv gcc-${GCC_VERSION} gcc-${GCC_VERSION}-source
|
||||
cd gcc-${GCC_VERSION}-source
|
||||
./contrib/download_prerequisites
|
||||
cd ../gcc-${GCC_VERSION}-build
|
||||
${GCC_BUILD_DIR}/gcc-${GCC_VERSION}-source/configure --prefix=${GCC_INSTALL_DIR}/${GCC_VERSION} --enable-languages=c,c++,fortran,go --disable-multilib --enable-bootstrap --enable-lto --enable-plugins
|
||||
${GCC_BUILD_DIR}/gcc-${GCC_VERSION}-source/configure --prefix=${GCC_INSTALL_DIR}/${GCC_VERSION} --enable-languages=c,c++,fortran,go --enable-lto --disable-multilib --enable-checking=release --enable-threads=posix --enable-libstdcxx-debug --enable-__cxa_atexit --enable-plugins --enable-bootstrap
|
||||
make -j$(nproc)
|
||||
make -j$(nproc) check
|
||||
make install
|
||||
|
||||
## INSTALL ENVIRONMENT MODULES FROM SOURCE
|
||||
MODULES_BUILD_DIR=${BUILD_LOCATION}
|
||||
MODULES_INSTALL_DIR=${INSTALL_LOCATION}/modules
|
||||
mkdir -p ${MODULES_BUILD_DIR}
|
||||
mkdir -p ${MODULES_INSTALL_DIR}
|
||||
|
||||
cd ${MODULES_BUILD_DIR}
|
||||
MODULES_VERSION=5.3.1
|
||||
|
||||
cd ${MODULES_BUILD_DIR}
|
||||
curl -LJO https://github.com/cea-hpc/modules/releases/download/v${MODULES_VERSION}/modules-${MODULES_VERSION}.tar.gz
|
||||
tar xfz modules-${MODULES_VERSION}.tar.gz
|
||||
tar -xf modules-${MODULES_VERSION}.tar.gz
|
||||
cd modules-${MODULES_VERSION}
|
||||
|
||||
mkdir build && cd build
|
||||
./configure --prefix=${MODULES_INSTALL_DIR}/Modules/${MODULES_VERSION} --modulefilesdir=${MODULES_INSTALL_DIR}/Modules/${MODULES_VERSION}/modulefiles
|
||||
make -j$(nproc)
|
||||
|
|
@ -87,6 +88,7 @@ tar -xf qt-everywhere-opensource-src-${QT_VERSION}.tar.xz
|
|||
cd qt-everywhere-opensource-src-${QT_VERSION}
|
||||
mkdir build && cd build
|
||||
../configure -prefix ${QT_INSTALL_DIR}/${QT_VERSION} -make tests -release -opensource -confirm-license
|
||||
##### THIS COMMAND NEEDS TO BE FINISHED#####
|
||||
|
||||
## INSTALL CMAKE FROM SOURCE
|
||||
CMAKE_BUILD_DIR=${BUILD_LOCATION}/cmake
|
||||
|
|
@ -121,15 +123,16 @@ GIT_INSTALL_DIR=${INSTALL_LOCATION}/git
|
|||
mkdir -p ${GIT_BUILD_DIR}
|
||||
mkdir -p ${GIT_INSTALL_DIR}
|
||||
|
||||
cd ${GIT_BUILD_DIR}
|
||||
GIT_VERSION=2.11.3
|
||||
|
||||
cd ${GIT_BUILD_DIR}
|
||||
wget -c https://mirrors.edge.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz
|
||||
tar -xzf git-${GIT_VERSION}.tar.gz
|
||||
cd git-${GIT_VERSION}
|
||||
make configure
|
||||
./configure --prefix=${GIT_INSTALL_DIR}/${GIT_VERSION}
|
||||
make -j$(nproc)
|
||||
make test
|
||||
make -j$(nproc) test
|
||||
make install
|
||||
|
||||
## INSTALL LLVM FROM SOURCE
|
||||
|
|
@ -151,9 +154,21 @@ cmake -S llvm -B build -G "Unix Makefiles" \
|
|||
make -j$(nproc)
|
||||
make install
|
||||
|
||||
## INSTALL OPENMPI FROM SOURCE
|
||||
module load gcc/${GCC_VERSION} cmake/${CMAKE_VERSION}
|
||||
|
||||
## INSTALL OPENMPI FROM SOURCE
|
||||
OPENMPI_BUILD_DIR=${BUILD_LOCATION}/openmpi
|
||||
OPENMPI_INSTALL_DIR=${INSTALL_LOCATION}/openmpi
|
||||
mkdir -p ${OPENMPI_BUILD_DIR}
|
||||
mkdir -p ${OPENMPI_INSTALL_DIR}
|
||||
|
||||
OPENMPI_VERSION=4.1.1
|
||||
|
||||
cd ${OPENMPI_BUILD_DIR}
|
||||
wget -c https://download.open-mpi.org/release/open-mpi/v${OPENMPI_VERSION%.*}/openmpi-${OPENMPI_VERSION}.tar.gz
|
||||
tar -xf openmpi-${OPENMPI_VERSION}.tar.gz
|
||||
cd openmpi-${OPENMPI_VERSION}
|
||||
mkdir build && cd build
|
||||
|
||||
if [ $(command -v srun) ]; then
|
||||
echo "Slurm installation found. OpenMPI will be configured with --with-pmi."
|
||||
|
|
@ -162,26 +177,52 @@ else
|
|||
EXTRA_CONFIGURE_FLAGS=""
|
||||
fi
|
||||
|
||||
./configure CFLAGS="${CFLAGS}" \
|
||||
pkg_install_dir=${OPENMPI_INSTALL_DIR}/${OPENMPI_VERSION}/${AVFS_COMPILER}/${AVFS_COMPILER_VERSION}
|
||||
|
||||
../configure CFLAGS="${CFLAGS}" \
|
||||
--prefix=${pkg_install_dir} \
|
||||
--libdir="${pkg_install_dir}/lib" \
|
||||
--enable-mpi1-compatibility \
|
||||
${EXTRA_CONFIGURE_FLAGS}
|
||||
make -j$(procs)
|
||||
make -j$(procs) install
|
||||
|
||||
## INSTALL MPICH FROM SOURCE
|
||||
module load gcc/${GCC_VERSION} cmake/${CMAKE_VERSION}
|
||||
|
||||
MPICH_BUILD_DIR=${BUILD_LOCATION}/mpich
|
||||
MPICH_INSTALL_DIR=${INSTALL_LOCATION}/mpich
|
||||
mkdir -p ${MPICH_BUILD_DIR}
|
||||
mkdir -p ${MPICH_INSTALL_DIR}
|
||||
|
||||
./configure \
|
||||
MPICH_VERSION=4.0.3
|
||||
|
||||
cd ${MPICH_BUILD_DIR}
|
||||
wget -c https://mpich.org/static/downloads/${MPICH_VERSION}/mpich-${MPICH_VERSION}.tar.gz
|
||||
tar -xf mpich-${MPICH_VERSION}.tar.gz
|
||||
|
||||
cd mpich-${MPICH_VERSION}
|
||||
mkdir build && cd build
|
||||
|
||||
if ("${FC}" --version | grep -q 'GNU'); then
|
||||
compat_flag=$(allowed_gfortran_flags "-fallow-argument-mismatch")
|
||||
else
|
||||
compat_flag=""
|
||||
fi
|
||||
|
||||
pkg_install_dir=${MPICH_INSTALL_DIR}/${MPICH_VERSION}/${AVFS_COMPILER}/${AVFS_COMPILER_VERSION}
|
||||
|
||||
../configure \
|
||||
--prefix="${pkg_install_dir}" \
|
||||
--libdir="${pkg_install_dir}/lib" \
|
||||
MPICC="" \
|
||||
FFLAGS="${FCFLAGS} ${compat_flag}" \
|
||||
FCFLAGS="${FCFLAGS} ${compat_flag}" \
|
||||
--without-x \
|
||||
--enable-gl=no \
|
||||
--with-device=${MPICH_DEVICE} \
|
||||
|
||||
make -j$(nproc)
|
||||
make install
|
||||
--with-device=${MPICH_DEVICE}
|
||||
make -j$(procs)
|
||||
make -j$(procs) install
|
||||
|
||||
|
||||
MPIRUN="${pkg_install_dir}/bin/mpiexec"
|
||||
|
|
@ -220,19 +261,62 @@ mkdir -p ${OPENBLAS_INSTALL_DIR}
|
|||
OPENBLAS_VERSION=0.3.18
|
||||
|
||||
cd ${OPENBLAS_BUILD_DIR}
|
||||
wget -c openblas
|
||||
tar -xf openblas-${OPENBLAS_VERSION}.tar.gz
|
||||
cd openblas-${OPENBLAS_VERSION}
|
||||
wget -c https://github.com/OpenMathLib/OpenBLAS/releases/download/v${OPENBLAS_VERSION}/OpenBLAS-${OPENBLAS_VERSION}.tar.gz
|
||||
tar -xf OpenBLAS-${OPENBLAS_VERSION}.tar.gz
|
||||
cd OpenBLAS-${OPENBLAS_VERSION}
|
||||
pkg_install_dir=${OPENBLAS_INSTALL_DIR}/${OPENBLAS_VERSION}
|
||||
make -j$(nproc) \
|
||||
MAKE_NB_JOBS=0 \
|
||||
TARGET=${TARGET} \
|
||||
NUM_THREADS=128 \
|
||||
USE_THREAD=1 \
|
||||
USE_OPENMP=1 \
|
||||
NO_AFFINITY=1 \
|
||||
CC="${CC}" \
|
||||
FC="${FC}" \
|
||||
PREFIX="${pkg_install_dir}"
|
||||
|
||||
|
||||
make -j$(nproc) \
|
||||
MAKE_NB_JOBS=0 \
|
||||
TARGET=${TARGET} \
|
||||
NUM_THREADS=128 \
|
||||
USE_THREAD=1 \
|
||||
USE_OPENMP=1 \
|
||||
NO_AFFINITY=1 \
|
||||
CC="${CC}" \
|
||||
FC="${FC}" \
|
||||
PREFIX="${pkg_install_dir}" install
|
||||
|
||||
## INSTALL FFTW FROM SOURCE
|
||||
FFTW_BUILD_DIR=${BUILD_LOCATION}/fftw
|
||||
FFTW_INSTALL_DIR=${INSTALL_LOCATION}/fftw
|
||||
mkdir -p ${FFTW_BUILD_DIR}
|
||||
mkdir -p ${FFTW_INSTALL_DIR}
|
||||
|
||||
FFTW_VERSION=3.3.10
|
||||
|
||||
cd ${FFTW_BUILD_DIR}
|
||||
wget -c http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz
|
||||
tar -xf fftw-${FFTW_VERSION}.tar.gz
|
||||
cd fftw-${FFTW_VERSION}
|
||||
mkdir build && cd build
|
||||
FFTW_FLAGS="--enable-openmp --disable-shared --enable-static"
|
||||
|
||||
if [ "$MPI_ENABLED" = true ]; then
|
||||
FFTW_FLAGS="--enable-mpi ${FFTW_FLAGS}"
|
||||
fi
|
||||
if [ "${TARGET_CPU}" = "native" ]; then
|
||||
if [ -f /proc/cpuinfo ]; then
|
||||
grep '\bavx\b' /proc/cpuinfo 1> /dev/null && FFTW_FLAGS="${FFTW_FLAGS} --enable-avx"
|
||||
grep '\bavx2\b' /proc/cpuinfo 1> /dev/null && FFTW_FLAGS="${FFTW_FLAGS} --enable-avx2"
|
||||
grep '\bavx512f\b' /proc/cpuinfo 1> /dev/null && FFTW_FLAGS="${FFTW_FLAGS} --enable-avx512"
|
||||
fi
|
||||
fi
|
||||
pkg_install_dir=${PROGRAM_INSTALL_DIR}/${PROGRAM_VERSION}
|
||||
./configure --prefix=${pkg_install_dir} --libdir="${pkg_install_dir}/lib" ${FFTW_FLAGS}
|
||||
make -j$(nproc)
|
||||
make install PREFIX=${OPENBLAS_INSTALL_DIR}/${OPENBLAS_VERSION}
|
||||
|
||||
## INSTALL LAPACK FROM SOURCE
|
||||
LAPACK_BUILD_DIR=${BUILD_LOCATION}/lapack
|
||||
LAPACK_INSTALL_DIR=${INSTALL_LOCATION}/lapack
|
||||
mkdir -p ${LAPACK_BUILD_DIR}
|
||||
mkdir -p ${LAPACK_INSTALL_DIR}
|
||||
|
||||
LAPACK_VERSION=3.10.0
|
||||
make -j$(nproc) install
|
||||
|
||||
## INSTALL HDF5 FROM SOURCE
|
||||
module load gcc/8.1.0 openmpi/4.1.4 cmake/3.21.3
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue