ERDAS IMAGINEにおける処理速度の向上
本セッションの目的 本セッションでは、ERDAS IMAGINEにおける処理速度向上を目的として 機器(SSD等)及び並列処理の比較・検討を行った。 1.SSD及びRAMDISKを利用した処理速度の検証 2.Condorによる複数PCを用いた並列処理 2.1分散並列処理による高速化試験 (ERDAS IMAGINEのCondorを使用した試験) 2.2カスタム実行スクリプトによる分散並列処理高速化試験 (カスタマイズしたCondorを使用した試験)
ERDAS IMAGINEにおける並列処理機能 バッチ処理を用いた処理の並列実行によ り、処理時間の短縮を実現 処理の並列実行は、同時に処理する数量 を指定可能 専用のソフトウェアを用いて複数台のマ シンに対して分散処理ネットワークを構 築することも可能(Condor機能) ERDAS Engineの主な機能 ERDAS Engineの主な機能
ERDAS IMAGINEでの処理実行時のCPU負荷 プロセス数:2 / 並列処理数:1 / 処理時間 44:02 プロセス数:2 / 並列処理数:1 / 処理時間 44:02 プロセス数:2プロセス数:2 // 並列処理数:2並列処理数:2 // 処理時間処理時間 40:2740:27 負荷が高いため、並列 処理により利用する CPUが増加 負荷が高いため、並列 処理により利用する CPUが増加 負荷が高いため、並列 処理により利用する CPUが増加 負荷が小さいため、並 列処理の有無に関わら ずCPU利用は同程度 CPU使用率の大きい2プロセスに対する並列処理数1~2の差異 (主成分解析を利用したパンシャープン処理、パンクロ1.65GB/マルチ467MBを2組) CPU使用率の大きい2プロセスに対する並列処理数1~2の差異 (主成分解析を利用したパンシャープン処理、パンクロ1.65GB/マルチ467MBを2組)
Resolution Merge機能を用いた速度比較 試験環境の整理 -試験環境 実行ホスト CPU: Core i7 3.6GHz 32GB メモリ 実行ジョブ数 1、2 対象デバイス (1) ローカルディスク:1TB SATA (2) SSDディスク: Fusionio ioFX 420GB (3) RAMDISK 24GB (ジョブ数1の場合のみ) 試験項目 Resolution Merge機能 (1) 1ジョブについて計測 (2) 実行ジョブ数2の場合、並列数=1 (逐次実行)、2で計測
Resolution Merge機能を用いた速度比較 1ファイルでの実行 -447 335 427 0 50 100 150 200 250 300 350 400 450 500 ローカルディスク SSD RAMDISK 実行時間 (秒) 実行ジョブ数 = 1 • SSDはローカルディスクより25%高速 • RAMDISKは、ローカルディスクとほとんど変わらないが、別 のPCで計測した際は、45%高速になったこともあり、環境に よっては、有効になる可能性はあるが、データの揮発性等 を考慮すると、あまり適さない。
Resolution Merge機能を用いた速度比較 処理の並列実行 -950 1334 658 1082 0 200 400 600 800 1000 1200 1400 1600 1 2 実行時間 (秒) 並列実行数 ローカルディスク SSD ローカルディスク SSD • いずれの場合も処理を並列実行した際には、処理時 間が多くかかっている。 • SSDは、ローカルディスクよりも30%程度高速。
試験環境 実行ホスト CPU: Core i7 3.6GHz 32GB メモリ 実行ジョブ数 1 対象デバイス (1) ローカルディスク:1TB SATA (2) SSDディスク: Fusionio ioFX 420GB (3) RAMDISK 24GB
試験項目 Subtractive Resolution Merge機能
1ジョブについて計測
Subtractive Resolution Merge機能を用いた速度比較 試験環境の整理
-実行ジョブ数 = 1 実行時間 (秒) 183 162 161 0 20 40 60 80 100 120 140 160 180 200 ローカルディスク SSD RAMDISK
Subtractive Resolution Merge機能を用いた速度比較 1ファイルでの実行
-• SSDとRAMDISKは同等性能
2.Condorによる複数PCを用いた並列処理 2.1分散並列処理による高速化試験
分散並列処理による高速化試験 • ERDAS IMAGINEにデフォルトで搭載されているHTCondorを使って分 散並列処理による高速化試験を行った。 • 複数のジョブを実行する場合、ノード内並列ではなく、ジョブスケ ジューラ(HTCondor)を利用した分散並列により、複数ノードでの同時 実行を行うことが可能。 → 特に、余剰機のある環境では有効になり得る
ノード内並列と分散並列 (メリット) ・手元のPCで他の作業をしながらジョブを実行することが可能 ・負荷の分散を図ることができる。 ・実行するノード数を増やすことが可能 (デメリット) ・共有ファイルシステムを利用しなくてはならない。I/Oが低速。 ・同時実行数分のアプリケーションライセンスが必要。 実行ノード ディスク 実行ノード1 実行ノード2 制御ノード 実行ノードN 共有 ファイル システム 1 2 N 1 2 N ノード内並列処理 分散並列処理 ジョブ ジョブ (1job/node) 1 2 3 4 N ジョブ (2job/node)
Rescale機能を用いた分散並列処理による高速化試験 試験環境の整理 -試験環境 実行ホスト Master/node01/node02 CPU: Core i7 3.6GHz 32GB メモリ 実行ジョブ数 16 対象デバイス 共有ファイルシステム (GigabitEthernet x 2, Samba) 試験項目 並列数=2、4、8、16で計測 * 各ノードでの同時実行数が1,2,4,8
0 20 40 60 80 100 120 140 160 180 200 1 2 4 8 16 実行時間 (秒) ローカルディスク SSD RAMDISK HTCondor • 並列数2(各ノードで1ジョブづつ実行)では極端に性能 の劣化が見られる。 • 並列実行数4からローカルディスクとほぼ同等性能 • 負荷の少ない処理を大量に流した場合のみ有効 Rescale機能を用いた分散並列処理による処理速度比較 負荷の少ない機能での比較
-試験環境 実行ホスト Master/node01/node02 CPU: Core i7 3.6GHz 32GB メモリ 実行ジョブ数 2 対象デバイス 共有ファイルシステム (GigabitEthernet x 2, Samba) 試験項目 並列数=2で計測 * 各ノードでの同時実行数が1 Resolution Merge機能を用いた分散並列処理による高速化試験 試験環境の整理
-950 1334 658 1082 1416 0 200 400 600 800 1000 1200 1400 1600 1 2 実行時間 (秒) 並列実行数 ローカルディスク SSD ローカルディスク SSD HTCondor Resolution Merge機能を用いた分散並列処理による処理速度比較 負荷の多い機能での比較 -• 処理速度は、ローカルディスクよりも低下した。
2.Condorによる複数PCを用いた並列処理
2.2カスタム実行スクリプトによる分散並列処理高速化試験 (カスタマイズしたCondorを使用した試験)
HTCondorとは?
• 米国ウィスコンシン大学マディソン校におけるCondor Research Project(1985年開始)により開発、配布が行われている
• 責任者: Prof.Miron Livny
• High Throughput Computing主体 • ライセンスフリー
• サポートプラットフォーム:
• Linux,Windows, MacOSX…….
HTCondorのメカニズム USER UNIX Linux Windows USER USER 計 算 サ | バ 群 投入 投入 投入 マシン ClassAd マシン ClassAd マシン ClassAd マッチ メイキング ClassAd ClassAd ClassAd ClassAd ClassAd ClassAd ClassAd ClassAd ClassAd ClassAd JOBプール 資源プール Condorプール 実行マシンの掲示 ジョブの掲示 使用OS、必要メモリ、必要 ディスク、etc OS、メモリ量、ディスク容量、 etc
カスタム実行スクリプトによる 分散並列処理高速化試験 • ERDAS IMAGINEのデフォルト機能であるCondorを用いた分散並列処 理では、処理するデータは共有ファイルシステムにあり、I/Oも直接共有 ファイルシステムに対して行われる。このようなアクセスはネットワー クに負荷を掛けるだけでなく、ネットワークがボトルネックとなる可能 性が高い。 • そこでカスタム実行スクリプトを用いて、ファイルのステージング処理 を行い、プログラムの前後でファイルのコピーを共有ファイルシステム と実行ノードのローカルディスクとの間で行う。
カスタム実行スクリプトの動き ジョブ投入PC ジョブ実行PC ファイルサーバ 入力ファイル 出力ファイル ネットワーク経由I/O ジョブ投入PC ジョブ実行PC ファイルサーバ 入力ファイル 出力ファイル 入力ファイル 出力ファイル ファイル転送処理を追加 従来方式 試験方式 直接I/O
Resolution Merge機能を用いた分散並列処理による処理速度比較 カスタムスクリプトの実行 -実行時間 (秒) 950 1334 658 1082 1416 888 0 200 400 600 800 1000 1200 1400 1600 1 2 ローカルディスク SSD ローカルディスク SSD HTCondor 従来方式 HTCondor カスタム • カスタムスクリプトの方が約40%高速で、 逐次の場合のローカルディスクより高速
Rescale機能を用いた分散並列処理による処理速度比較 カスタムスクリプトの実行 -0 100 200 300 400 500 600 700 2 4 8 16 • カスタムスクリプトの効果なし。遅くなっている。 実行時間 (秒) 並列実行数 実行ジョブ数 = 16 従来方式 カスタム実行スクリプト
まとめ 1.SSD及びRAMDISKを利用した処理速度の検証 • PCI用のフラッシュディスクは高価であるが、処理速度の向上が期待できる。(1~3割程度) • RAMDISKを用いることで、処理速度が向上する可能性はあるが、揮発性によるデータ転送 の必要性、実行メモリ量の減少等、使い勝手に難がある。 2.Condorによる複数PCを用いた並列処理 2.1分散並列処理による高速化試験 • 手元の計算機に十分なリソースがある場合、Condorを用いた分散並列処理よりもノード内 実行の方が早い。 • Condorを用いることで、処理速度の向上は見込めない。Condorの活用方法としては、余 剰機が豊富にある場合にPCの活用をすることは可能。 2.2カスタム実行スクリプトによる分散並列処理高速化試験 • 手元の計算機に十分なリソースがある場合、Condorを用いた分散並列処理よりもノード内 実行の方が早い。 • データサイズが大きく、PCの負荷が共に大きい処理を実行した場合、カスタムスクリプト によるCondorを用いると、処理速度の向上が見込める。ファイルサイズが小さく、負荷の 小さい処理の場合は、ノード内実行の方が早い。 • カスタムスクリプトの場合には並列数によるスケーラビリティが高い