<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Dears,</p>
<p>I'd like to compile for parallel execution wannier90.x on
LEONARDO supercomputer at CINECA (Italy).</p>
<p>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.</p>
<p>I'm downloading wannier90-3.1.0 and compiling it with the
following commands (make.inc is also included below):</p>
<p>= = = = =<br>
</p>
<pre>wget <a class="moz-txt-link-freetext" href="https://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz">https://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz</a>
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</pre>
<p>= = = = =</p>
<p>Notice that I had to add -fallow-argument-mismatch or MPI
compilation returned errors. The same flag is also used to build
quantum-espresso.</p>
<p>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:<br>
</p>
<p><br>
</p>
<pre>====
[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 ???</pre>
<p><br>
</p>
<p>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:</p>
<p>the test:
/leonardo/home/userexternal/gfratesi/Public/Compiling.d/test-wannier90-3.1.0/example01</p>
<p>the code:
/leonardo/home/userexternal/gfratesi/Public/Compiling.d/wannier90-3.1.0<br>
</p>
<p>Does anyone already compiled wannier90.x for parallel execution
on LEONARDO?</p>
<p>Kind regards,</p>
<p>Guido Fratesi<br>
</p>
<p><br>
</p>
<pre class="moz-signature" cols="72">--
Guido Fratesi
Associate Professor
Physics Department "Aldo Pontremoli"
University of Milan
Via Celoria 16, 20133 Milan, Italy
web: <a class="moz-txt-link-freetext" href="https://sites.google.com/site/guidofratesi/">https://sites.google.com/site/guidofratesi/</a></pre>
</body>
</html>