3.3.3 デバイス技術の向上で実現して欲しいこととPetaFlops計算機で欲しい技術 福井義成 委員
3.3.3.1 はじめに
進展著しいデバイス技術で今後実現して欲しいこと(あるべき姿)とHPC分野で欲しい技術について述べる。また、記号処理についてもふれる。
PetaFlops計算機を理解しやすい応用分野は昨年までに報告した。概要は下記の通りである。
(1) ミクロな原理からマクロな現象を解明する場合
原子を支配する基本法則(第一原理)だけから物質の特性を計算して求める場合などがある。原子の基本方程式を対象とする原子数に対して計算し、そこから物質としての性質を求める分野である。現在は計算機の能力から原子レベルからの計算も色々な仮定を置いて計算を進めることが多いが、それでは、仮定条件以外の答えが出てくる可能性はない。なにも仮定を置かない第一原理からの計算ではこれまで人間が考えつかなかった答えが出てくる可能性がある。この場合、扱える原子数がどれくらいかで扱える現象の範囲が決定する。多くの有用な現象は、その原子が純粋な塊(多くの場合、結晶)でどの方向へも同じ原子が無限に続いている場合ではない。また、有用な現象は物質の表面や2つの性質の異なる物質の境界面でおきる。触媒の場合は物質の表面であり、半導体では2つの性質の異なる物質の境界面である。現在の計算機の能力では、関係する原子の数が10〜100のオーダー程度が無理なく計算できる範囲である。1モルの分子数は1023のオーダーの原子数であり、現在は計算不可能である。全ての欲しい物質の性質を出すのには、1023のオーダーの原子数は必要はないが、現在の計算機の少なくとも1000倍以上の能力は必要である。
(2) 非線型3次元問題の時間応答問題
電子計算機(コンピュ−タ)の多くのアプリケーションは偏微分方程式を数値的の解くという観点から始まっている。偏微分方程式を離散化して解く場合、1次元から始まり、2次元、3次元と進んでいる。今後も、詳細な結果が必要な分野では3次元の取り扱いが不可欠となる。3次元の場合、各次元の分割数を増やすと必要となるメモリ−が急激に多くなる(3乗に比例)。近似モデルも線形で済んでいた(我慢していた)時代から、非線型が必要な(扱える)時代へと変化している。時間的な面も定常解で済んでいた(我慢していた)時代から、非定常解が必要な(扱える)時代へと変化している。
(3) リアルタイム性が必要な分野のシミュレーション
シミュレーション結果のリアルタイム性が重要な分野では実時間よりも速くシミュレーション結果を得て、対応策を検討・適用するため、高速な計算機が必要になる。計算結果だけを得るには現在の計算機でも可能であっても、リアルタイム性を実現するためには、より高速な計算機が必要になる。気象予測、地震予測、原子力発電所の制御などが考えられる。また、化学反応、溶鉱炉、半導体製造などで、製造段階の情報からシミュレ−ションを行い、結果を予測し、その後の工程を制御することにより、品質向上などが可能になる。
(4) 多くのケ−スの計算が必要な場合
1ケ−スの計算には高速な計算機は必要ではないが、シミュレ−ションのケ−ス数が数千から数万ケ−スの場合は全体として処理能力の高い計算機が必要である。計算機の能力が低かった時代には、1ケースだけでも結果が得られることが大切であったが、計算機の能力が大きくなるにしたがって、多くのケースの計算が可能になり、研究・開発の最適化が可能になる。
3.3.3.2 デバイス技術の向上で実現して欲しいこと(信頼性の向上)
計算機の利用の変遷を考えると、最初はアセンブラあるいは機械語でプログラムを書いていた時代から、コンパイラー言語でプログラムを書く時代になり、現在では既製のアプリケ−ションを利用することが多くなっている。これを計算機の利用効率の面から見ると、利用率は低下の傾向にある。別の表現を使えば、計算機のハ−ドの性能向上を利用効率だけではなく、使い易さにも振り分けてきたと言える。
近年の計算機の処理能力の向上、コストパフォ−マンスの向上には目をみはるものがある。 今後のデバイス技術の進展で処理能力はさらに向上するはずである。その処理能力は前に述べた大規模計算に適用するのが1つの手段である。一方、向上した処理能力を信頼性の確保にも振り向ける必要がある。今後は人間生活のあらゆる分野に計算機が使われるようになる(コントロ−ラ等として)。そのような状況では計算機システムの信頼性が重要になる。個人的な経験であるが、数年前、自動車を運転していて、踏み切りで突然エンジンが停止したことがあった。急いでエンジンを再起動したところ問題なく動いた。恐らく、エンジン等の機械系には問題なく、マイクロコンピュ−タを使った制御系の誤動作のようであった。そのことを定期点検時にメーカに連絡したところ、エンジン制御用のコンピュ−タを交換してくれた。現在では、普通の自動車にも多くのマイクロコンピュ−タが入っているとのことである。パソコンをワープロや表計算に使っているのであれば、多少、信頼性がなくてもリカバリーができるが、人間の命に関わる場面では信頼性が重要になる。
信頼性を向上させる1つの方法は1チップに搭載できるトランジスタ数が大幅に増加しているため、1チップの上に複数のプロセッサを搭載して演算結果を多数決できめる方法がある。システム全体の信頼性を向上させるにはボトルが無いようなシステム設計を行わなければならない。デバイス技術の向上はシステムの信頼性を向上させるためにも有効である。
また、信頼性を高めるためのソフトウェア技術の開発も重要な項目となる。
また、デバイス技術の向上により、計算機システムが安価になれば個々の機器の疲労の監視なども可能になるであろう。たとえば電車自身に疲労情報を蓄積するシステムをつけることにより、ある車両だけが疲労が増していることなどが検出可能になり、社会システムの安全性を向上させることができる。この場合も疲労情報を蓄積するシステムの部品点数が多くなることにより、このシステムの信頼性を高める必要がある。
「社会の信頼性を向上させるようなシステムは信頼性の高い計算機で構成しなければ無意味である。」
3.3.3.3 PetaFlops計算機で欲しい技術
(1) 計算モデルや計算手順を間違いにくくする技術
計算機のユ−ザが問題を解決するために計算機を使う場合、モデル(プログラム)記述が容易なことが大切である。ユーザにとって、演算が速いことではなく、解きたい問題が速く解けることが大切である。PetaFlops計算機は並列計算機と考える。現在、普通に使われている手続き型言語(Fortran、C等)はノイマン型計算機を前提にしている。プログラム(モデル)はどのデ−タをどのように加工するかの手順を計算機に指示することにより構成されている。現在のアプリケーションも多くのものはアルゴリズムもノイマン型計算機を前提にしている。
手続き型言語での並列プログラムの作成はユーザにとって負担が大きい。並列計算機では、単独プロセッサでは問題とならない複数プロセッサ間のタイミングの問題も生じる。タイミングにからむ問題は再現性が容易でないことが多く、これが手続き型言語での並列プログラミングの困難さの一因である。
並列計算を使い易くするためには、並列計算機向きのモデル記述手法・アルゴリズムがあるべきである。 ユーザにとって、手続き型言語で並列プログラムを書くのは負荷が大きく、それが可能な人口は限られてしまう。ユーザにとって、モデル記述が容易で、モデルの変更も容易で、なおかつ、並列性の抽出が計算機システムにとって容易であることが望ましい。
PetaFlops計算機の能力を十分に発揮させるためには、並列計算機向きのモデル記述手法・アルゴリズムの開発が不可欠である。
(2) デ−タの移動の構造を記述する手段
現在の計算機で大規模な計算(特に、ランダムなデ−タを扱う場合)を行っている場合、最大の問題は演算ではなく、デ−タの移動である。ノイマン型計算機ではメモリ内の番地を指定し、そのデ−タをメモリからプロセッサ内のレジスタに移動する。レジスタ内のデータ同士を演算し、結果を別のレジスタに格納し、その後、レジスタからメモリにデータを転送するのが一般的である。演算は最近のプロセッサの高速化により、ほとんど問題とならない。メモリとレジスタ間の転送時間が最大の問題である。これはプロセッサに比べて、メモリの遅さに原因がある。演算や分岐制御は完全にメモリとレジスタ間の転送に隠れてしまうプログラムもある。プロセッサとメモリの速度差があることを是認すれば、この速度差を避ける手段を考える必要がある。普通、よく行われる計算機ア−キテクチャ的解決方法はメモリ遅延の隠蔽である。
ソフトの面から考えると現在のプログラミング環境にはデ−タの移動の構造を明示的に記述する手段がない。そのため、必要以上にデータ移動の回数(データを示す番地データも含めて)が増えてしまうことがある。データの移動構造を明示的に記述できれば、計算機ア−キテクチャ的にメモリ遅延の隠蔽も容易になる。
これを実現するにはソフト的な開発とそれを支援するハード的な開発が必要となる。
(3) 可変デ−タパス計算機
前項で述べたハ−ド的な開発に利用できそうな技術がFPGAであろう。FPGAを利用したシステムでは命令体系等を可変にする研究は目にしているが、アプリケ−ションの性能を上げるためには、命令体系だけではなく、データパスを可変にした計算機が望まれる。可変デ−タパスとは表現しているが、本当にデータパスを変更しないまでも、キャッシュの制御アルゴリズムやプリフェッチのアルゴリズムを指定できるだけでも非常に有効であろう。
3.3.3.4 記号処理について
記号処理の場合、浮動小数点演算は非常に少ないので、文字処理が高速に行える計算機であることが必要である。具体的にはLISPのような言語が高速に処理できる計算機である。記号処理の1分野である数式処理においては、ベクトル計算のような連続的なメモリアクセスは少なく、多くの場合、ランダムなメモリアクセスを行なわなければならない。数式処理ではランダムなメモリアクセスが高速な計算機が望ましい。
数式処理にはアルゴリズムを書いて計算するものと、「公式」を用意しておき、パターン認識で行うものがある。後者の場合、パターン処理が高速な計算機が必要になる。この点は翻訳や音声認識と共通な部分があるのではなかろうか。
大規模な科学技術計算に戻って考えると、数値的処理だけでは収束等に非常に時間のかかる計算も数式処理を上手く組み合わすことにより、収束性などを大幅に改善できる場合もある1),2)。
3.3.3.5 まとめ
PetaFlops計算機を使用するであろうユ−ザが本質的(直接的)に欲しいものは下記のようなものである。
(1)速く正しい結果の得られる道具(2)問題の処理過程全体が速くなること
これを実現するためには、 PetaFlops計算機のような速い計算機とモデル(プログラム)記述手法の革新が必要である。高度な計算(情報処理)には数値的処理だけではなく、記号処理のような非数値処理の高速化・高度化も重要である。
参考文献
1. Lecture Notes in Computer Science Vol.378 (Ed.)J.H.Davenport, Springer-Verlga
1989. pp.163-171. M.Suzuki, T.Sasaki, M.Sato and Y.Fukui : A Hybrid Algebraic-Numeric System ANS and Its Preliminary Implementation.2. Journal of INFORMATION PROCESSING, Vol.13, No.4, pp.529-533, 1990. T.Sasaki,
Y.Fukui, M.Suzuki and M.Sato: Proposal of a Scheme for LInking Different ComputerLanguages - from the Viewpoint of Algebraic-Numeric Computation - .