rcps-buildscripts icon indicating copy to clipboard operation
rcps-buildscripts copied to clipboard

Install Request: Install the latest version of SIESTA including PSML support [IN05728696]

Open balston opened this issue 2 years ago • 17 comments

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

balston avatar Dec 22 '22 12:12 balston

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.

balston avatar Jan 04 '23 16:01 balston

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

balston avatar Jan 04 '23 17:01 balston

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".

balston avatar Jan 05 '23 17:01 balston

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.

balston avatar Jan 05 '23 17:01 balston

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.

balston avatar Jan 05 '23 17:01 balston

My test build has finished compilation and linking.

balston avatar Jan 05 '23 18:01 balston

Updating the previous build script to install the 5.0 Development version.

balston avatar Jan 06 '23 14:01 balston

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.

balston avatar Jan 06 '23 14:01 balston

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

balston avatar Jan 06 '23 17:01 balston

User emailed and asked to test.

balston avatar Jan 06 '23 17:01 balston

User reports successful MPI run on Myriad.

Build script run on Kathleen.

balston avatar Jan 09 '23 16:01 balston

Module file uploaded and over to the user for testing.

balston avatar Jan 17 '23 15:01 balston

Build on Kathleen is working.

balston avatar Jan 19 '23 14:01 balston

Building on Young and Thomas (for Michael).

balston avatar Jan 23 '23 16:01 balston

Test job on Young submitted and ran successfully.

balston avatar Jan 24 '23 10:01 balston

The sync from Thomas to Michael has happened so test job submitted on Michael.

balston avatar Jan 24 '23 10:01 balston

Test job on Michael worked. Now installed on all clusters.

balston avatar Jan 24 '23 15:01 balston