2

個々の反復が互いに独立しており、ハードドライブとの間でデータの入出力のみを行う単純な DO ループ (Fortran 90) があります (プロセスは互いにメッセージ/MPI を交換しません)。 MPI を使用します。順次実行では、ループの 1 回の反復が完了するまでに約 1 日かかります。このような反復を 29 回並行して実行すると、約 2.5 日かかります。これは、スーパーコンピューターの 1 つのノード上にあります (つまり、ノード間通信はありません)。

単純に並列化可能なプログラム (ループ内の独立したステップ) の場合、合計実行時間は、ループ内で 1 つのステップのみを実行する場合の実行時間にほぼ近くなるはずだ、と人々が言っ​​ているのを聞いたことがあります。

質問: この高速化は問題ないように見えますか?

どうもありがとう。

4

2 に答える 2

1

独立した反復があるため、29 コアでの 29 反復の実行時間は、単一コアでの単一反復の実行時間から大きく離れてはなりません。次の条件の 1 つ以上に該当しない限り、約 1 日で完了します。

  • コンピューティング ノードに、すべてのプロセスとそのデータをメモリに収めるのに十分なメモリがない。
  • 計算は反復間でバランスが取れていません。
  • ディスクアクセスで競合を引き起こすディスク入出力がたくさんあります。
  • そしておそらく私が考えていない他のもの。
于 2015-07-29T22:54:06.853 に答える