UCL-RITS / rcps-buildscripts

Scripts to automate package builds on RC Platforms
MIT License
39 stars 26 forks source link

Install Request: Yambo 5.2 #565

Closed heatherkellyucl closed 3 months ago

heatherkellyucl commented 12 months ago

IN:06340800

Should be a straightforward update from https://github.com/UCL-RITS/rcps-buildscripts/blob/b15e1baae012675284718457359fcb3a53cf9926/yambo-5.0.1_install

One question: should we update the compiler and MPI from Intel 2017 to compilers/intel/2022.2 and mpi/intel/2021.6.0/intel or stick with the current?

https://github.com/yambo-code/yambo/ https://www.yambo-code.eu/wiki/index.php?title=Installation - don't appear to be any relevant known issues either way.

DanielChau128 commented 12 months ago

Since the build script already exists, would I just be "releasing the compiled software" from "https://github.com/UCL-ARC/hpc-support/wiki/Research-Software-Build-Scripts#releasing-the-compiled-software" ?

heatherkellyucl commented 12 months ago

You would start by making a new version of the build script called yambo-5.2_install that is updated for Yambo 5.2, and with the compiler changes if we decide we need to do those.

heatherkellyucl commented 12 months ago

package_version="5.0.1" needs updating, and possibly this part:

