Closed t-sakashita closed 1 year ago
-- Found MPI_C: /usr/bin/mpicc (found version "3.1")
-- Found MPI_Fortran: /usr/bin/mpif90 (found version "3.1")
-- Found MPI: TRUE (found version "3.1")
CMake Error at /usr/lib/cmake/scalapack-2.1.0.openmpi/scalapack-targets.cmake:79 (message):
The imported target "scalapack" references the file
-- Configuring incomplete, errors occurred!
"/usr/lib/libscalapack-openmpi.so.2.1.0"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/usr/lib/cmake/scalapack-2.1.0.openmpi/scalapack-targets.cmake"
but not all the files it references.
Call Stack (most recent call first):
/usr/lib/cmake/scalapack-2.1.0.openmpi/scalapack-config.cmake:2 (include)
CMakeLists.txt:27 (find_package)
Failed: cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/runner/work/rokko/rokko/build/rokko/eigenexa/eigenexa-2.12-2/Release -DCMAKE_C_COMPILER=mpicc -DCMAKE_Fortran_COMPILER=mpif[90](https://github.com/t-sakashita/rokko/actions/runs/5019260084/jobs/8999547233#step:5:91) /home/runner/work/rokko/rokko/build/rokko/build/eigenexa-2.12
Error: Process completed with exit code 1.
CMakeのバージョンアップで、独自のscalapack-config.cmakeが追加されたためか?
Ubuntuのバグ修正を待ちます。
b7fe9f8cff3633ffacebf162989be4e4f61220b4
5a915002cf9a9b83ddea45dbe9046b796861bb35 CMakeは通るようになった。
生成されたbuild/eigenexa-2.12/CMakeLists.txtにおいて、出力変数SCAPALACK_LIBRARIES
を表示してみた。
# ScaLAPACK library
find_package(ScaLAPACK REQUIRED HINTS /usr/lib/x86_64-linux-gnu)
string(REGEX REPLACE ";" " " SCAPALACK_LIBS "${SCAPALACK_LIBRARIES}")
include(CMakePrintHelpers)
cmake_print_variables(SCAPALACK_LIBRARIES)
空文字列である。
-- SCAPALACK_LIBRARIES=""
ScaLAPACKのライブラリが検出されていない。
find_packageのHINTSを正しく使う方法は?
set(SCALAPACK_LIBRARIES "-L/usr/lib/x86_64-linux-gnu libscalapack-openmpi.so -llapack -lblas")
とりあえず、以下のように、ScaLAPACKのライブラリ名を直接入れると、成功した。
set(SCALAPACK_LIBRARIES "/usr/lib/x86_64-linux-gnu/libscalapack-openmpi.so;/usr/lib/x86_64-linux-gnu/liblapack.so;/usr/lib/x86_64-linux-gnu/libblas.so")
綴りのミス:SCAPALACK_LIBRARIES
FindScaLAPACK.cmakeを同梱する方針に戻した。 1d8365849e2172a159ed53fe3ddfb28b0e421d7c (このように、CMakeに付属のFindScaLAPACK.cmakeを使わないようにすれば、以下のバグは問題とならない。 https://bugs.launchpad.net/ubuntu/+source/scalapack/+bug/1917534 )
1d8365849e2172a159ed53fe3ddfb28b0e421d7c
ubuntu.shを用意し、CMake時にライブラリの場所を指定した。
-DSCALAPACK_LIB="-L/usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libscalapack-openmpi.so -llapack -lblas" \
33c2702fcbd99631b34a4e322b0725c8d6951e5a
GithubのactionでEigenExaのビルドが通るようになった。
https://github.com/t-sakashita/rokko/actions/runs/5019260084/jobs/8999547233