[Wannier] Parallel wannier90.x on LEONARDO

Guido Fratesi guido.fratesi at unimi.it
Wed Jan 28 10:51:11 CET 2026


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/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/wannier/attachments/20260128/9d638cf7/attachment.html>


More information about the Wannier mailing list