_env_setup() {
    module purge
    require  gcc-libs
    require  compilers/intel/2017/update4
    require  mpi/intel/2017/update3/intel
heatherkellyucl commented 12 months ago

Requestor wants to use it with abinit so we probably need compilers/intel/2018/update3 and mpi/intel/2018/update3/intel to match the existing abinit module (note, some bad MKL bugs with Intel 2018, it might be ok if they don't hit the bugs - but they'll need to test if they get reasonable physical results).

DanielChau128 commented 11 months ago

Changed some of the required compilers: • compilers/intel/2018/update3 • mpi/intel/2018/update3/intel

and changed the package version to 5.2.0. Changed some of the config flags to --enable-netcdf-output and removed --enable-etsf-io.

This version I was able to successfully install from my local repo to my own area. Pushed, then pulled as ccspapp, when I tried to run the install as ccspapp there was an error:

mkdir: cannot create directory '/shared/ucl/apps/yambo/5.2.0/intel-2018/bin': No such file or directory
make[2]: *** [exe] Error 1
make[1]: *** [yambo] Error 1
yambo build failed

Tested with moving mkdir -p "$install_prefix" to the start of the build section, and removed cp -r bin doc "$install_prefix"/, new errors: a2y linking failed. Check log/compile_a2y.log make[1]: *** [a2y] Error 1 a2y build failed

DanielChau128 commented 11 months ago

Tried to run the install script in the shared folders area (version before moving mkdir -p "$install_prefix" and removing cp -r bin doc "$install_prefix"/) into home area (as myself, not ccspapp) and that worked.

DanielChau128 commented 10 months ago

Log files for a recent install failure where a2y linking failed. compile_a2y-log.txt config-report.txt config-setup.txt

balston commented 10 months ago

I have built ABINIT 9.10.3 on Kathleen with the Intel 2022 compilers and MPI in case this helps with the Yambo build.

The modules needed for this version of ABINIT are:

module -f unload compilers mpi gcc-libs
module load beta-modules
module load gcc-libs/10.2.0
module load compilers/intel/2022.2
module load mpi/intel/2019/update6/intel
module load fftw/3.3.10-impi/intel-2022
module load hdf/5-1.12.3-impi/intel-2022
module load netcdf/4.9.2/intel-2022
module load netcdf-fortran/4.6.1/intel-2022
module load libxc/6.2.2/intel-2022
module load python3/recommended
module load abinit/9.10.3/intel-2022
DanielChau128 commented 10 months ago

The newer log/compile_a2y.log: compile_a2y-log4.txt config-setup4.txt config-report4.txt

heatherkellyucl commented 10 months ago

Something netcdf is wrong:

/tmp/yambo-build.99T9xiPgbo/yambo-5.2.0/lib/libcommunicate.a(com_utilities_netcdf.o): In function `of_netcdf_shadow_real_':
/tmp/yambo-build.99T9xiPgbo/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:84: undefined reference to `def_variable_bulk_'
/tmp/yambo-build.99T9xiPgbo/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:85: undefined reference to `def_variable_bulk_'
/tmp/yambo-build.99T9xiPgbo/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:91: undefined reference to `io_variable_bulk_'
[ccaedrc@login02 log]$
/tmp/yambo-build.99T9xiPgbo/yambo-5.2.0/lib/libcommunicate.a(com_utilities_netcdf.o): In function `of_netcdf_shadow_char_':
heatherkellyucl commented 10 months ago

It does have an Spack recipe at https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/yambo/package.py (but only for 5.1.1 which might not help).

They are passing in

"--enable-netcdf-hdf5",
"--enable-hdf5-compression",
"--with-hdf5-libs=
"--with-netcdf-path=
"--with-netcdff-path=
DanielChau128 commented 9 months ago

I have passed in:

    module purge
    require  beta-modules
    require  gcc-libs/10.2.0
    require  compilers/intel/2022.2
    require  mpi/intel/2019/update6/intel
    require  libxc/6.2.2/intel-2022
    require  hdf/5-1.12.3-impi/intel-2022
    require  netcdf/4.9.2/intel-2022
    require  netcdf-fortran/4.6.1/intel-2022

and

        --with-fft-libs=-mkl \
        --with-blas-libs=-mkl \
        --with-lapack-libs=-mkl \
        --enable-netcdf-output \
        --enable-hdf5-par-io \
        --with-libxc-path="/shared/ucl/apps/libxc/6.2.2/intel-2022/" \
        --with-hdf5-path="/shared/ucl/apps/HDF/5-1.12.3/impi/intel-2022/" \
        --with-netcdf-path="/shared/ucl/apps/NetCDF/4.9.2-intel-2022/" \
        --with-netcdff-path="/shared/ucl/apps/NetCDF-fortran/4.6.1-intel-2022/" \

compile_a2y-6.txt config-report6.txt config-setup6.txt

balston commented 9 months ago

I'm trying a build in my ~/Scratch/Software/Yambo/build directory using a slightly modified local copy of the build script logging all the output from the build process.

DanielChau128 commented 9 months ago

I have been able to install yambo-5.1.1 using a personal install of Spack.

NicoleLabrAvila commented 5 months ago

Hi, was this installation finished? There is a ticket asking for it and I don't see it available in the clusters. Many thanks

heatherkellyucl commented 5 months ago

Status: our buildscript was still giving us an error at:

mpiifort -assume bscc -O3 -g -ip    -nofor-main    -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include/headers/common -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include/headers/parser -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib/yambo/Ydriver/include -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include/driver -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include/version -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib/external/intel/mpiifort/include/  -I/shared/ucl/apps/NetCDF-fortran/4.6.1-intel-2022//include -I/shared/ucl/apps/NetCDF/4.9.2-intel-2022//include   -I/shared/ucl/apps/HDF/5-1.12.3/impi/intel-2022//include -I/shared/ucl/apps/libxc/6.2.2/intel-2022//include    -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib/yambo/Ydriver/include -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include/driver -I/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/include/version -o a2y driver.o netcdf_data.o a2y.o a2y_db1.o a2y_wf.o a2y_kb_pp.o -L/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib -lint_modules -lbz_ops -lstop_and_restart -linterface -lsetup -lio_parallel -lio -lYio -ltiming -lcommon -loutput -lparser -lparallel -llinear_algebra -lmatrices -lmodules -lcommunicate -lallocations -lmemory -ltools -la2y_Ydriver_main -la2y_Ydriver_interface -la2y_Ydriver_options -ldriver   -lqe_pseudo -lmath77 -lslatec -llocal   -mkl -mkl /tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib/external/intel/mpiifort/lib/libiotk.a  -L/shared/ucl/apps/NetCDF-fortran/4.6.1-intel-2022//lib -lnetcdff -L/shared/ucl/apps/NetCDF/4.9.2-intel-2022//lib -lnetcdf -L/shared/ucl/apps/HDF/5-1.12.3/impi/intel-2022//lib -lhdf5hl_fortran -lhdf5_fortran -lhdf5_hl -lhdf5 -L/shared/ucl/apps/libxc/6.2.2/intel-2022//lib -lxcf90 -lxcf03 -lxc -mkl   -lm
ifort: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
ifort: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
ifort: command line remark #10412: option '-mkl' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl'
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib/libcommunicate.a(com_utilities_netcdf.o): In function `of_netcdf_shadow_real_':
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:84: undefined reference to `def_variable_bulk_'
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:85: undefined reference to `def_variable_bulk_'
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:91: undefined reference to `io_variable_bulk_'
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:92: undefined reference to `io_variable_bulk_'
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/lib/libcommunicate.a(com_utilities_netcdf.o): In function `of_netcdf_shadow_char_':
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:163: undefined reference to `def_variable_bulk_'
/tmp/yambo-build.yDKXYTLnBN/yambo-5.2.0/src/communicate/com_utilities_netcdf.f90:174: undefined reference to `io_variable_bulk_'

Spack worked to build 5.1.1, doesn't currently have 5.2.

NicoleLabrAvila commented 4 months ago

Yambo 5.2.3 was installed in the clusters, except Michael for the moment. The build worked with --enable-netcdf-classic \ or --enable-netcdf-v3. I asked the user to test if the installed version meets their requirements.

NicoleLabrAvila commented 3 months ago

User reported Yambo 5.2.3 is working well. Ticket was closed