数値計算とアニメーション処理の並列化の話       2004.01.26-27         前橋工科大学建設工学科 助教授 梅津 剛


「ああ、動いてるところがみたいっ」
いまじゃ、デジカメでも動画が取れるハイテク時代ですが、
私が数値計算を始めた頃はXYプロッタってのが全盛で
プログラムを流すと機械がいきなりペンもって書き出すっていう恐るべき、マシンがありました。
しかも、ロール紙で。

河川の洪水解析では、通常の河川の状態から、水位があがって、じわじわ水が溢れ出す!ていうシミュレーションとなります。

だから、時間依存型で、つまり、非定常で、時々刻々の変化でしてね。
そうすると、
計算結果は、1分後、30分後、3時間後、という具合に、見ていきます。何枚も、時には、なんじゅうまいも、かつかつ絵を描き、
そうすると、

「ああああああ、動いているところが、ホントに、見たいもんだ」と痛切に感じたものでした。

最初に作ったアニメーションは、16mmフィルム(今もあるけど、それを映す機械が無い)で、
MTの巨大なやつを20本も抱えて業者に作ってもらいった、ブルーフィルム2色ずり、ってやつでした。

干潟が干潮満潮で、干上がったり水没したりする計算です。ベニス国際会議のコンペティション課題でした。
「よおおおし、一等賞とってやる!」と張り切って計算し、当時の先生に「アニメつくってください」と拝みました。

大変な作業でした。東京大学大型電子計算機センターの計算代は50万円ぐらいかかったかも。
アニメ作るのに、30万円ぐらい、かかったらしい。

でも、それのおかげで、めでたく、ダントツで、一等賞。
賞をいただけ、ツインケビッチ大先生に、ベニスのアルバムをもらいました。1988年でした。

なんだ、自慢話か。
いやいや。アニメ作成に対する情熱の話でした。

その後、パソコンが進化に進化を重ね、いまじゃあ、非定常問題なんざ、アニメはあったり前!ですね。
ソフトウエアもハードウエアもスーパー進歩で、
その昔、大金はたいて購入したフォトロンの、えーと、あんつったか、あの、うーんと、・・・・・でじたるすきゃんこんばーたーだ!。
つまり、RGBをビデオ信号に変えるやつだよ。それで、PCの画像をビデオを落とすわけです。
そんなのを、いろいろ導入し、とにかくかねも時間もかけたものです。

とにかく、アニメーション作成の研究はずーっとしつこく、やりました。(いまでもやってる。)

さて、本題です。
並列計算のお勉強をして、「ふーんなるほどねー」とドイツから帰国し、本格的なネットワー時代が到来したその頃、
私の所有する10台程度のスタンドアロンのPCは、全てネットでつなぎました。

WindowsNT ver3.1 のときでした。このとき、ネットワークの大勉強をしたんだな。OS入れ替え100回とかね。

そして、私は、はっと思ったのです。
「なんだ、アニメ作るためにグラフィック処理する計算時間と、数値計算の時間って、おんなじジャンか。」

そうです。DECのalphaを4台も並べて並列計算していた、そのころ、もはやunixもこれまでか、というような
高速演算が、パソコンでできるようになってしまった、そう、アレは、1997年ごろ。

計算機が高速に高速になっても、実際問題の数値計算を実施する際に、巨大な労力を要するのは、
プリプロセスとトポストプロセス。
つまり、前処理と後処理。

つまり、計算領域をきめてメッシュつくって標高入れて境界条件データー作って、それ計算できます、ってところまで
が前処理、プリプロセス。

どーんと計算して、ばかでっかい計算結果ファイルを残して、どれ、アニメにでもしてみるか、と
たとえば10毎の結果を1枚1枚の画像にして、パーセプションやら動画GIFやらAVIファイルやらにして、
アニメを作ったりする、「計算結果の可視化」が後処理、ポストプロセスです。

これを、市販の統合ソフトでやらずに、全部自作する私は、大体、必要時間の80%はこちらに費やされるわけです。

そして、必要な計算時間を、しみじみと評価したら「計算とポストプロセスは、おんなじぐらいかかるじゃねーか」
となりました。

そこで、
作ったわけです。
そうだ!並列だな、これは。並列ってのは、プロセスのところで、「ドコが並列できるか」を考えることです。

その目的は、処理の高速化、ですが、処理とは、有限要素法で数値計算するプロセスだけではありません。

「こういう結果になったですぅ」と人に見せるとき、自分で見るとき、数万要素のメッシュの結果なんぞ、
数字羅列のデータをスクロールしてみても、流れなんぞ、絶対にわからない。

そう、可視化したところまで、たどり着いてこそ、やっと1バッチの終了なのでした。

4台PCつかって、コミュニケーションタイムを気にして、パラレルコンピューティングしても、結局2倍ちょいです。
そんなら、もっと、簡単に、並列化しよう。
そう、得たいのは、計算が速く終わることじゃなくて、「はやいとこ、アニメが見たい」だったあのです。

そこで・・・・



おっと、12時を回った。昨日は山登りで、筋肉痛。乾燥して肌も痒い。帰らなきゃ。
今日はこれまで。次はいつだろう?。トピックスを一回りしてからか。