現在の商用並列計算機は、非常に高いピーク性能を持つものの、粗粒度並列計算が可能な数値計算でしかその性能を発揮することができない。これに対し本研究は、より広い分野で高い性能を発揮するマルチスレッド型並列計算機システムを考案した。 1.スレッドレベル並列処理ハードウェア技術 現在の商用並列計算機が対象としている数値計算プログラムだけでなく、より一般的な非数値計算プログラムを効率良く実行する方法を考案した。 (1)メモリ・サイクルをスチールを利用して、暗黙的にスレッドの切替を行う機構を考案した。 (2)非数値計算プログラムの実行を効率良く行なう複数スレッドの同時実行機構を考案した。 (3)ス-パスカラの命令スケジューリング機構とプロセッサ間通信機構を融合することにより、マルチプロセッサにおけるスレッド間の通信レイテンシを極めて小さくする方式を提案した。 2.命令レベル並列処理ハードウェア技術 命令レベル並列の技術を拡張することによりスレッドレベルの並列処理を効率的に行なう技術を開発した。 (1)プログラムの制御構造に関係する分岐の性質や分岐方向の偏り等の性質を利用し、極めて高精度な予測機構を実現した。 (2)投機的なデータ・プリフェッチ機構を提案した。 3.マルチスレッド用コンパイル技術 逐次処理計算機用に書かれたプログラムを自動的に複数のスレッドへ分割し並列化する、コンパイラの開発を行なった。本コンパイラは、商用計算機の逐次処理プログラムの基本ブロックレベルでの制御構造を利用して並列化を行った。本研究は、汎用性に富んでおり、種々の並列計算機で使用することができる。 4.並列ソフトウェア技術 (1)柔軟な問題記述機能と自動並列処理を特徴とする偏微分方程式用数値シミュレーション言語NSLを提案し、分散メモリ型並列計算機向けトランスレータを試作した。 (2)負荷の大きさおよび計算機スループットの履歴から算出された優先度を用いる動的負荷分散法を提案した。
|