Dears,
I'd like to compile for parallel execution wannier90.x on LEONARDO
supercomputer at CINECA (Italy).
The version made available there by the staff includes a serial-only
executable (eg in the module
quantum-espresso/7.4.1--hpcx-mpi--2.19--nvhpc--24.5-openblas). The
pw2wannier90.x is already available for a parallel execution.
I'm downloading wannier90-3.1.0 and compiling it with the following
commands (make.inc is also included below):
= = = = =
wgethttps://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz
tar xzpf v3.1.0.tar.gz
cd wannier90-3.1.0/
module load fftw/3.3.10--openmpi--4.1.6--gcc--12.2.0-spack0.22
module load openblas/0.3.26--gcc--12.2.0
module load netlib-scalapack/2.2.0--openmpi--4.1.6--gcc--12.2.0-spack0.22
module load openmpi/4.1.6--gcc--12.2.0-cuda-12.2
module load gcc/12.2.0
module load cmake
module load git
cat << EOF > make.inc
F90 = gfortran
COMMS = mpi
MPIF90 = mpif90
FCOPTS = -O3 -fallow-argument-mismatch -g
LDOPTS =
LIBS = -lscalapack -lopenblas
EOF
make wannier
= = = = =
Notice that I had to add -fallow-argument-mismatch or MPI compilation
returned errors. The same flag is also used to build quantum-espresso.
Compilation is apparently successful; wannier90.x works perfectly if run
on a single CPU, and it is recognized as parallel if run on more than 1
(e.g., "Running in parallel on 2 CPUs"). However, it crashes with an
invalid memory reference if it is run on more than one task. Detailed
error follows:
====
[lrdn1315:32517:0:32517] Caught signal 11 (Segmentation fault: address not
mapped to object at address (nil))
==== backtrace (tid: 32517) ====
0 0x0000000000012cf0 __funlockfile() :0
1 0x00000000000ceea2 __memmove_avx_unaligned_erms() :0
2 0x00000000004ea62e __w90_comms_MOD_comms_scatterv_cmplx_4() ???:0
3 0x0000000000451873 __w90_overlap_MOD_overlap_read() ???:0
4 0x0000000000404a8c MAIN__() wannier_prog.F90:0
5 0x00000000004051f6 main() ???:0
6 0x000000000003ad85 __libc_start_main() ???:0
7 0x000000000040362e _start() ???:0
=================================
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x1525552f2cef in ???
#1 0x152554fe9ea2 in ???
#2 0x4ea62d in __w90_comms_MOD_comms_scatterv_cmplx_4
at ../comms.F90:1247
#3 0x451872 in __w90_overlap_MOD_overlap_read
at ../overlap.F90:207
#4 0x404a8b in ???
#5 0x4051f5 in ???
#6 0x152554f55d84 in ???
#7 0x40362d in ???
#8 0xffffffffffffffff in ???
I tested with my own cases, but the same problem already shows up with
the GaAs as included in example01. If you have access to LEONARDO, here
are paths for:
the test:
/leonardo/home/userexternal/gfratesi/Public/Compiling.d/test-wannier90-3.1.0/example01
the code:
/leonardo/home/userexternal/gfratesi/Public/Compiling.d/wannier90-3.1.0
Does anyone already compiled wannier90.x for parallel execution on LEONARDO?
Kind regards,
Guido Fratesi
--
Guido Fratesi
Associate Professor
Physics Department "Aldo Pontremoli"
University of Milan
Via Celoria 16, 20133 Milan, Italy
web:https://sites.google.com/site/guidofratesi/
_______________________________________________
Wannier mailing list
[email protected]
https://lists.quantum-espresso.org/mailman/listinfo/wannier