Trilinos由来の汎用BLAS/LAPACKを、選択したBLAS/LAPACKの後ろにリンクする

Close #926 (closed)

概要

MPI ビルドの fistr1 で、BLAS/LAPACK が MKL ではなく参照実装(libblas.so.3、liblapack.so.3)に結びついていたのを直します。Trilinos が持ち込む汎用の libblas、liblapack が、リンク行でこのビルドが選んだ BLAS/LAPACK より前に並んでいたことが原因です。

Trilinos の依存一覧から汎用の libblas、liblapack を抜き出し、選んだ BLAS/LAPACK の後ろにもう一度並べます。CMake は繰り返されたライブラリの最後をリンク行に残すので、汎用のものが MKL より後ろへ移り、実行ファイルの直接の依存に記録されなくなります。

Trilinos の依存全体を後ろへ移す方式は、Windows 向けパッケージ(静的リンク)がリンクエラーになりました。一覧から汎用のものを除くだけの方式は、依存に libblas.so.3 が残り効きませんでした。

fork の pipeline で、MUMPS、ML、fistr1 本体の dgemm などが MKL に結びつくことと、benchmark が9件とも critical 0 になることを確認しました。 https://gitlab.com/chikasuiro/FrontISTR/-/pipelines/2911186207 (結びつき先の出力を足したコミットを載せて実行したもの)

変更内容

コミット メッセージ 要約
75103ef1 Link the generic BLAS/LAPACK of Trilinos behind the selected ones Trilinos 由来の汎用 BLAS/LAPACK を、選んだ BLAS/LAPACK の後ろに並べ直す

Merge request reports

Loading
Loading