Skip to content

HPhi v3.7.1

Latest

Choose a tag to compare

@tmisawa tmisawa released this 06 Oct 07:05
9de48b7

[ 日本語 / Eng ]

HPhi v3.7.1 は、テストスイートを修正するパッチリリースです。Slurm の srun のように、MPI でビルドしたバイナリをランチャー経由でしか起動できない計算機でも、make test / ctest が正しく実行できるようにしました。HPhi 本体のソースコード(src/)は版数以外 v3.7.0 から変更していないため、計算結果は v3.7.0 と同じです。

ダウンロードする場合は、GitHub が自動生成する "Source code" ではなく HPhi-3.7.1.tar.gz を利用してください。こちらには依存パッケージの StdFace と PDF マニュアルが同梱されています。

SHA256:

eb702c941eb74b594f8bb138b890042017d751c0865437f67908b5409be6991d  HPhi-3.7.1.tar.gz

インストール方法:

tar xzvf HPhi-3.7.1.tar.gz
mkdir HPhi.build && cd HPhi.build
cmake ../HPhi-3.7.1/
cmake --build .

主な変更

いずれも #299 によるものです。

  • テストスクリプトがシリアル実行する HPhi の呼び出し(-s / -sdry / -e)すべてに ${MPIRUNFC} を前置しました。v3.7.0 では FullDiag 系の一部のテストだけがこの規約に従っていたため、ランチャーが必要な環境では多数のテストが Failed になっていました。MPIRUNFC を指定しない場合の動作は変わりません。
  • MPI 並列数の事前判定に pow:N(並列数が N のべき乗のときだけ実行)を追加しました。spin-1 のテスト lobcg_spinone_chain_threebody は、並列数が 3 のべき乗でない場合に Failed ではなく Skipped になります。
  • mpi_consistency_te_hubbardgc_twobody を 4 並列のときだけ実行するように修正しました(16 並列では Skipped になります)。
  • 並列数判定の回帰テスト precheck_modes を追加しました。HPhi も MPI も起動しないテストで、並列数によらず実行されます。
  • CI の 3 並列・9 並列のジョブで mpi_consistency_threebody_generalspin も実行するようにしました。
  • マニュアルの MPI 並列化の節に、MPIRUNFC と spin-1 テストの並列数の条件を追記しました。

ランチャーが必要な環境でのテスト実行例

make test "MPIRUN=srun -n 4"  "MPIRUNFC=srun -n 1"
make test "MPIRUN=srun -n 16" "MPIRUNFC=srun -n 1"
MPIRUN="srun -n 3" MPIRUNFC="srun -n 1" ctest -R "spinone|threebody_generalspin"
MPIRUN="srun -n 9" MPIRUNFC="srun -n 1" ctest -R "spinone|threebody_generalspin"

spin-1 の MPI テストは 3 並列・9 並列など 3 のべき乗の並列数でしか実行されないため、4 並列・16 並列で全体を実行すると Skipped になります。3 並列・9 並列では、上のように spin-1 のテストに絞って実行してください。



[ 日本語 / Eng ]

HPhi v3.7.1 is a patch release that fixes the test suite. make test / ctest now work on systems where an MPI-linked binary can be started only through a launcher such as Slurm srun. The HPhi source code (src/) is unchanged from v3.7.0 except for the version number, so computational results are identical to v3.7.0.

Please download HPhi-3.7.1.tar.gz instead of the automatically generated "Source code" archives. The release asset bundles the StdFace dependency and PDF manuals.

SHA256:

eb702c941eb74b594f8bb138b890042017d751c0865437f67908b5409be6991d  HPhi-3.7.1.tar.gz

Installation:

tar xzvf HPhi-3.7.1.tar.gz
mkdir HPhi.build && cd HPhi.build
cmake ../HPhi-3.7.1/
cmake --build .

Main changes

All changes come from #299.

  • Every serial HPhi invocation in the test scripts (-s, -sdry, -e) is now prefixed with ${MPIRUNFC}. In v3.7.0 only some FullDiag tests followed this convention, so many tests failed on systems that require a launcher. The behaviour is unchanged when MPIRUNFC is not set.
  • Added the pow:N mode to the MPI rank precheck, which runs a test only when the number of ranks is a power of N. The spin-1 test lobcg_spinone_chain_threebody is now reported as Skipped instead of Failed when the number of ranks is not a power of 3.
  • mpi_consistency_te_hubbardgc_twobody now runs only with exactly 4 ranks (Skipped with 16 ranks).
  • Added precheck_modes, a regression test for the rank precheck. It launches neither HPhi nor MPI and runs for any number of ranks.
  • The 3- and 9-rank CI jobs now also run mpi_consistency_threebody_generalspin.
  • Documented MPIRUNFC and the rank conditions of the spin-1 tests in the MPI parallelization section of the manual.

Running the tests on systems that require a launcher

make test "MPIRUN=srun -n 4"  "MPIRUNFC=srun -n 1"
make test "MPIRUN=srun -n 16" "MPIRUNFC=srun -n 1"
MPIRUN="srun -n 3" MPIRUNFC="srun -n 1" ctest -R "spinone|threebody_generalspin"
MPIRUN="srun -n 9" MPIRUNFC="srun -n 1" ctest -R "spinone|threebody_generalspin"

The MPI tests for spin-1 models run only with a power-of-3 number of ranks, such as 3 or 9, so they are skipped in full-suite runs with 4 or 16 ranks. For 3 and 9 ranks, select the spin-1 tests as shown above.

AI assistance: Claude Code for hotfix implementation and initial release preparation; OpenAI Codex for review, the release-date update, and release verification.