[mephi-hpc] Thermo_PW

anikeev at ut.mephi.ru anikeev at ut.mephi.ru
Fri Oct 11 16:35:14 MSK 2024


anikeev at ut.mephi.ru писал 2024-10-10 16:36:
> Павел Кулямин писал 2024-10-10 01:16:
>> Добрый день!
> 
> Здравствуйте!
> 
>> Столкнулся с некоторыми сложностями
>> при установке дополнительного модуля
>> ThermoPW для QuantumEspresso на кластере tensor.
>> 
>> Используемый мною порядок действий:
>> 
>> 1) С официального сайта, скачал
>> последнюю стабильную версию QE 7.3.1 -
>> https://www.quantum-espresso.org/rdm-download/488/v7-3-1/7e1905f3d25a9ccef4ae109cb8f6dcce/qe-7.3.1-ReleasePack.tar.gz
>> 
>> 2) C github дополнительного модуля ThermoPW
>> скачал последнюю версию
>> дополнительного модуля которая
>> совместима с версией QE выше 7.2 -
>> https://github.com/dalcorso/thermo_pw/releases/tag/2.0.0
> 
> Здесь ошибка. thermo_pw 2.0.0 совместим с QE-7.3 cтрого, даже минорные
> версии менять нельзя. Эту информацию можно найти в документе
> thermo_pw_help.md:
> 
> https://github.com/dalcorso/thermo_pw/blob/master/thermo_pw_help.md
> 
> Эта проблема обсуждалась в листе рассылки QE:
> 
> https://www.mail-archive.com/search?l=users@lists.quantum-espresso.org&q=subject:%22Re%5C%3A+%5C%5BQE%5C-users%5C%5D+error%22&o=newest&f=1
> 
> Будьте, однако, осторожны. Документ thermo_pw_help.md сам содержит
> ошибки. Например, для сборки с использованием Autotools там пропущен
> этап ./configure. В целом, проект thermo_pw производит не лучшее
> впечатление по качеству кода и документации.
> 
> Итого, вот релизы, которые должны быть совместимы:
> 
> https://github.com/dalcorso/thermo_pw/archive/refs/tags/2.0.0.tar.gz
> https://gitlab.com/QEF/q-e/-/archive/qe-7.3/q-e-qe-7.3.tar.gz
> 
>> 3) В личной папке разархивировал
>> архивы с помощью команды - TAR - XZF ' ИМЯ
>> ФАЙЛА'
>> 
>> 4) Как написано в Readme.md -  в папку с
>> qe(папка из архива 1) перенес папку thermo_pw
>> (из архива 2)
>> 
>> 5) Перешел в перенесенную папку и
>> выполнил следующую команду - MAKE JOIN_QE
>> 
>> 6) Перешел в корневую папку qe и
>> пробовал произвести установку
>> следующими способами:
>> 
>> 6.1) Последовательное выполнение
>> следующих команд:
>>       SOURCE /OPT/FFTW-3.3.10/DOUBLE/CUSTOMVARS.SH
>>       SOURCE /OPT/OPENBLAS-0.3.23/CUSTOMVARS.SH
>>       ./CONFIGURE
>>       MAKE THERMO_PW
>> Получил следующую ошибку:
>> Error: Symbol ‘using_wg_d’ referenced at (1) not found in module
>> ‘wvfct_gpum’
>> make[2]: *** [../../make.inc:16: electrons_tpw.o] Error 1
>> make[2]: Leaving directory
>> '/mnt/pool/6/pakuliamin/qe-7.3.1/thermo_pw/qe'
>> make[1]: *** [Makefile:18: thermo_qe] Error 1
>> make[1]: Leaving directory '/mnt/pool/6/pakuliamin/qe-7.3.1/thermo_pw'
>> make: *** [Makefile:88: thermo_pw] Error 1
> 
> Для сборки QE со специальными версиями FFTW и OpenBLAS недостаточно
> корректно экспортировать переменные окружения. При вызове ./configure
> без аргументов, система сборки отдаст предпочтение нестандартной и
> устаревшей версии Intel PSXE 2018, использование которой не
> рекомендуется и для использования которой при запуске нужны будут
> переменные окружения из
> /opt/intel/parallel_studio_xe_2018/psxevars.sh.
> 
> К сожалению, система сборки Autotools находится не в лучшем состоянии
> уже у апстримной версии QE. При сборке с SDK NVIDIA рекомендуется
> использовать Autotools, при сборке с SDK GNU или Intel лучше
> использовать cmake.
> 
> Для сборки QE с GNU SDK и Autotools требуется ручная правка make.inc
> после выполнения ./configure.
> 
> https://www.quantum-espresso.org/Doc/user_guide/node11.html

