Changed order of some commands for consistent flow. Updated OPENMPI MPICH OPENBLAS and FFTW install commands.

This commit is contained in:
Adam Parler 2024-01-03 13:22:44 -08:00
parent 1d5170bf10
commit 438056eefc

View file

@ -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