遊休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 年, 東京大学修士論文.