OMP_NUM_THREADS 値と処理時間の関係
(GAMMA)
GAMMA ソフトウェアの設定ファイル中のスレッド数に関するパラメータ (OMP_NUM_THREADS) を変えた場合の処理時間への影響を調べました。
使用したコンピュータ
- OS : Windows 11 Pro 64-bit
- プロセッサー : Intel Core i9-12900KF (P8 + E8 コア / 24スレッド / Pコア定格 3.2GHz, Eコア 2.4GHz、Boost 時最大 5.2GHz)
- メモリ : 128GB (32GB x 4枚) DDR4-3200
- SSD : 2TB (M.2 NVMe Gen4)
- GPU : GeForce RTX 3080 / 10GB
使用したサンプルスクリプト
- 使用したサンプルスクリプトは、電波障害修正用のフィルターです。
- デモスクリプトから作成。
- time_test_README_PALSAR3_demo.sh
測定の詳細
20261002_thread_test_results.pdf
測定結果1
- スレッド数を 2, 8, 16, 24 と変えて、デモスクリプトの処理が終わるまでの時間を測りました。
- 2 が規定値ですが、一番時間がかかりました。
- 8, 16, 24 と大きくするほど、処理時間は 1/3 から 1/4 へ少なくなっていきました。
- いずれにせよ、本パラメータは規定値のまま使用するのではなく、プロセッサーの総コア数程度の値に設定するのがパフォーマンス的によさそうです。
- 図1. OMP_NUM_THREADS パラメータ vs 処理時間のグラフ

- リンクファイル中の Q and A では、16 と 24 の場合で処理時間に大きな差が生じないのはなぜか、AI に尋ねました。
測定結果2
- 今回のパソコンでは、CPU メモリー容量は 128GB あります。その一部 (96GB) を RAM ディスクにして、その中にスクリプト、データをコピーして実行してみました。
- 処理時間はハードディスクにくらべ、1/3 程速くなりました。グラフ内の赤丸。(スレッド数のパラメータは 16 に設定)。
- 処理速度を稼ぎたい場合はこのような方法もあります。
作成
株式会社オープン・ジー・アイ・エス