Comments
Description
Transcript
遊休PCを利用した並列分散処理環境の構築と - 流体研
[20873] 遊休PCを利用した並列分散処理環境の構築とプロペラ翼型の自動最適設計への応用 The Construction of the Parallel Diversified Transaction Environment with Dead PCs And the Application to the Automatic Optimization Design of the Propeller Wing Sections 水卜彰之(指導教官:川村隆文講師) 本研究では, 中小オフィス内の Windows 遊休 PC を有効利用するシステムを構築するため, グリッドコンピューティ ングに関する調査を行い, 汎用的なミドルウェアを選別し, 応用流体工学研究室内において並列分散処理環境を構築 して, その計算処理能力を検証した. さらに, プロペラ翼型の自動最適設計のプログラムに応用し, ユーザーがその システムを様々な用途で利用できることを示した. 1.序論 グリッドコンピューティングが注目されるようになった 背景には, PC というものが個人にまで広く普及したことが 挙げられる. CPU の計算能力は驚異的に進歩し, 個人用 PC の処理能力は全体として余剰状態にある. そして, そのよ うな個人用 PC の 94∼97%が WindowsPC であると言われて いる. SETI@Home などの分散コンピューティングプロジェ クトでは, Windows も含めて個人用の遊休 PC を有効利用し ようとする試みがなされているが, これらのプロジェクト は, ある特定の用途を満たすために一般ユーザーの余剰 PC 能力を借りるもので, ユーザーは逆に他人の余剰 PC を利 用することはできない. また, グリッドコンピューティングといえば大規模なも のをイメージしがちであるが, セキュリティ面が問題にな る. 一方で, 中小オフィスの閉じられた環境でも, すでにあ る資源を利用すれば高い計算処理能力が得られると考えら れる. そこで本研究では, 「中小オフィス内」において「Windows 遊休 PC」を有効に利用できるシステムの開発を試みる. 2.グリッドコンピューティングの調査 グリッドコンピューティングの調査内容についてはここ では割愛するが, 1. Windows に対応している, 2. 遊休 PC の有効利用を目的に作られた, 3. 比較的簡便なシステムで 小規模から大規模への拡張も可能であるなどの理由から, Condor[1]というソフトを利用して並列分散処理環境を構築 することにした. Condor は計算機の空き時間を利用するこ とを目的としたジョブスケジューリングシステムで, ユー ザーは計算資源として割り当てられた計算機の集まり (Condor Pool)の内, アイドル状態のものを利用することが できる. Condor Pool へのジョブの割り当ては, Central Manager が担当する. Condor Pool 上のどの PC からでもジ ョブを実行することができる双方向的なシステムを構築す ることができる. 3.並列分散処理環境の構築 まず, 応用流体工学研究室内の表 1 の学生用 WindowsPC に Condor ver 6.5.5 をインストール後, 各種設定を行い, 試 行錯誤の後エラーを除去して, 並列分散処理環境を構築し た. 表1 hostname uran(central manager) sako Mickey kuribo pingu slime cheshire peterpan minnie CINDERELLA stitch penguin Condor Pool に追加した PC 一覧 OS MFLOPS CPU WindowsXP 55.78467 Intel Pentium Ⅲ プロセッサ 868 MHz Windows2000 420.3747 AMD Athlon(tm) XP 2700+ WindowsXP 409.0107 Intel(R) Pentium(R) 4 CPU 2.53 GHz Windows2000 399.3873 Intel(R) Pentium(R) 4 CPU 2.53 GHz Windows2000 373.861 Intel(R) Pentium(R) 4 CPU 2.53 GHz Windows2000 372.8433 Intel(R) Pentium(R) 4 CPU 2.53 GHz WindowsXP 327.9323 Intel(R) Pentium(R) 4 CPU 2.00 GHz Windows2000 254.4827 Intel(R) Pentium(R) 4 CPU 1.50 GHz Windows2000 239.905 Intel(R) Pentium(R) CPU 1500MHz Windows2000 77.16067 x86 Family 6 Model 8 stepping 6 Windows2000 57.98367 x86 Family 6 Model 8 stepping 6 Windows2000 49.4 Intel Pentium Ⅲ プロセッサ 1.00GHz Memory(MB) 511 512 512 1023 480 480 512 1024 640 512 255 288 そして, 構築した並列分散処理環境の計算処理能力を評 価した. 処理性能の基準値として, 表1 の中で CPU 速度が 最大である sako (Athlon2700)というコンピュータを用い た. 最速マシンでの実行時間によってジョブの大きさ(粒 度)を定義し, 最速マシンでの実行時間が, それぞれ7 秒, 15 秒, 30 秒, 45 秒, 60 秒, 75 秒, 90 秒, 105 秒, 120 秒である完全 独立ジョブを, Condor Pool 上の 10 台の PC 上でそれぞれ 100 回実行した. 各ジョブがCondor Pool 上で実行されてい る様子を, Condor のログを元にグラフ化した. 「30 秒ジョ ブ」を例にして図 1 に示す. sako mickey pingu slime cheshire peterpan minnie CINDERELLA stitch penguin s 0 100 200 300 400 500 600 700 800 900 図 1 30 秒ジョブ × 100 回の実行状況 次に, 実験結果を Condor Pool に追加した各 PC 性能をリ ニアに足して得られる理想処理性能と比較する. Condor Pool 全体の理想性能が各 PC の処理速度をリニアに足して 得られるものと仮定すると, PC10 台からなる流体研Condor Pool の理想性能は Pentium-4 13.5GHz 相当であると見積も ることができる. この理想性能と実験結果を比較した並列 化効率を表したものを図 2 に示す. 0.8 0.75 0.7 0.65 0.6 0.55 0.5 0.45 ×100回 0秒 ジ 図 4 Condor とのデータの受け渡し 12 図 2 理想性能と実験結果を比較した並列化効率 ジョブ間のオーバーヘッドがあるため, 理想性能そのも のを実現することはできないが, 15 秒ジョブ以上の粒度の ジョブであれば, 理想性能の 75%程度の性能を実現してい る. これは Pentium-4 10GHz 相当で sako の 3.7 倍の速さ である。 4.並列分散処理環境の応用 ここでは, 構築したシステムの応用として Condor を相 互依存型のジョブに適用することを考える. 相互依存型の ジョブとは, ジョブの内部に逐次処理部分と並列処理部分 があり, ジョブ内部でそれらが相互に依存しているような ジョブのことである. その例として, [2]で述べられている プロペラ翼型の自動最適設計のプログラムを用いた. この プログラムでは, プロペラの 3 次元曲がり流れの荷重分布 と目的とする荷重分布の差の二乗平均和として定義される 目的関数をゼロに近づけていくために反復計算を行う. 反 復ごとに目的関数の勾配ベクトルを求める必要があるが, この部分が完全並列化でき, かつプログラム全体で最も計 算時間を要するのでこの部分に Condor を適用する. また, この設計は制約のない最適化問題であり, この問題を効率 よく解くために, 制約のない最適化アルゴリズムの中で最 も効率のよい BFGS 法が用いられている. さて, 相互依存型ジョブの並列処理部分に Condor を適 用するためには, ジョブの内部で Condor とデータの受け 渡しを行わなければならない. しかし, プロペラ翼型の自 動最適設計のプログラムは, Fortran で書かれた単一プログ ラムであり, そのままの形で Condor を適用するのは難し いと判断した. そこで, BFGS 法のアルゴリズムを VB.NET に移植し, VB.NET で Condor とデータの受け渡し(図 4)を行い, その 要所で目的関数を求める Fortran の実行ファイルを利用する という形式をとった. このようにして, プロペラ翼型の自 動最適設計のプログラムをCondor を用いて並列計算した場 合の目的関数の収束状況のグラフを図 5 に示す. 図 5 より, Condor を用いて並列計算した場合でも, Fortran で逐次計算 したものと比べて問題ない精度で実行できていることを確 認した. さらに, 並列処理部分のジョブを「30 秒ジョブ」 ほどの粒度にして実行したところ, 表 1 の Mickey という PC 単独では約 27 時間かかる計算を 5 時間半程度で終えた. VB.NET + Fortran + Condor Fortran 1 0.9 0.8 0.7 f(X) / f(X0) 5秒 ジ ョブ ョブ ョブ ジ 10 90 秒 ジ ョブ ョブ 75 秒 ジ ョブ 60 秒 ジ 45 秒 ジ ョブ ョブ 30 秒 ジ 15 秒 7秒 ジ ョブ 0.4 0.6 0.5 0.4 0.3 0.2 0.080315 0.1 0.08031 0 0 5 10 15 20 25 30 number of iteration 35 40 45 50 図 5 Condor の適用前と適用後の目的関数の収束状況の比較 このように, 相互依存型ジョブにおいて, 並列処理部分 の割合が大きい場合, Condor を適用することにより, プロ グラム全体としてもかなりの計算時間短縮が見込まれる. また, 今回 BFGS 法のアルゴリズムを VB.NET のアプリ ケーションに移植したので, プロペラ翼型の自動最適設計 以外の最適化問題にも適用できる. なおかつ, Condor をミ ドルウェアとして, その上層にアプリケーションを構築す ることができたので, 最適化問題に限らず, その他様々な 相互依存型ジョブに関しても, 同じように Condor を適用 できると考えられる. 4.結論 本研究では, Condor を用いて, 応用流体工学研究室内の Windows 遊休 PC を利用した小規模並列分散処理環境を構 築し, その計算処理能力を検証した. 中小オフィス内で Windows 遊休 PC を有効利用するためには, Condor は最も 適したソフトの一つであると考えられる. さらに, Condor をミドルウェアとして, その上層にプロ ペラ翼型の自動最適設計プログラムのアプリケーションを 構築したことで, ユーザーが様々な用途でこの並列分散処 理環境を利用できる可能性を示した. 参考文献 [1] Condor Project Homepage:http://www.cs.wisc.edu/condor/ [2] 竹腰 善久: 最適化アルゴリズムを用いたプロペラ設計 法の研究, 2003 年, 東京大学修士論文.