Open t-sakashita opened 8 years ago
考えられる原因:
lld
が渡されているか。exampleの出力でも、微妙に許容できない誤差やnanが出ている。
mpirun -np 1 ./helmert_mpi eigen_exa:penta 9
largest eigenvalues: nan nan nan nan nan nan nan nan nan
上記は、-npが2の時もnan, -npが4だとうまくいく。
mpirun -np 1 ./helmert_mpi eigen_exa:penta 100
largest eigenvalues: 100 99 97.989691 96 95 94 93 92 91 90
mpirun -np 1 ./helmert_mpi eigen_exa:penta 20
largest eigenvalues: 20 19 17.94118 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 -7.041049e-15
原因の切り分け: 生成した行列値を書き出し、生成関数を定義し、generateする。 この方法では、pdgemm, scatter等の並列処理を用いずに行列生成ができたことになる。 24602df56b282ce26a7ff836a46654fb138a6994 このような行列生成法でも、eigen_sxで上記の問題が起こる。
結論:
作者に報告する。
Rokkoを使わない場合、EigenExa単体でも発現することを確認。 ソルバのバグと判明。
EigenExa バージョン 2.4b でもまだ治っていない test/diagonalize/helmert_mpi が fail する
とりあえず eigenexa のテストをスキップ c26c082e38e67df11c312ea9e2e50ebfc2e08573
eigen_exa
のeigen_sx
を使用した場合にだけエラーが起こる。