Those undefined references, such as _intel_fast_memcpy, are defined in
an Intel compiler library [1].?0?2 When using Intel compilers
(ifort/icc/mpiifort), typically mkl is used instead of OpenBLAS as well
as the Intel MPI Library [2].?0?2 Since you have used the gnu compilers
(gfortran/gcc) to compile OpenBLAS, WIEN2k, and your flavor of mpi
(whether that be Open-MPI [3], MVAPICH [4], or another one [5]), most
likely you need to recompile FFTW3 with your mpi compiler (e.g. [6])
based on gfortran/gcc too.
[1] https://software.intel.com/en-us/forums/intel-c-compiler/topic/815696
[2]
https://software.intel.com/content/www/us/en/develop/tools/mpi-library.html
[3] https://www.open-mpi.org/
[4] http://mvapich.cse.ohio-state.edu/
[5] https://en.wikipedia.org/wiki/MPICH#MPICH_derivatives
[6] https://www.open-mpi.org/faq/?category=mpi-apps#general-build
On 6/15/2020 7:36 PM, ???? wrote:
Thank you for your details.
Now, there is another problem. In order to generate the lapw0_mpi
command, when I run ??make para?? in the SRC_lapw0, a part of the errors
is shown as the following and the whole information is attached:
mpif90 -o ./lapw0_mpi cputim.o modules.o?0?2 W2kinit.o fft_modules.o
reallocate.o acggac.o ????
ylm.o -ffree-form -O2 -ftree-vectorize -march=native
-ffree-line-length-none -ffpe-summary=none -DFFTW3
-I/home-yw/Soft/fftw-3.3.8/include -fopenmp -L../SRC_lib -lfftw3_mpi
-L/home-yw/Soft/fftw-3.3.8/lib -lfftw3
/home-yw/soft/packagedir/Openblas-0.39/gcc820/lib/libopenblas.so
/home-yw/Soft/fftw-3.3.8/lib/libfftw3_mpi.so: undefined reference to
`_intel_fast_memcpy'
/home-yw/Soft/fftw-3.3.8/lib/libfftw3_mpi.so: undefined reference to
`_intel_fast_memset'
/home-yw/Soft/fftw-3.3.8/lib/libfftw3_mpi.so: undefined reference to
`_intel_fast_memmove'
/home-yw/Soft/fftw-3.3.8/lib/libfftw3_mpi.so: undefined reference to
`__intel_sse2_strlen'
collect2: error: ld returned 1 exit status
make[1]: *** [lapw0_mpi] Error 1
make[1]: Leaving directory `/home-yg/users/YG_cheny/Soft/19.2/SRC_lapw0'
make: *** [para] Error 2
------------------?0?2?????????0?2------------------
*??????:*?0?2"Gavin Abo"<gs...@crimson.ua.edu>;
*????????:*?0?22020??6??8??(??????) ????8:18
*??????:*?0?2"wien"<wien@zeus.theochem.tuwien.ac.at>;
*????:*?0?2Re: [Wien] Wien Installation
In terms of OpenBLAS-0.3.9 libraries, in my OpenBLAS-0.3.9/lib, there
are several files as the below: libopenblas_nehalemp-r0.3.9.a,
libopenblas_nehalemp-r0.3.9.so, libopenblas.so, libopenblas.so.0,
libopenblas.a. Are they as same as yours?
I have the following, but you have the same one named "libopenblas.so"
that I use.
username@computername:~/WIEN2k$ ls ~/OpenBLAS-0.3.9/*.a
~/OpenBLAS-0.3.9/*.so
/home/username/OpenBLAS-0.3.9/libopenblas.a
/home/username/OpenBLAS-0.3.9/libopenblas_barcelonap-r0.3.9.a
/home/username/OpenBLAS-0.3.9/libopenblas_barcelonap-r0.3.9.so
/home/username/OpenBLAS-0.3.9/libopenblas.so
In addition, are there commands such as lapw0_mpi, lapw1_mpi and
lapw1c_mpi generated by installing with gfortran+OpenBLAS, just like
by installing with ifort?
No, the Intel Parallel Studio XE 2020 Cluster Edition has the Intel
MPI Library [1] that provides intelmpi making it easy to build the
WIEN2k *_mpi files.?0?2 For gfortran, it can be done but it is extra work
as one has to install scalapack [2] and MPI (such as OpenMPI [3])
separately and then include them in the parallel compiler settings of
WIEN2k in order to build the files.
[1]
https://software.intel.com/content/www/us/en/develop/tools/parallel-studio-xe.html
[2] http://www.netlib.org/scalapack/
[3] https://www.open-mpi.org/software/ompi/v4.0/
Then during ./siteconfig_lapw, I choose O to set libraries
??R_LIBS(LAPACK+BLAS)??, then how to set the ??Real libraries??? Would
you like to tell me how set the ??Real libraries?? parameter so that
could obtain the result just like your path for R_LIBS as
??-L/home/username/OpenBLAS-0.3.9 -lopenblas -llapack_lapw ?Clpthread???
In my setting, I did a couple of tries and obtain three kinds of
results as below:
1.When I set the R_LIBS such as
/home/username/OpenBLAS-0.3.9/lib/libopenblas.so (or
libopenblas.so.0, or libopenblas_nehalemp-r0.3.9.so), then the
massage is: /usr/bin/ld: warning: libgfortran.so.3, needed by
/home-yw/Soft/OpenBLAS-0.3.9/lib/libopenblas.so, may conflict with
libgfortran.so.5.
2.When I set the R_LIBS such as /home/username/OpenBLAS-0.3.9/lib or
/home/username/OpenBLAS-0.3.9, then the massage is: file not
recognized: Is a directory.
3.When I set he R_LIBS such as ?0?2/home/username/OpenBLAS-0.3.9/lib/
libopenblas_nehalemp-r0.3.9.a (or libopenblas.a), then the error
massage is much, including:
/home-yw/Soft/OpenBLAS-0.3.9/lib/libopenblas_nehalemp-r0.3.9.a(blas_server.o):
In function `goto_set_num_threads': blas_server.c:(.text+0x7f3):
undefined reference to `pthread_create'.
All above relating files were attached.
Attached is copy of my compile.msg from SRC_aim that you can compare
to yours.
Below is what I used for a basic WIEN2k 19.2 install that should work
for serial and k-point parallel calculations (but won't work for mpi
calculations).?0?2 Of note, it looks like you will need to replace
"/home/username/OpenBLAS-0.3.9" with
"/home-yw/Soft/OpenBLAS-0.3.9/lib" on your system.?0?2 Also, you might
notice below that the "-llapack_lapw" of WIEN2k is not needed since
-lopenblas contains it own lapack library.
username@computername:~/WIEN2k$ ls WIEN2k_INSTALLDATE
WIEN2k_INSTALLDATE
username@computername:~/WIEN2k$ rm WIEN2k_INSTALLDATE
username@computername:~/WIEN2k$ ./siteconfig
...
continue or stop (c/s) c
...
?0?2 Selection: LG
...
?0?2?0?2?0?2?0?2 Press RETURN to continue
...
?0?2?0?2?0?2?0?2 Your compiler: gfortran
...
?0?2?0?2?0?2?0?2 Your compiler: gcc
...
?0?2Would you like to use LIBXC (that you have installed - usually not
needed)? (y,N):
N
...
?0?2Do you want to use FFTW (recommended, but for sequential code not
required)? (Y,n): n
...
Selection: R
?0?2?0?2?0?2?0?2 Real libraries=-L/home/username/OpenBLAS-0.3.9 -lopenblas
-lpthread
...
?0?2Current settings:
?0?2 M?0?2?0?2 OpenMP switch:?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2 -fopenmp
?0?2 O?0?2?0?2 Compiler options:?0?2?0?2?0?2?0?2?0?2?0?2?0?2 -ffree-form -O2 -ftree-vectorize
-march=native -ffree-line-length-none -ffpe-summary=none
?0?2 L?0?2?0?2 Linker Flags:?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2?0?2
$(FOPT) -L../SRC_lib
?0?2 P?0?2?0?2 Preprocessor flags?0?2?0?2?0?2?0?2?0?2?0?2 '-DParallel'
?0?2 R?0?2?0?2 R_LIBS (LAPACK+BLAS):?0?2?0?2?0?2 -L/home/username/OpenBLAS-0.3.9
-lopenblas -lpthread
?0?2 F?0?2?0?2 FFTW options:
?0?2?0?2?0?2?0?2?0?2 FFTW-LIBS:
?0?2 X?0?2?0?2 LIBX options:
?0?2?0?2?0?2?0?2?0?2 LIBXC-LIBS:
?0?2 S?0?2?0?2 Save and Quit
?0?2?0?2?0?2?0?2?0?2 To change an item select option.
Selection: S
...
?0?2 Shared Memory Architecture? (y/N):y
?0?2 Do you know/need a command to bind your jobs to specific nodes?
?0?2 (like taskset -c). Enter N / your_specific_command: N
...
?0?2?0?2 (y/N) N
...
?0?2?0?2?0?2?0?2 Selection: Q
...
?0?2?0?2?0?2?0?2 Selection: A
...
Compile time errors (if any) were:
Check file?0?2?0?2 compile.msg?0?2?0?2 in the corresponding SRC_* directory for
the
compilation log and more info on any compilation problem.
...
?0?2?0?2 Please enter the full path of the perl program: /usr/bin/perl
...
?0?2Please enter the full path to your temporary directory: /tmp
...
username@computername:~/WIEN2k$ userconfig
...
username@computername:~/WIEN2k$ gedit ~/.bashrc
username@computername:~/WIEN2k$ grep LD_LIBRARY ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/OpenBLAS-0.3.9
_______________________________________________
Wien mailing list
Wien@zeus.theochem.tuwien.ac.at
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at:
http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html