`repos/spack_repo/benchpark/packages/salmon_tddft/package.py` は、CMake に コンパイラをコマンド名で渡している。 -DCMAKE_Fortran_COMPILER:STRING=mpif90 -DCMAKE_C_COMPILER:STRING=mpicc 同パッケージは `depends_on("mpi")` を宣言していない。`cmake_args` は `USE_MPI` を設定し、ビルドは MPI ラッパを呼ぶため依存関係は実在するが、 宣言がないため spack は MPI を用意せず、名前は PATH 上のもので解決される。 OS 側が独自の MPI ラッパを提供する環境(例: Ubuntu 24.04 上の `/usr/bin/mpif90`、gfortran のラッパ)では、concretize された nvhpc 由来の フラグが gfortran に渡り、CMake のコンパイラテストが失敗する。 /usr/bin/mpif90 -O3 -acc=strict -gpu=cc90,... -cuda gfortran: error: unrecognized command-line option '-acc=strict' 対応案: `depends_on("mpi")` を宣言し、`spec["mpi"].mpifc` および `spec["mpi"].mpicc` を渡す。いずれも絶対パスであり、PATH の影響を受けない。
Activity
shigetoshisota commentedon Oct 20, 2026
SALMONのSpackレシピを修正しました。
NVHPC/GCC環境で、PATH上の別のMPIラッパを拾う問題を回避しています。
GH200/DGX SparkのNVHPC 26.9のSAOMONのバージョンv2.2.2/v2.3.0について、SpackビルドからRambleの実行・解析まで成功しました。同じSALMON設定によるGenoa、FX700、富岳でのビルド・実行も確認済みです。