2013 Fiscal Year Research-status Report
Project/Area Number |
24500030
|
Research Institution | The University of Tokyo |
Principal Investigator |
金田 康正 東京大学, 情報基盤センター, 教授 (90115551)
|
Keywords | 数値計算 / 高速計算 / トランスレーター / 数値計算ライブラリー / コンパイラー / 4培長演算 / 大規模計算 / 並列数値計算 |
Research Abstract |
京を代表とする並列計算機の性能向上は大規模科学技術計算の発展における大きな原動力である。ところが数値計算分野における浮動小数点演算は計算機上では有限桁に丸められるため、特殊な演算あるいは計算で無い限り各演算毎に数値計算上の演算誤差が発生することになる。 数値計算における有効桁は現在通常に利用されている倍精度演算の場合10進数で約16桁しかない。演算毎に誤差が発生しており、大規模な計算を長時間実施した場合最終結果に予想外の誤差が含まれてしまう事がある。実際の計算誤差がどの程度となるかは、取り扱う問題と計算手順に依存しており、理論的に予想される誤差と大きくかけ離れてしまっている事がある。 この様に計算規模が大きくなるに従って多くの計算を必要とする為計算誤差も増大することになる。例えば線型方程式 Ax=b の解法であるクリロフ部分空間を用いるCG法などは、浮動小数点に基づく数値計算法の中には計算規模が増に従って計算誤差が増大し、より多くの計算が必要になる。 並列計算機の性能向上は衰えを知らず毎年演算能力は上昇している。その結果、倍精度数よりも有効桁数が多くなる4培長数、あるいはそれ以上の精度を有する高精度演算の必要性が高まってきており、更なる計算精度の向上が必要となっている。本研究の概略は、倍精度演算を越える「4倍精度数演算のさらなる高速化と実用化」、そして「フリーソフトウェアとしての成果(ソフトウェア)の公開」を目的として研究を実施してきている。 平成25年度は、上記目標に合致する、4倍精度(以上の)演算を簡単に記述できるとともに、高精度数値計算ソフトウェア開発に適した新しい計算機言語の設計と細かな修正を終え、平成24年度に引き続き実際のトランスレーターの作成を継続した。またこれまでに使用してきている、研究成果公開用サーバーで使用しているネットワーク関連機器の設備の更新を実施した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
これまでの研究により、4培長演算の高速化、ならびにさらなる性能向上はほぼ完了している。 本研究による研究成果が実際に効果を発揮する為には、4培長演算に関わる実行時ルーチン(サブルーチン)を陽に呼び出す事無く、プログラムを解析し、自動的にルーチンを呼び出す様な、高度の最適化能力を有するコンパイラーあるいはトランスレーターの実現が必要となることが判明した。 この観点に基づき、数値計算向きの新しい構文を有する新計算機言語を設計する事を研究目標に追加した。平成25年度は英国ケンブリッジ大学の知人と一緒に新しい言語の設計のさらなる見直しを行い、当該新言語から Fortran言語あるいはC言語に変換するトランスレーターの作成を開始した。 この観点から、申請当初の目標からはすこしずれることにはなったが、おおむね順調に進展していると考えている。
|
Strategy for Future Research Activity |
平成25年度に引き続き、(並列)数値計算向きの新しい計算機言語のトランスレーターの完成に重点を置き、研究を推進する。研究テーマとの関連で、作成するトランスレーターは、4倍精度(以上の)変数として宣言された変数に対する四則演算をランタイムルーチンの呼び出しで計算するのでは無く、倍精度演算を基本とする四則演算の組み合わせで実現するとともに、基本演算レベルで高度に最適化する機能・能力を持つように設計している。この(マクロ)展開とソースコードレベルの最適化により、ランタイムルーチン呼び出しよりも高速に4倍精度(以上)の演算が実現出来ることを期待している。 この高度な機能により、8倍精度演算あるいはそれ以上の精度を持つ変数間の演算速度の高速化が実現出来る見込みであるが、実際のトランスレーターは複雑・高機能を有するソフトウェアとなるため、トランスレーターデバッグが順調に推移するかどうかに依存することを予め指摘しておく必要がある。
|