山口大学 大学院創成科学研究科 様 Case

乱流現象を解明するためのシミュレーションをGPUコード化し
計算速度を飛躍的に向上

山口大学 大学院創成科学研究科 准教授の鳴海孝之様は、工学部の学生向けに物理学を体系的に理解するための工学基礎教育を行う傍ら、統計物理学の考え方を背景に、理論解析や計算機シミュレーションによる様々な非線形現象を研究されています。

これまでに、ミツバチの造巣、液晶電気対流、過冷却液体状態など幅広い分野を対象とされていますが、今回GPU化を進めた鳴海先生が書かれたシミュレーションプログラムは、乱流を抽象化した数理モデルを理論的に研究するためのものです。

山口大学 大学院創成科学研究科 准教授
鳴海 孝之 様

GPUコード化課題背景

ご研究のプログラムをGPU化された背景をお聞かせ下さい。

(鳴海先生)乱流の研究は多様で、例えば完全に乱れ切った乱流の研究は比較的多いのですが、一方で流体がどのように乱流になるのかは、あまり明らかになっていません。私が着目しているのは、全体を平らにする効果、つまり水面に波が立たないようにする効果と、波が出来た後に波の面が凹凸になる効果の両方が入っている現象で、それが競合して乱れが生じる際にどのような性質が現れるかを、数理モデルによるシミュレーションを用いて研究しています。

数値計算で得られる波の振幅を可視化

以前は1つのCPUで並列化もせずに計算していました。ですが、研究が進むに連れて計算時間が大分かかるようになり、限界を感じ始めていたのです。その数理モデルというのは、偏微分方程式を解くものなのですが、系全体を非常に細かくメッシュを切って計算しますので、GPUにすることのメリットが大きいのです。GPU化はかねてから実現したいと思っていましたし、同じ手間をかけるなら、思い切って手を入れたいと考えました。

OpenMPなども候補としてありましたが、チューニングにかける時間や実際に得られるメリットを考えると、期待する効果が得られないという経験もありましたし、GPUなら劇的に改善する可能性があると判断したのでお問い合わせいたしました。もともとプロメテック・ソフトウェアのグループ会社であるGDEPソリューションズからGPUマシンを購入していたので、そこから情報を辿ってGPU化のサービスを見つけたというのが経緯です。

GPU化はどのような流れで行いましたか。

(鳴海先生) 実際に動いたのが2021年に入ってからですが、大学は4月から6月が前期で忙しいので、その期間に高速化していただいて、時間の取れる夏休みにコードが手元にあると嬉しいと思いまして、そのようなスケジュールでお願いしました。

(担当者)1月下旬にお問い合わせいただき、当初からGPU化をご希望だったことと、お伺いしたプログラムの内容からGPUでの高速化が可能だと判断できたので、コンパイルを担当させていただきました。最終的に行いたい二次元問題に対応させる前に、まず一次元問題のプログラムをお預かりし、それでGPU化が出来そうかを確かめました。その後、結果をどう合わせるか、二次元だとどうなるかなどを話し合いながら対応を進めました。今回のプログラムがC++のオブジェクト指向型のモデルで、GPUを実装するためのOpenACCという言語と若干相性が良くないため、そこを解決するのに若干の時間を要しました。結果的には、約2ヵ月のやり取りとりとコード化作業で、期限の6月末までに完成し納品に至ったという流れです。

(鳴海先生)私は、とにかく早く対応して下さったという印象を持っています。問い合わせのメールにもすぐに返信して下さいましたし、サービス対応に関しては大変満足しています。それから、最初の打ち合わせの段階から重視していたのは、プログラムの可読性つまりブラックボックスにして欲しくない、ということです。テクニックを駆使してすごいコードに書き換えても、私自身が全く理解できないコードになってしまうと、いくら今回高速化が出来たとしても、今後誰も手を加えられずこれ以上開発できなくなってしまいます。その意図をきちんと汲み取ったうえで高速化して下さったのが非常に助かった部分です。

(担当者)私たちもそこは重視しており、コードが進化していく時に誰でも読めて開発の持続性を損なわないようにしないと、せっかくGPU化したものも無駄になってしまいます。HPCを見ている情報工学側の人間ではなく、実際に計算をされる計算科学の方々が読めて使いやすいものにするということを心がけました。そのメンテナンス性の良さというのは、非常に大事だと考えています。

実際GPUで、高速化や使い易さはどう変わりましたか。

(鳴海先生)高速化については現在どれくらいの差が出ているかを検証していますが、もちろん確実に速くなっています。比較するとおおよそ5~6倍になっています。特に評価できるのが、計算格子や計算領域が増えてシステムのサイズが大きくなっても、その性能がかなり担保出来ており、4~5倍の高速化を保てています。

何がGPUに向いているかは、どのように判断するのでしょうか。

(担当者)お客様の話をお伺いし、フーリエ変換なのか、行列積なのか、あるいは陰解法と呼ばれる連立一次方程式を解くコードなのか、などのようなパターンで傾向が決まってくると思います。その時にGPUが適しているのか、CPUの方がもしかしたらいいかもしれないとか、多少のヒントになります。プログラムをコンパイルするには、お客様と私たち開発者側の連携や情報共有がとても重要なポイントになります。ですから、最初に鳴海先生から作業に取り掛かるのに十分な情報をいただけましたので、非常にやりやすかったです。

(鳴海先生)その情報共有というところでは、私もかなり好印象で、最初の打ち合わせの時から本当に正確なアドバイスをいただき、こちらも非常に助かりました。GPUとも相性があって何でもGPUで上手く出来るわけではないことも説明下さいました。こちらはまだサービスを利用するか未定の状態で全部はお話できない中で、丁寧に聞いて下さり私もある程度の感触がわかったことが、発注する上で大きな判断材料になりました。コロナ下ということで、実はまだ直接お会いしておらず、最初からメールとオンライン会議だけで打ち合わせを続けておりますが、全く問題はないですしサポートにも非常に満足しています。

今後の研究で取り組みたいことや、将来的なビジョンなどをお聞かせ下さい。

(鳴海先生)昔からある身近な乱流という分野で、多くの研究者がそれぞれ違った視点で研究をされている中で、私は今続けている自分の基礎研究で乱流現象を明らかにして、応用技術としても何か貢献できればと思っています。そのためには数値計算は必要不可欠ですので、プログラムの技術を磨いて、効率よく計算してできるだけ結果を出していきたいです。プロメテックさんには、本当にこちらの要望を納期やコードの編集も含め、全て聞いていただいた形になっていると思います。ですので、本当に感謝しかないですし、今後もぜひ機会があればサービスを利用したいと思っています。

※本記事の内容は、取材時2021年8月の情報です。製品の機能および構成などは取材時より変更されている可能性がありますので、予めご了承下さい。最新の情報については、プロメテック・ソフトウェアまでお問い合わせください。

お客様紹介

山口大学

長州藩士「上田鳳陽」によって、1815年に創設された私塾「山口講堂」を起源とし、明治・大正期の学制を経て、1949年に、地域における高等教育および学問研究の中核たる新制大学として創設されました。現在は、9学部8研究科からなる学生数1万人を超える総合大学となっています。

ホームページ: http://www.yamaguchi-u.ac.jp

導入事例一覧に戻る >

お問い合わせ・
お申し込み・
資料請求