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