有限要素法プログラムの並列処理の話       2004.01.22         前橋工科大学建設工学科 助教授 梅津 剛


「コミュニケーションタイムが重要なんだよ」

とある昔、私がまだ選任講師の頃でした。いよいよ夜学の短期大学から昼ができるって計画が実施されようとしたとき、
「おお、いま出とかないと、おそらく一生でれんな」という危機感がありました。
(それが証拠に、その後10年、誰も在外研究で長期海外に留学したやつはおらん。)

長期海外研修をもくろみ、そうそう、ドイツのあの先生ならウマが合いそう、
と選んだ先が、ダルムシュタット大学マイスナー教授。
何しに行くかはそのあと、んでいまナニしてんの?と調べたら、パラレルコンピューティングやってる、
よし!私はプログラムの高速化は好きだ。実際ベクトル化はマスターしたし、というわけで、何も知らずにドイツに留学。

そこで、たっぷりルッツから、並列計算をならったものでした。

というわけで、ここでは並列計算の話をちょこと、したいと思います。



パイプライン処理と並列処理。ともにスーパーコンピューターといわれる超高速演算処理を行うものの、重要技の双璧です。
でも並列化の方が単純に理解できます。

一人でやるより、みんなでやったほうが、早い。」これです。

「え〜、そんなこと、ないよー、複数でやるとサー、なんか、足並みそろわなくてサー、かえって効率悪くならない?」

「すばらしい!そ、そうです。」

「それとさぁ、複数で、やるとさぁ、早いやつやら、遅いやつやら、いてさー、結局待ってなきゃなんなく無い?」

「おー!そのとおりぃ」

「んでさぁ、たっくさんの人数でやるとぉ、出来上がったの集めてさぁ、いやその前に、みんなにこれやってーって配らなきゃなんなくて、
そゆのに、時間かかかっちゃうんじゃ、無いの??????」

「いや、いや、いや、いや、まったく、まったく、そのとおり。それが並列計算なんですよ。もう書くこと無いやね」

おわり。



というわけには、いきませんね。
そう、つまり、並列計算は、複数のCPUを使って、1個のCPUでやるのと比べて、2個なら2倍、10個使えば10倍っていう、スケーラブルな
処理成果をあげるのが、理想です。
でも、実際には、そうは行きません。

ベクトル処理でも並列処理でもネックとなる、その効率を悪くしたり、それように改善しなければならないのは、
有限要素法では、これぞまさにプログラミングの極意である!はずの「重ね合わせ」です。

なんでかというとね、



おっと、忙しいのになんで、こんなの、書いてんだかなぁ。今日はこれまで。