技術動向レポート
超大規模格子の新しい生成手法
情報・コミュニケーション部 シニアコンサルタント 松村 洋祐
ペタスケール以後のスーパーコンピュータ上での数値シミュレーションにおいては、格子も必然的に超大規模なものとなる。このような規模の格子は、従来通りの手法では作成が困難であり、新しい手法が必要となる。その手法の一つとして、NURBS Volumeを利用した格子の自動細分化を紹介する。
はじめに
数値シミュレーションは、様々なものづくりの現場における設計のためのツールとして、既に必須のものとなっている。2011年度からは、先ごろTOP500(1)で世界一となったスーパーコンピュータ「京」等を活用し、HPC(High-Performance Computing)の計算能力による量的なパラダイムシフトを活かしたものづくりを推進する、「次世代ものづくり(2)」のような戦略プログラムも実施されている。
数値シミュレーションでは、解析対象を計算機上で扱うために、その形状や周りの空間を離散化(デジタル化)する必要がある。この目的で一般的に使用されるものが格子(グリッド、メッシュ)と呼ばれるものである。数値シミュレーションの結果は、格子に依存する。つまり、格子やその生成技術も、ものづくりにおいて必須のものと言うことができる。
本稿では、今後のスーパーコンピュータ上での数値シミュレーションに必要となる超大規模格子生成手法の一つとして、NURBS Volumeを利用した格子の自動細分化について述べる。
1. 格子とは
格子とは、解析対象やその周りの空間を計算機上であつかうために離散化したものである。格子とは現実の空間をアナログ-デジタル変換したものということもできる。ただし、格子は解析対象やその周りの空間を等間隔でサンプリングするような単純な方法でアナログ-デジタル変換して作成すればよいというものではなく、「細かく」、「少なく」、「品質良く」、というような要求を同時に満たしている必要がある。格子が粗いと、解析対象の形状を正確に表したり、物理現象を精確に捉えたりすることができない。
しかし、格子を単純に細かくしてしまうと格子数が多くなり、それにつれて数値シミュレーションでの計算量が増大してしまう。さらに、ファイルサイズも大きくなり扱いにくくなる。そのため、物理量が急激に変化すると予想される場所では細かく、そうでない場所では粗く、といった制御が必要となる。
格子の品質は、直交性、アスペクト比(要素の縦横比)、変化率(隣接要素との大きさの比)などで評価される。品質の低い格子は、数値シミュレーションの結果に悪影響を与える。たとえば、直交性の低い格子は空間を分解する能力が低く、数値シミュレーションの精度の低下を招くこととなる。
そのため、格子を作成する際は、手作業での格子点配置、TFI(Transfinite Interpolation)(3)による代数補間、偏微分方程式による繰り返し計算など様々な処理を組み合わせて、これらの要求をできるだけ満たすようにパラメータを調整することとなる。全ての要求を同時に考慮して、必要な部分は細かく、全体の格子数は少なく、品質の良い格子を作成することは、熟練者にとっても困難かつ多くの労力を必要とする作業となる。また、そのような格子を自動生成することが困難であることも十分に想像できるだろう。
図表1 格子の例 (JAXA殿ご提供)
さて、格子には大きく分けて二種類があり、それぞれ構造格子、非構造格子と呼ばれている。
構造格子は、上下左右前後に規則正しく並ぶ四角形(2次元)や六面体(3次元)のみによって構成される格子である。非構造格子は、自由に並べた三角形・四角形などの多角形(2次元)や四面体・四角錐・三角柱・六面体などの多面体(3次元)で構成される格子である。
構造格子には、解析の精度が高くソルバー(4)の実行時間が短いなどのメリットがあるが、規則正しく格子を並べなければならないため、複雑な形状にあわせて格子を作成することが困難であるというデメリットがある。
これに対して、非構造格子では様々な多面体で空間を埋めていくことができるので自由度が高く、複雑な形状にあわせやすいというメリットがある。
また、構造格子のデメリットである自由度の低さを改善するための方策として、複数の構造格子のブロックを非構造格子のように自由に並べたマルチブロック構造格子等がある。非構造格子のデメリットである解析精度の低さを改善するための方策として、全ての要素を六面体とする六面体非構造格子等がある。
格子の作成者は、実行する数値シミュレーションの性質や必要な精度等に応じてメリットとデメリットを勘案し、またソルバーの対応状況等も鑑みて、最適な格子の種類を選択することとなる。
たとえば、航空宇宙分野の流体解析では、複雑な形状に対する高精度の解析が必要となるため、マルチブロック構造格子が使用されることが多い。
図表2 格子の種類
2. Peta / Post-Peta / Exaスケールの格子生成
現在の「京」などのスーパーコンピュータは、演算処理性能が10PFLOPS(5)超級であることからペタスケール・コンピュータ(Peta ScaleComputer)と呼ばれる。将来的にはペタスケールより高性能なポスト・ペタスケール(Post-Peta Scale)、エクサスケール(Exa Scale)のスーパーコンピュータが出てくることが予想されている。
Peta/ Post-Peta /Exaスケールのスーパーコンピュータでは、数値シミュレーションに使用する格子も必然的に超大規模になる。このようなPeta/Post-Peta/Exaスケールの格子は、そのデータ量の大きさから、従来からあるメッシュジェネレータで扱うことが非常に困難となる。たとえメッシュジェネレータを並列化すること等により、メモリ上に全てのデータを格納することができたとしても、手作業で格子点を配置したり調整したりするには、膨大な作業量が必要となる。また、格子を作成することができたとしても、その格子を目視等で確認することは不可能となる。さらに、格子ファイルの転送やソルバーでのI/Oにかかる時間も大きくなりすぎる。つまり、Peta/ Post-Peta /Exaスケールの格子を作成するためには、既存の方法によらない、新しい格子生成手法が必要となる。このため、超大規模格子の生成手法の一つとして、近年、以下のような手法が提唱されている。
まず、粗い格子を作成してこれを基本格子とする。この基本格子を自動細分化することで、実際に数値シミュレーションで使用するPeta/Post-Peta/Exaスケールの格子を生成する。基本格子は小規模であるため、従来通りの手法で作成・確認することができる。また、自動細分化機能をソルバー自体に組み込めば、格子ファイルのI/Oにかかる時間も従来通りで済む。
しかし、現在のアプリケーションで行われている実装の多くは、基本格子の要素を二倍、四倍、八倍と単純に等分割するものであり、細かな制御を行うことができない。そのため、基本格子の作成時に、最終的に生成される超大規模格子の格子幅や変化率等を想像しながら作成する必要があり、格子の作成者に新たな労力をかけさせることとなっている。
この点を解消するための改良の一つとして、マルチブロック構造格子に対するNURBS Volumeを利用した自動格子細分化がある。
3. NURBS Volumeを利用した自動格子細分化
NURBSとは、非一様有理Bスプライン(Non-Uniform Rational B-Spline)の略で、自由曲線、曲面の数学的表現法の一つであり、多くのCADで曲面を扱うために利用されている。
NURBS Volumeとは、NURBSを利用した3次元空間の表現手法であり、数学的には3次元実数ベクトル空間R3から射影空間P3への3変数のNURBSによる連続写像となる。これにより、(u, v, w)の3つのパラメータによって、格子点の位置のみならず、格子が張られている空間全体をあらわすことが可能となる。3変数のNURBSの性質については、CAGD(ComputerAided Geometric Design)の分野では1980年代半ばより多くの研究がなされてきたが、格子全体を3変数のNURBSであらわす研究は比較的新しく、1990年代終わりから2000年代初めごろに提唱されたものである。
このNURBS VolumeとTFIとを組み合わせ、格子ブロックの辺上での格子点分布を与えることにより、マルチブロック構造格子全体を自動細分化するアプリケーションの開発を行った。
このアプリケーションによる格子細分化の利点は、以下の通りである。
- 基本格子の品質を受け継ぎながら、境界層へのクラスタリング等細かな制御も入れた自由な格子生成が可能である。
- 自動細分化のパラメータは、格子ブロック辺上での第一格子幅や格子幅の変化率、格子点数等となり、設定が直感的である。
- 曲面や曲線の表現にNURBSを使用しているCADとの相性が良く、細分化によって新たに生成された格子点の境界形状への適合も容易である。
- 代数計算による補間であるため、偏微分方程式の繰り返し計算などと比較して非常に高速である。
- 格子ブロックごとに処理を行うことができるので、並列化やソルバーへの組み込みが容易である。
NURBS Volumeを利用した自動格子細分化の例を、図表3に示す。基本格子の品質を受け継ぎながら、境界層へのクラスタリングも入れた自由な格子生成ができていることがわかる。
図表3 NURBS Volumeを利用した自動格子細分化の例
おわりに
スーパーコンピュータと一般的なPCの性能の推移を比較すると、現在、スーパーコンピュータで行われている規模の数値シミュレーションが、10年程度で実際のものづくりの現場にも下りてくることが予想される。
従来、設計の現場では、「格子は汎用のメッシュジェネレータで人手をかけて作成すればよい」とするような考え方もあった。しかし、今後訪れるPeta/Post-Peta/Exaの時代ではこうした考え方は通用せず、本稿で紹介したNURBS Volumeによる格子の自動細分化のような自動格子生成技術がますます重要となってくるだろう。
脚注
- (1)TOP500
- (2)HPCI戦略プログラム「分野4次世代ものづくり」
- (3)辺の格子の分布から面の格子の分布を決定する手法で、代数的な格子生成法の中で最も広く使われている手法の一つである。
- (4)数値シミュレーションにおいて実際に物理現象の計算を行うソフトウェアのこと。
- (5)P(Peta)は10の15乗。FLOPSはFloating-pointOperations Per Secondの略で1秒間に行うことができる浮動小数点数演算の回数。10 PFLOPSのスーパーコンピュータは毎秒1京回の浮動小数点演算が可能である。
参考文献
- Martin, W., and Cohen, E.(2001), "Representationand Extraction of Volumetric AttributesUsing Trivariate Splines: A MathematicalFramework." Proceedings of the sixth ACM symposiumon Solid modeling and applications, ACMPress, pp.234-240
- Thompson, J.F., Soni, B.K., and Weatherill, N.P.,(1999), Handbook of Grid Generation, CRCPress.
- Piegl, L., and Tiller, W.,(1997), The NURBSBook, Springer-Verlag Berlin Heidelberg NewYork.
- 本レポートは当部の取引先配布資料として作成しております。本稿におけるありうる誤りはすべて筆者個人に属します。
- レポートに掲載されているあらゆる内容の無断転載・複製を禁じます。全ての内容は日本の著作権法及び国際条約により保護されています。


