電子情報システム学科
情報処理工学講座
Computational Science and Engineering Laboratory
自然現象および社会現象の中には微分方程式の初期値問題としてモデル化さ
れるものが多くあります。しかしその場合に,解を閉じた形で表現し,値を代
入しさえすれば答えが得られる,ということはほとんど期待できません。近似
式を用い,それを計算機で計算できる形(アルゴリズム)に変形し,さらにC
やFortranといったプログラミング言語に書き換え,コンパイル・デバッグ・
実行という作業を経て初めて(近似)値が得られるのです。この場合
ということが当然求められますが,一般にこの二つの要求を同時に満たすこと
はかなり困難なことです。しかし,最近の並列計算機の進歩によって,この相
反する要求に希望がもてるようになってきました。
並列計算機とは,簡単に言えば複数のCPUがネットワークまたはバスを通し
てつながっていてる計算機のことをいいます。並列計算機は頭脳に当たるCPU
を多く持っていますので,うまく使えば1台の計算機では手に負えないような
大きな仕事も短時間で処理することが可能になるわけです。われわれの社会で
も,大昔から大きな仕事を細分し多数が協力しながら,すなわちワークシェア
リングしながら,こなしてきたわけです。エジプトのピラミッドも中国の万里
の長城もワークシェアリングの賜です。しかし,わずか数十坪の民家を建てる
のに大工さんを1000人も集めても1/1000の時間で完成するのでしょうか。それ
は少し難しそうですね。民家一軒を建てるなんていう小さな仕事を1000等分す
るのは困難ですし,わずか数十坪の土地に1000人も入れませんし,小さな仕事
のために逐一連絡を取り合うのも大変です。「船頭多くして船山に上る」とい
う諺もあります。それなら逆に大きなビルを建てる場合だったら1000人の作業
員で1/1000の時間になるでしょうか。それも必ずしも正しいとは言えません。
1000 人の作業員の能力が同じ程度でないと誰かが足を引っ張る結果となりか
ねませんし,「烏合の衆」という言葉があるように,各人が転々バラバラに仕
事をしているようではまずいわけです。要するに同じような能力の持ち主にほ
ぼ均等に仕事を割り振り,誰かが全体の統制をとりながら仕事を進めていかな
ければならないわけです。
いま述べたことは,話を少し誇張していますが,並列計算機を用いてプログ
ラミングを行う場合に常に念頭に置いておかなければならないことなのです。
並列計算機によって問題を高速に解くためには,従来の計算機(逐次計算機)
のために開発された既存のソフトウェアをそのまま流用するのではなく,計算
手順(アルゴリズム)を根本から改め,計算機のアーキテクチャをも考慮した
プログラミング手法を開発しなければなりません。
わが研究室では,対象はほとんど数値計算に限定されていますが,並列アル
ゴリズムの開発,並列プログラミング手法の開発,並列アーキテクチャの研究
などを行っています。
現在,研究室には並列計算機(VT Opteron Server
4000,Opteron 1.8GHz x 4が3ノード)および
パソコン,ワークステーションなどが数台設置されています。これらを用いて,
大規模な連立1次方程式を並列計算機上で解くため,行射影法,GMRES法とい
う方法の並列化および実装,爆発解をもつ偏微分方程式の数値解法の開発,高
次代数方程式の並列解法などを行っています。このようなことに興味を持たれ
た方は是非ご連絡下さい。
お問い合わせはこちらまでどうぞ。