rcps-buildscripts
rcps-buildscripts copied to clipboard
Install Request: Install the latest version of SIESTA including PSML support [IN05728696]
Currently we have version 4.0.1 without PSML support.
Latest version (4.1.5?) with PSML support available from:
https://gitlab.com/siesta-project/siesta/tree/psml-support
I'm investigating if the PSML branch of Siesta can be built with simple mods of the build script for the 4.0.2 version.
SIESTA can now be built using CMAKE which may make the build for us easier:
https://gitlab.com/siesta-project/siesta/-/wikis/Installing-Siesta-With-CMake
and we need to use the current development brach as the latest release 4.1.5 doesn't include PSML support:
https://gitlab.com/siesta-project/siesta/-/wikis/Guide-to-Siesta-versions
I've been doing a test installation in my Scratch with our default (2018) Intel Compilers and MPI plus it also needed NetCDF modules so modules loaded are the following:
module load compilers/intel/2018/update3
module load mpi/intel/2018/update3/intel
module load hdf/5-1.10.2-impi/intel-2018
module load netcdf/4.9.0/intel-2018-update3
module load netcdf-fortran/4.5.4/intel-2018-update3
Our CMAKE module is up to date enough.
The CMAKE configure step still fails with:
Using an Intel compiler
-- Flags for Fortran-compiler (build type: ReleaseWithDebInfo):
-- Flags for C-compiler (build type: ReleaseWithDebInfo):
-- Found MPI: TRUE (found version "3.1") found components: Fortran C
-- Found MPI: TRUE (found version "3.1")
-- Found NetCDF: /shared/ucl/apps/NetCDF/4.9.0-intel-2018/include;/shared/ucl/apps/NetCDF-fortran/4.5.4-intel-2018/include (found suitable version "4.9.0", minimum required is "4.0.0") found components: Fortran C
-- FindNetCDF defines targets:
-- - NetCDF_VERSION [4.9.0]
-- - NetCDF_PARALLEL [TRUE]
-- - NetCDF_C_CONFIG_EXECUTABLE [/shared/ucl/apps/NetCDF/4.9.0-intel-2018/bin/nc-config]
-- - NetCDF::NetCDF_C [SHARED] [Root: /shared/ucl/apps/NetCDF/4.9.0-intel-2018] Lib: /shared/ucl/apps/NetCDF/4.9.0-intel-2018/lib/libnetcdf.so
-- - NetCDF_Fortran_CONFIG_EXECUTABLE [/shared/ucl/apps/NetCDF-fortran/4.5.4-intel-2018/bin/nf-config]
-- - NetCDF::NetCDF_Fortran [SHARED] [Root: /shared/ucl/apps/NetCDF-fortran/4.5.4-intel-2018] Lib: /shared/ucl/apps/NetCDF-fortran/4.5.4-intel-2018/lib/libnetcdff.so
-- Looking for Fortran sgemm
-- Looking for Fortran sgemm - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Looking for Fortran sgemm
-- Looking for Fortran sgemm - found
-- Found BLAS: /shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_core.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin/libiomp5.so;-lpthread;-lm;-ldl
-- Looking for Fortran cheev
-- Looking for Fortran cheev - found
-- Found LAPACK: /shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_core.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin/libiomp5.so;-lpthread;-lm;-ldl;-lpthread;-lm;-ldl
-- Found CustomLapack: /shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/mkl/lib/intel64_lin/libmkl_core.so;/shared/ucl/apps/intel/2018.Update3/compilers_and_libraries_2018.3.222/linux/compiler/lib/intel64_lin/libiomp5.so;-lpthread;-lm;-ldl;-lpthread;-lm;-ldl
-- Checking that Lapack library links...
-- Performing Test LAPACK_LINKS_OK
-- Performing Test LAPACK_LINKS_OK - Success
-- Performing Test LAPACK_RETURN_CONVENTION_OK
-- Performing Test LAPACK_RETURN_CONVENTION_OK - Success
-- Scalapack: Did not find a cmake package for it
-- Checking for one of the modules 'scalapack'
-- Scalapack: Finding libraries in sundry directories...
CMake Error at /lustre/shared/ucl/apps/cmake/3.21.1/gnu-4.9.2/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find CustomScalapack (missing: SCALAPACK_LIBRARY)
Call Stack (most recent call first):
/lustre/shared/ucl/apps/cmake/3.21.1/gnu-4.9.2/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
Config/cmake/FindCustomScalapack.cmake:133 (find_package_handle_standard_args)
CMakeLists.txt:156 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/ccaabaa/Scratch/Software/SIESTA/siesta/_build/CMakeFiles/CMakeOutput.log".
See also "/home/ccaabaa/Scratch/Software/SIESTA/siesta/_build/CMakeFiles/CMakeError.log".
Probably need to set:
SCALAPACK_LIBS = -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
to point to the Intel 2018 provided Scalapack or possibly SCALAPACK_LIBRARY and SCALAPACK_LIBRARY_DIR.
I'm now using:
cmake -S. -B_build -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DSCALAPACK_LIBRARY_DIR=${MKLROOT}/lib/intel64 -DSCALAPACK_LIBRARY="-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core"
and the configure step now completes with warnings.
My test build has finished compilation and linking.
Updating the previous build script to install the 5.0 Development version.
Build script run from ccspapp:
cd /shared/ucl/apps/build_scripts
./siesta-5.0-PSML_install 2>&1 | tee ~/Software/SIESTA/siesta-5.0-PSML_install.log-06012023
No obvious errors.
Module file updated and now on Myriad.
Uses the default 2018 Intel compilers and MPI plus the following module files:
module load hdf/5-1.10.2-impi/intel-2018
module load netcdf/4.9.0/intel-2018-update3
module load netcdf-fortran/4.5.4/intel-2018-update3
module load siesta/5.0-dev/intel-2018
Start the MPI version using for example:
gerun siesta RUN.fdf
User emailed and asked to test.
User reports successful MPI run on Myriad.
Build script run on Kathleen.
Module file uploaded and over to the user for testing.
Build on Kathleen is working.
Building on Young and Thomas (for Michael).
Test job on Young submitted and ran successfully.
The sync from Thomas to Michael has happened so test job submitted on Michael.
Test job on Michael worked. Now installed on all clusters.