Page 1 of 1

Yambo 5.2.4 qe_pseudo build error

Posted: Tue Nov 12, 2024 2:18 pm
by jmcastelo
Dear community.

I'm trying to parallel compile Yambo 5.2.4 on a cluster with Intel OneApi 2023.2.0 and Intel MPI 2021.10.0.
The architecture is x86_64 GNU/Linux.
This is the configuration script used:

Code: Select all

#!/bin/bash

LIBXC_ROOT="/apps/GPP/LIBXC/6.2.0/INTEL"
YAMBO_LIBS_ROOT="${HOME}/sandbox/yambo-libs"

PREFIX="/gpfs/projects/uv105/apps/YAMBO/5.2.4-SINGLE/INTEL2023.2/IOMPI2021.10"

./configure \
--prefix="${PREFIX}" \
--enable-msgs-comps \
--enable-time-profile \
--enable-mpi \
--enable-open-mp \
--enable-iotk \
--without-editor \
--enable-memory-profile \
--enable-keep-src \
--enable-slepc-linalg \
--enable-hdf5-par-io \
--with-mpi-path="${MPI_ROOT}" \
--with-netcdf-path="${NETCDF_ROOT}" \
--with-netcdff-path="${NETCDF_ROOT}" \
--with-hdf5-path=${HDF5_ROOT} \
--with-fft-includedir="${MKLROOT}/include/fftw" \
--with-fft-libs="-L${MKLROOT}/lib/intel64 -lmkl_cdft_core -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl" \
--with-blas-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl" \
--with-lapack-libs="-L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_blacs_intelmpi_lp64 -liomp5 -lpthread -lm -ldl" \
--with-blacs-libs=mkl \
--with-scalapack-libs=mkl \
--with-petsc-path="${PETSC_DIR}" \
--with-slepc-path="${SLEPC_DIR}" \
--with-libxc-path="${LIBXC_ROOT}" \
--with-extlibs-path="${YAMBO_LIBS_ROOT}"
Build process stops with error when compiling qe_pseudo code, as well as iotk code.
Attached please find the config and compilation logs.

Looking at the compilation log errors, which are syntax errors, I get the impression that the compiler is the issue.
How to know which Fortran compiler is being effectively used?
If configuration went fine, MPI Intel compilers should be used, but on the logs it looks like ifx may be causing the syntax errors.

Since the loaded Intel modules set some compiler environment variables (CC, FC, etc.), maybe they are overriding those used set during the configuration phase, but I'm not sure...

Note that the cluster policy does not allow for external downloads to the login nodes, so I had to manually copy both Ydriver-1.4.2.tar.gz and iotk-y1.2.2.tar.gz into the ./lib/archive directory.

Any help will be welcome!
Thanks.
José

Re: Yambo 5.2.4 qe_pseudo build error

Posted: Wed Nov 13, 2024 11:55 am
by Nicola Spallanzani
Dear José,
the compiler that you are using is the old intel ifort, and this is correct because the released versions of yambo only support that (the development version also support the oneapi one, ifx).

However, it seems that the fpp wrapper automatically detected is the one of the new compilers. So try adding this variable definition in your configure line:

Code: Select all

FPP="/gpfs/apps/MN5/GPP/ONEAPI/2023.2.0/compiler/latest/linux/bin/intel64/fpp -free -P" 
Please, before launch the "make distclean" command.

Best,
Nicola

Re: Yambo 5.2.4 qe_pseudo build error

Posted: Wed Nov 13, 2024 2:55 pm
by jmcastelo
Thanks Nicola!

Even if I set the Fortran preprocessor variable as you suggested and run "make distclean", the same error arose.
Luckily I had the idea to delete the compilation directory and extract the source code again, starting from scratch with your suggestion.
Then, compilation was successful.

Now, let's feed the team with the devel Yambo versions! :D
Best wishes,
José

Re: Yambo 5.2.4 qe_pseudo build error

Posted: Wed Nov 13, 2024 3:36 pm
by jmcastelo
Hi again.

When yambo executable is run on a login node to check that the compilation went fine, the following error arises:

Code: Select all

Abort(1090831) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init: Other MPI error, error stack:
MPIR_Init_thread(176):
MPID_Init(1439)......:
MPIR_pmi_init(169)...: PMI2_Job_GetId returned 14
Is this to be expected?
I never saw it before.

Re: Yambo 5.2.4 qe_pseudo build error

Posted: Wed Nov 13, 2024 3:43 pm
by Nicola Spallanzani
I think it is correct if you have launched the executable by itself.
Try using also mpirun or mpiexec before the yambo executable.

Re: Yambo 5.2.4 qe_pseudo build error

Posted: Wed Nov 13, 2024 3:50 pm
by jmcastelo
With mpirun, it looks like lots of MPI processes start, with the following output excerpt:

Code: Select all

MPI startup(): Warning: I_MPI_PMI_LIBRARY will be ignored since the hydra process manager was found
forrtl: No such file or directory
forrtl: severe (29): file not found, unit 13, file /gpfs/home/uv/uvuser/./LOG/l_setup_CPU_38
Image              PC                Routine            Line        Source
yambo              0000000001427C5C  for_open              Unknown  Unknown
yambo              00000000005DFB3A  Unknown               Unknown  Unknown
yambo              00000000005D6E29  Unknown               Unknown  Unknown
yambo              000000000041A2D3  Unknown               Unknown  Unknown
yambo              00000000008013E5  Unknown               Unknown  Unknown
yambo              0000000000419545  Unknown               Unknown  Unknown
libc.so.6          00007FD22D4CCEB0  Unknown               Unknown  Unknown
libc.so.6          00007FD22D4CCF60  __libc_start_main     Unknown  Unknown
yambo              0000000000419365  Unknown               Unknown  Unknown

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   RANK 0 PID 3298546 RUNNING AT glogin2
=   KILLED BY SIGNAL: 9 (Killed)
===================================================================================
Any idea if this is to be expected?

Re: Yambo 5.2.4 qe_pseudo build error

Posted: Wed Nov 13, 2024 4:02 pm
by jmcastelo
I guess it is fine, because when run as:

Code: Select all

mpiexec -n 1 yambo
The usual yambo error message (cannot access CORE datables) is displayed and the MPI process aborts.