スーパコンピュータの出現と普及に象徴されるように、数値シミュレーションの需要は近年特に高まっている。現在では、数値シミュレーションなくしては、先端技術の研究開発はありえないと言っても過言ではないまでに至っている。 計算能力を供給する半導体を始めとするハードウェア技術の目覚ましい進歩に比べ、その利用技術であるソフトウェアの面は立ち遅れが目立っていた。そこで著者らは、一般の科学技術者が自在に記述でき、かつFORTRANに代わる生産性の高いプログラミング言語として、偏微分方程式で記述される連続型のシミュレーション問題を対象にDEQSOL(Differential EQuation SOlver Language)システムを研究開発してきた。本システムは、微分演算子を用いた数式レベルのアルゴリズム記述と解析領域の記述から、実行性能の高いFORTRANプログラムを自動生成するものである。本研究の目的は、コンピュータの専門家でなくても容易に数値シミュレーションを実行できるソフトウェア環境を提供する事にある。 DEQSOLと同様の目的で研究開発されているシステムとしては、欧米を中心とした大学、公的研究機関による米国Purdue大のELLPACK、Lawrence Livermore国立研究所のALPAL、独国Karlsruhe大のFIDISOLなどが挙げられる。システムの実現方式は、コード・ジェネレータを備えてプログラム生成を行うシステムと、多数のライブラリを備えそこへのドライブを図るシステムに大別できる。DEQSOL、ALPALなどは前者に属し、ELLPACKは後者に属する。DEQSOLはコード生成方式を活かし、広範な実問題への適用能力とマシンに最適なプログラム生成に特徴を有している。 以下、6章からなる本論文の各章の要旨を述べる。 第1章では、数値シミュレーションフローの分析に基づいて、それを支援するソフトウェアシステムの現状と課題を示す。それを解決するシミュレーション支援環境は、計算機アーキテクチャを隠蔽した高度なインタフェース、プログラミング工数の大幅な削減、プログラムの改造の容易性/拡張性の確保などの要件を備えたものである。 第2章では、上述の要請に応えるシステムとしてDEQSOLの基本機能、コードの自動生成方式、および実問題に対する評価を示す。DEQSOLの言語仕様は、非線形偏微分方程式や連立偏微分方程式などを含む広範な問題に対するアルゴリズムの記述能力を有している。DEQSOL言語からシミュレーションコードの生成は、偏微分方程式の自動離散化と充分なベクトル長を備えたコード生成が中心的な技術課題である。自動離散化機能としては差分法と有限要素法の両解析手法を実現した。実問題に対する評価によれば、DEQSOLはFORTRANの10倍以上の記述効率を有し、自動生成されるシミュレーションコードは90%以上の高いベクトル化率を達成している。 自動プログラミングシステムは記述が高水準であるが故に、逆にその適用範囲が限定されたものになりがちである。第3章では、その制約を解消し、DEQSOLの柔軟な記述性を高め、複雑な実問題にまでその適用範囲を拡げたコード生成技術について述べる。以下に述べる機能拡張により、DEQSOLの適用範囲は他システムに類例がないまでに至っている。 第一は、偏微分方程式の離散化方程式(行列)を生成し、その求解を行う陰解法機能の高度化である。陰解法機能はDEQSOLの柔軟で簡潔なアルゴリズム記述を可能としている主要な機能である。本機能の対象を単一式から複数の連立偏微分方程式系に、解析領域を全体矩形領域から部分非矩形領域へと拡張した。実現にあたって鍵となる、行列解法との整合性を保証する離散化方程式からの行列の構成方式、および非零成分の任意の出現位置に対応できる行列の管理方式を示す。本機能により、半導体デバイス解析、ストークス流れ解析など連成の強い連立式の求解や、例えば空気と固体といった異物質で構成される系の解析を可能とした。また、所要メモリの圧縮を狙った部分構造反復法アルゴリズムの構築など、連立元数や部分構造数に依存した所要メモリ量や計算時間のトレードオフを制御できる柔軟なアルゴリズム記述が可能であることを示す。 第二は、非矩形領域を矩形領域に写像変換し、そこで差分法を適用するバウンダリフィット法の実現である。写像変換に伴う偏微分方程式の変換を原式の物理的意味を保存する再帰的な写像変換方式を開発し、既存のDEQSOL差分法処理系に接続させることにより本解析手法を可能とした。これにより、任意の領域形状に対しても差分法の特長である高性能なシミュレーションコードの自動生成が達成される。また、一つの大きな課題である動境界問題に対するコードの自動生成を試み、酸化プロセスによる動境界問題となる半導体不純物拡散解析を例に本機能の有効性を示す。 第三は、流体解析機能の導入である。本機能により流体と熱の連成問題などその適用範囲の大幅な拡大が可能となる。実現にあたっては、コード生成において流体方程式を構成する変数の離散化精度(次数)の制御方式と安定に数値解を求めるための風上離散化方式が鍵となる。差分法ではスタガード格子の導入と5種類の風上手法を、有限要素法では高次要素と汎用性のあるペトロフガラーキン式の風上手法を導入した。各種の流体問題に対して評価し、本機能拡張においても、FORTRANの10倍以上の記述効率を有し、自動生成されるシミュレーションコードは差分法で98〜99%、有限要素法で93〜97%のベクトル化率を達成していることを示す。 一方、最近のハードウェアの進展に目を向けると、単一のプロセッサの性能限界を打破するため複数のプロセッサにより並列処理を行う並列計算機が、今後の最高速性能を狙うアーキテクチャとして有望視されている。しかし現在の分散メモリ型並列計算機のプログラミング環境のもとでは、性能を引き出すためにはユーザがプロセッサへのデータの分割、処理の分割、プロセッサ間の通信等の記述を行う必要がある。そのプログラム開発工数は膨大となり、それが並列計算機の普及の妨げともなっている。第4章では、プログラミングが一段と困難である並列計算機に対して、DEQSOL言語から並列計算機向けコードの自動生成について述べる。DEQSOL記述の解析から各プロセッサに対するデータの分割および処理の分割を決定し、全プロセッサに共通となるコードと各プロセッサの計算範囲を制御するテーブルを自動生成する。コード生成に際してはプロセッサ間でのデータの送受信コードを自動付加する。本方式の特徴は、最適なプロセッサの割り付け方式と、必要最小限の通信コードの自動生成方式にある。最適なプロセッサ割付はプロセッサ台数および各種の並列化モデルに対する実行時間推定により実現している。また,通信コードはDEQSOL記述の静的解析と、実行時に通信の要否が決定されるケースに対しては生成コード中にその要否判定を行う構造を持たせることにより実現している。評価では、プロセッサ間の負荷バランス、プロセッサ台数および通信コードの最適性について分析する。また、13,000節点の3次元熱拡散問題に適用し、16プロセッサを用いて、14.5倍の高速化(並列化効率90%)を達成していることを示す。 更に、エンジニアリングワークステーションの普及と高性能化も目覚ましく、計算機との対話環境やグラフィックス環境および分散処理環境の充実に加え、個人の占有できる計算機資源も飛躍的に増大してきている。この背景を受け、第5章では、エンジニアリングワークステーションの対話環境と分散環境を活かして、言語システムから一段発展させた、シミュレーション工程を一貫して支援する対話型システムについて述べる。本システムは、シミュレーションに関連する情報群を物理的情報、数学的情報、数値的情報に階層分けし、それらをアイコンやボタンで代表させ、その押下によって現われるサブウィンドウ中のテンプレートやメニューの操作によって、プログラミング、実行、結果検証に至る全ての工程の支援を可能としている。本システムの特徴は、領域形状や支配方程式の画面への直接入力方式、条件式やアルゴリズム展開のエキスパート的なガイダンス機能、標準的なウィンドウシステム上での実現による見え方や操作の統一性などである。任意の偏微分方程式からアルゴリズムへの自動展開は、線形化等の原式の変換、条件式の変換、変数の追加および反復・分岐などの制御構造の構築により達成される。本システムによれば、FORTRAN等の従来言語による工程を1/10〜1/30に短縮できるだけでなく、ユーザの数値シミュレーション実行上の前提知識を大幅に緩和することが可能であることを示す。 第6章では、まとめとしてDEQSOLシステムの総括を述べる。また、シミュレーション支援環境の今後の研究方向として、一層のエキスパートシステム化、およびオブジェクト指向プログラミングパラダイムにおける共通基本ライブラリ化が有望であることを述べる。 |