Пример концигурации QE при помощи Autotools с использованием gcc, 
gfortran, openmpi, openblas, scalapack из состава дистрибутива Debian и 
оптимизированного FFTW3 из /opt/fftw-3.3.10/double/

1) Экспортируйте переменные окружения:

anikeev at tensor:~$ source /opt/fftw-3.3.10/double/customvars.sh

2) Выполните в корневой директории QE команду ./configure

3) Откорректируйте следующие строки файла make.inc

DFLAGS         =  -D__FFTW -D__MPI -D__SCALAPACK
IFLAGS         = -I. -I$(TOPDIR)/include 
-I/opt/fftw-3.3.10/double/include
BLAS_LIBS      = -lopenblas
SCALAPACK_LIBS = -lscalapack-openmpi
FFT_LIBS       = -lfftw3

Полную версию файла можно посмотреть здесь:

/mnt/pool/4/anikeev/thermopw/q-e-qe-7.3/make.inc

4) Соберите QE с помощью make all

5) Проверьте корректность линковки с библиотеками:

anikeev at tensor:/mnt/pool/4/anikeev/thermopw/q-e-qe-7.3$ ldd 
bin/thermo_pw.x
         linux-vdso.so.1 (0x00007ffeca4bf000)
         libscalapack-openmpi.so.2.2 => 
/lib/x86_64-linux-gnu/libscalapack-openmpi.so.2.2 (0x00007fcbf0e00000)
         libopenblas.so.0 => /lib/x86_64-linux-gnu/libopenblas.so.0 
(0x00007fcbeeb18000)
         libmpi_mpifh.so.40 => /lib/x86_64-linux-gnu/libmpi_mpifh.so.40 
(0x00007fcbf1419000)
         libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 
(0x00007fcbee800000)
         libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 
(0x00007fcbee721000)
         libmvec.so.1 => /lib/x86_64-linux-gnu/libmvec.so.1 
(0x00007fcbee628000)
         libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007fcbf13f7000)
         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 
(0x00007fcbee447000)
         liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 
(0x00007fcbedc00000)
         libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 
(0x00007fcbee3e4000)
         libmpi.so.40 => /lib/x86_64-linux-gnu/libmpi.so.40 
(0x00007fcbedac1000)
         /lib64/ld-linux-x86-64.so.2 (0x00007fcbf3eec000)
         libopen-pal.so.40 => /lib/x86_64-linux-gnu/libopen-pal.so.40 
(0x00007fcbee32d000)
         libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 
(0x00007fcbeead1000)
         libopen-rte.so.40 => /lib/x86_64-linux-gnu/libopen-rte.so.40 
(0x00007fcbeda05000)
         libhwloc.so.15 => /lib/x86_64-linux-gnu/libhwloc.so.15 
(0x00007fcbed9a8000)
         libevent_core-2.1.so.7 => 
/lib/x86_64-linux-gnu/libevent_core-2.1.so.7 (0x00007fcbf13bd000)
         libevent_pthreads-2.1.so.7 => 
/lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.7 (0x00007fcbf13b8000)
         libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 
(0x00007fcbee30e000)
         libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 
(0x00007fcbed97a000)

5) Не забудьте повторно экспортировать переменные окружения в скрипте 
запука задачи:

anikeev at tensor:~$ source /opt/fftw-3.3.10/double/customvars.sh

