複数のジョブを実行すると HPC クラスター (sge) のパフォーマンスが低下する

複数のジョブを実行すると HPC クラスター (sge) のパフォーマンスが低下する

これは大した話ではないことは承知していますが、私にはさっぱりわかりません。私は、Oracle Grid Engine (SGE) の高性能コンピューティング クラスター (HPC) でいくつかのコンピューター シミュレーションを実行しています。1 つのジョブは、一定の速度 (およそ 1 秒あたり 80 ステップ) で実行されますが、マシンにジョブを追加すると、一定のしきい値で速度が 2 倍になります。1 台のマシン (CPU の種類はわかりません) では、しきい値は 16 個の CPU に対して 11 ジョブです。同じ数と種類の CPU を持つ別のマシンでは、しきい値は 8 です。

最初はメモリの問題だと思いましたが、各ジョブは約 60 MB - 100 MB を消費し、各マシンには 16 GB の RAM が搭載されています。

このような問題に遭遇した方はいらっしゃいますか?これを分析する方法はありますか?

ありがとう。

答え1

クラスターの設定がわからないため、CPU がハイパースレッディングを使用しているかどうか疑問に思います。ハイパースレッディングされたコアは物理コアの 2 倍として表示されますが、非物理コアの計算能力は直線的に増加しない可能性があります。

https://superuser.com/questions/279629/hyper-thread の理論上のスピードアップ効果はどの程度か

答え2

いくつかの理由が考えられます。

ジョブが大量のメモリを消費していなくても、メモリ バス (CPU を RAM に接続する) がいっぱいになっている可能性があります。バスがいっぱいの場合、ジョブを追加するとメモリ バスにさらに負荷がかかり、すべてが遅くなります。

考えられるもう 1 つの理由は I/O です。ジョブが多数のファイル操作 (ファイルのオープン/書き込み/クローズ操作など) を実行する場合、一度に実行されるジョブが多すぎると、システム内のディスクが追いつかなくなる可能性があります。

その他の理由としては、共有キャッシュや浮動小数点実行ユニットなど、CPU 内の他のボトルネックが挙げられます。

関連情報