Broke out FFTW build into own script

This commit is contained in:
Adam Parler 2024-01-05 03:15:40 -08:00
parent 438056eefc
commit 557025fe7a
2 changed files with 80 additions and 32 deletions

View file

@ -184,8 +184,8 @@ pkg_install_dir=${OPENMPI_INSTALL_DIR}/${OPENMPI_VERSION}/${AVFS_COMPILER}/${AVF
--libdir="${pkg_install_dir}/lib" \
--enable-mpi1-compatibility \
${EXTRA_CONFIGURE_FLAGS}
make -j$(procs)
make -j$(procs) install
make -j$(nproc)
make -j$(nproc) install
## INSTALL MPICH FROM SOURCE
module load gcc/${GCC_VERSION} cmake/${CMAKE_VERSION}
@ -221,8 +221,8 @@ pkg_install_dir=${MPICH_INSTALL_DIR}/${MPICH_VERSION}/${AVFS_COMPILER}/${AVFS_CO
--without-x \
--enable-gl=no \
--with-device=${MPICH_DEVICE}
make -j$(procs)
make -j$(procs) install
make -j$(nproc)
make -j$(nproc) install
MPIRUN="${pkg_install_dir}/bin/mpiexec"
@ -289,34 +289,7 @@ make -j$(nproc) \
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 -j$(nproc) install
./scripts/install_fftw.sh
## INSTALL HDF5 FROM SOURCE
module load gcc/8.1.0 openmpi/4.1.4 cmake/3.21.3

75
scripts/install_fftw.sh Normal file
View file

@ -0,0 +1,75 @@
#!/bin/bash
if [[ "$BASH_SOURCE" == "$0" ]]; then
BUILD_LOCATION=${PWD}
INSTALL_LOCATION=/avfs/people/parl703
LOG_LINES=200
else
ROOT=${PWD}
fi
TARGET_CPU=${TARGET_CPU:-"native"}
echo "==================== Installing FFTW ===================="
FFTW_VERSION=3.3.10
FFTW_BUILD_DIR=${BUILD_LOCATION}/fftw
FFTW_INSTALL_DIR=${INSTALL_LOCATION}/fftw/${FFTW_VERSION}
mkdir -p ${FFTW_BUILD_DIR}
mkdir -p ${FFTW_INSTALL_DIR}
cd ${FFTW_BUILD_DIR}
if [ -f fftw-${FFTW_VERSION}.tar.gz ]; then
echo "fftw-${FFTW_VERSION}.tar.gz is found"
else
wget -c ftp://ftp.fftw.org/pub/fftw/fftw-${FFTW_VERSION}.tar.gz
fi
#[ -d fftw-${FFTW_VERSION}/build ] && rm -rf fftw-${FFTW_VERSION}/build
#tar -xf fftw-${FFTW_VERSION}.tar.gz
cd fftw-${FFTW_VERSION}
mkdir -p build && cd build
FFTW_FLAGS="--enable-shared"
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
if [ "$BUILD_SINGLE" = true ]; then
FFTW_FLAGS="--enable-float ${FFTW_FLAGS}"
fi
if [ "$OPENMP_ENALBED" = true ]; then
FFTW_FLAGS="--enable-openmp ${FFTW_FLAGS}"
OTHER=openmp
else
FFTW_FLAGS="--enable-threads ${FFTW_FLAGS}"
OTHER=smp
fi
if [ "$MPI_ENABLED" = true ]; then
FFTW_FLAGS="--enable-mpi ${FFTW_FLAGS}"
FFTW_INSTALL_DIR=${FFTW_INSTALL_DIR}/${MPI_MODE}/${MPI_VERSION}
else
FFTW_INSTALL_DIR=${FFTW_INSTALL_DIR}/${OTHER}
fi
echo "Installing from scratch into ${FFTW_INSTALL_DIR}"
echo ${FFTW_FLAGS}
../configure --prefix=${FFTW_INSTALL_DIR} ${FFTW_FLAGS} > configure.log 2>&1 || tail -n ${LOG_LINES} configure.log
make -j$(nproc) > make.log 2>&1 || tail -n ${LOG_LINES} make.log
if [ -z "$SKIP_CHECK" ]; then
echo -n "Checking that everything is working properly ... "
make -j$(nproc) check > check.log 2>&1 || tail -n ${LOG_LINES} check.log
echo "Success!"
fi
#make -j$(nproc) install > install.log 2>&1 || tail -n ${LOG_LINES} install.log
if [[ "$BASH_SOURCE" != "$0" ]]; then
cd ${ROOT}
echo "Exiting ..."
fi