6. 実行方法

6.1. プログラムの実行方法

ProteinDFプログラムをコマンドラインから実行するには、以下の手順で行います。

6.1.1. 前準備

ProteinDFを実行する(入力ファイルが存在する)ディレクトリに、 中間データ作成用ディレクトリ(デフォルトはfl_Input, fl_Table, fl_Work)を作成します。

ノート

これらのディレクトリは pdf-setup コマンドでも作成できます。

ノート

これらのディレクトリに書き込まれるデータは、巨大なものになります。 高速かつ容量の大きなディスクにディレクトリを設置することをお勧めします。

6.1.2. シリアル版の実行

シリアル版で実行するには、以下のコマンドを実行します。

% $PDF_HOME/bin/PDF.x

計算が始まると、標準出力に各SCFにおける全エネルギーの値が順次表示されます。 計算結果の一連のデータは、ログファイル(fl_Out_Std)に出力されます。 ログファイルファイルには全電子計算の過程における中間データも出力されます。

6.1.3. 並列版プログラムの実行

以下のようにProteinDFプログラムを実行します。

% mpiexec -n N $PDF_HOME/bin/PDF.x

ここで、 N には並列計算を行うプロセッサ数を指定してください。

ノート

MPIプログラムの実行方法は、計算機環境によって異なります。 計算機システムのマニュアル等を参照してください。

計算が始まると、標準出力に各SCFにおける全エネルギーの値が順次表示されます。 計算結果の一連のデータは、シリアル版と同様にテキスト形式で ファイル(デフォルトのファイル名はfl_Out_Std)に出力されます。

7. 動作形式

7.1. 概要

ProteinDFは限られた計算機資源で、 大きな計算対象を効率よく計算するために、 いくつかの動作形式を持っています。

run type parallel method matrix
serial OpenMP only replica
replica_static MPI/OpenMP hybrid replica
replica_dynamic MPI/OpenMP hybrid replica
distributed MPI/OpenMP hybrid distributed

7.2. serial

  • 1プロセスのみで計算を行います。プロセス間通信は行いません。
  • OpenMPによるスレッド並列計算が可能です。
  • 行列演算はLAPACKを利用します。
  • 計算可能な系のサイズは、プロセスが使用できるメモリ容量に依存します。

7.3. replica_static

  • プロセス間通信(MPI)による並列計算を行います。各プロセス内ではOpenMP並列計算を行います。
  • プロセスは計算に必要な行列の全要素を各MPIプロセスで複製、保持します。
  • 指定されたメモリサイズでは行列が確保できない場合は、ディスク領域に行列を保持します。
  • タスクの分散は分割統治法を採用します。
  • 行列演算はLAPACKを利用します。
  • linear_algebra_package キーワードに LAPACK を指定します。

ノート

分割統治法では、すべてのプロセスが演算処理に参加するので、 プロセス数が少ない場合に有効です。 負荷が均等に分散できない欠点があります。

ノート

memory_size キーワードでプロセスが利用できるメモリ量を指定します。

警告

メモリ不足によってディスクを利用した場合は、パフォーマンスが劣化する場合があります。

7.4. replica_dynamic

  • プロセス間通信(MPI)による並列計算を行います。各プロセス内ではOpenMP並列計算を行います。
  • プロセスは計算に必要な行列の全要素を各MPIプロセスで複製、保持します。
  • 指定されたメモリサイズでは行列が確保できない場合は、ディスク領域に行列を保持します。
  • タスクの分散はマスター-スレーブ法を採用します。
  • 行列演算はLAPACKを利用します。
  • linear_algebra_package キーワードに LAPACK を指定します。
  • parallel_processing_type キーワードに MS を指定します。

ノート

マスター-スレーブ法では、マスタープロセスはタスクの分散に専念し、演算を行いません。 負荷が均等に分散できるので、プロセス数が多い場合に有効です。

ノート

memory_size キーワードでプロセスが利用できるメモリ量を指定します。

警告

メモリ不足によってディスクを利用した場合は、パフォーマンスが劣化する場合があります。

7.5. distributed

  • プロセス間通信(MPI)による並列計算を行います。各プロセス内ではOpenMP並列計算を行います。
  • 大域行列を各MPIプロセスに分割して保持します。
  • 指定されたメモリサイズでは行列が確保できない場合は、ディスク領域に行列を保持します。
  • 行列演算はScaLAPACKを利用します。
  • linear_algebra_package キーワードに ScaLAPACK を指定します。