>> _6.2) Последовательное выполнение
>> следующих команд:_
>> _       MKDIR BUILD_
>> _       CD BUILD_
>> _       _CMAKE -DCMAKE_C_COMPILER=MPICC
>> -DCMAKE_FORTRAN_COMPILER=MPIF90 -
>> DCMAKE_INSTALL_PREFIX=/MNT/POOL/6/PAKULIAMIN/QE-7.3.1/
>> -DBLA_VENDOR=OPENBLAS -DQE_FFTW_VENDOR=FFTW3 ../
>> Получил следующую ошибку:
>> -- Configuring done
>> CMake Error at cmake/qeHelpers.cmake:185 (add_library):
>>   Cannot find source file:
>> 
>>     lib/freecad.f90
>> Call Stack (most recent call first):
>>   thermo_pw/CMakeLists.txt:43 (qe_add_library)
>> 
>> CMake Error at cmake/qeHelpers.cmake:185 (add_library):
>>   Cannot find source file:
>> 
>>     qe/ch_psi_all_tpw.f90
>> Call Stack (most recent call first):
>>   thermo_pw/CMakeLists.txt:350 (qe_add_library)
>> 
>> CMake Error at cmake/qeHelpers.cmake:185 (add_library):
>>   No SOURCES given to target: qe_tpw_lib
>> Call Stack (most recent call first):
>>   thermo_pw/CMakeLists.txt:43 (qe_add_library)
>> 
>> CMake Error at cmake/qeHelpers.cmake:185 (add_library):
>>   No SOURCES given to target: qe_tpw_qe
>> Call Stack (most recent call first):
>>   thermo_pw/CMakeLists.txt:350 (qe_add_library)
> 
> Файл freecad.f90 отсутствует в репозитории thermo_pw. Вероятно,
> система сборки cmake для thermo_pw в данный момент находится в
> нерабочем состоянии. По этому поводу можно обратиться к разработчикам
> thermo_pw.
> 
> Пример сборки апстримного QE-7.3.1  с последней версией Intel OneAPI
> через cmake:
> 
> anikeev at tensor:/mnt/pool/4/anikeev$ tar -xvzf q-e-qe-7.3.1.tar.gz
> anikeev at tensor:/mnt/pool/4/anikeev$ cd q-e-qe-7.3.1/external/
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/external$
> ./initialize_external_repos.sh
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/external$ cd mbd/
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/external/mbd$ git pull
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/external/mbd$ git
> checkout 1c43285
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/external/mbd$ cd ../../
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1$ mkdir build
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1$ cd build/
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/build$ cmake
> -DCMAKE_C_COMPILER=mpiicx -DCMAKE_Fortran_COMPILER=mpiifx
> -DCMAKE_INSTALL_PREFIX=/mnt/pool/4/anikeev/qe -DQE_ENABLE_MPI=ON
> -DQE_ENABLE_OPENMP=OFF -DBLA_VENDOR=Intel10_64lp_seq
> -DQE_FFTW_VENDOR=Intel_DFTI -DQE_ENABLE_SCALAPACK=ON
> -DCMAKE_C_FLAGS:STRING=-xCORE-AVX512
> -DCMAKE_Fortran_FLAGS:STRING=-xCORE-AVX512 ../
> anikeev at tensor:/mnt/pool/4/anikeev/q-e-qe-7.3.1/build$ make VERBOSE=1
> 
>> Подскажите, в чем может быть моя
>> ошибка и как мне следует действовать
>> чтобы установить дополнительный
>> модуль ThermoPW?
>> 
>> С уважением, Кулямин П.А.
>> 
>> Аспирант 3 курса НИЯУ МИФИ
>> 
>> Кафедра № 67 "Физика конденсированных
>> сред"
>> 
>> Научный руководитель: Маслов М.М.
>> 
>> Тел:8-905-582-00-63
>> _______________________________________________
>> hpc mailing list
>> hpc at lists.mephi.ru
>> https://lists.mephi.ru/listinfo/hpc
> 
> --
> С уважением,
> ведущий инженер отдела UNIX-технологий НИЯУ МИФИ,
> к.ф.-м.н.,
> Аникеев Артем.
> e-mail: anikeev at ut.mephi.ru
> тел.: 8 (495) 788-56-99, доб. 8998

--
С уважением,
ведущий инженер отдела UNIX-технологий НИЯУ МИФИ,
к.ф.-м.н.,
Аникеев Артем.
e-mail: anikeev at ut.mephi.ru
тел.: 8 (495) 788-56-99, доб. 8998



More information about the hpc mailing list