リスタート機構 ============== 本節では :math:`{\mathcal H}\Phi` のリスタート機構を説明します。 概要 ---- :math:`{\mathcal H}\Phi` はチェックポイント/リスタート機能をサポートしており、以下が可能です: - 中断された計算の再開 - 大規模計算を小さなジョブに分割 - 固有ベクトルの反復的な改善 リスタートファイル ------------------ 以下のファイルがリスタートに使用されます: **固有ベクトルファイル** ``zvo_eigenvec_{rank}_set{set}.dat`` 各MPIランクの固有ベクトルを格納。 **リスタートベクトルファイル** ``restart_{rank}.dat`` 反復を再開するために必要なLanczosベクトルを含む。 **三重対角行列** ``zvo_Lanczos_Step.dat`` Lanczos係数を格納。 入出力設定 ---------- ``CalcMod`` 入力ファイルで設定: ``iInputEigenVec`` - ``0``: ランダムまたは指定された初期ベクトルから開始(デフォルト) - ``1``: ファイルから固有ベクトルを読み込み再計算 - ``2``: ファイルから固有ベクトルを読み込む ``iOutputEigenVec`` - ``0``: 固有ベクトルを出力しない(デフォルト) - ``1``: 固有ベクトルをファイルに出力 使用例 ------ **固有ベクトル出力ありの初回計算** CalcModファイルで ``iOutputEigenVec = 1`` を設定。 計算完了後、固有ベクトルファイルが書き込まれます。 **固有ベクトルからのリスタート** ``iInputEigenVec = 1`` と ``iOutputEigenVec = 1`` を設定。 計算は前回の実行から固有ベクトルを読み込み、 それを改善します。 **期待値のみの計算** ``iInputEigenVec = 2`` を設定。 固有ベクトルが読み込まれ、追加の対角化なしに 物理量の計算に使用されます。 ファイル形式 ------------ 固有ベクトルファイルは効率のためにバイナリ形式で格納されます。 各ファイルには以下が含まれます: 1. ヘッダー情報(システムサイズなど) 2. 固有ベクトル成分のcomplex double配列 ファイルはバイナリ形式のためプラットフォーム依存です。 リスタートファイルは同じアーキテクチャで使用してください。 MPIに関する考慮事項 ------------------- MPIを使用する場合、各プロセスは独自のリスタートファイルを 読み書きします。 MPIプロセス数は元の実行とリスタート実行で一致する必要があります。 プロセス数を変更する必要がある場合は: 1. 全ての固有ベクトルファイルを収集 2. データを再分配 3. 新しいプロセスごとのファイルに分割 よくある問題 ------------ **ファイルが見つからない** リスタートファイルが正しい名前で作業ディレクトリにあることを確認。 **プロセス数の不一致** MPIプロセス数は元の計算と一致する必要があります。 **ファイルの破損** リスタート後に計算が予期しない結果を生成する場合、 リスタートファイルが破損している可能性があります。 ファイルを削除して最初からやり直してください。 ベストプラクティス ------------------ - 長時間計算中は定期的に固有ベクトルファイルを保存 - リスタートファイルのバックアップコピーを保持 - リスタート後は保存量をチェックして結果を検証 - 各リスタートファイルで使用した計算パラメータを文書化