計算連続体に基づくソフトウェア実現法

研究の背景

今後の高性能計算機ソフトウェアが目指すべき重要な特性は, 計算の広域性と局所性の両立である.

現代の計算機システムは,キャッシュメモリ,主記憶,二次記憶からなる 階層的なメモリアーキテクチャと仮想記憶機能を採用している. 概念的には単一レベルの主記憶をプログラマに提供する一方で, 効率を上げるには計算の局所性の高いアルゴリズムを採用することが 重要となってきている.

近年実用化・製品化が進んできた並列計算システムにおいては, 局所性はさらに重要となる. 現在もっとも普及している並列処理システムは, 高速な各プロセッサ内部の計算処理と, 比較的低速なプロセッサ間通信という, 極端に性能の異なる二つの要素を含んでいる. そのために,各プロセッサが使用するコードやデータが, できるだけそのプロセッサ上のメモリに配置されるように局所性を配慮する ことが,並列ソフトウェア開発の重要課題となっている.

インターネットをはじめとする広域ネットワークが発達した現在では, 計算処理は単体の計算機や並列計算システムに限定されず, ネットワークワイドの広域分散計算の需要が増大しつつある. 遠方のサーバに蓄えられた膨大なデータや計算資源を, いかに効率良く利用して計算処理を高速化するかが, ソフトウェア開発の鍵である.

従来,計算の局所性についての議論は,単体計算機,並列計算システム, 広域分散計算といった分類ごとに個別に行われており, さらにメモリアクセス時間や通信速度などの実際の尺度に大きく依存した ものであった.これらの前提に立脚した理論やアルゴリズムは, 一時的に有効ではあっても,計算機や情報技術の発展にともなって 修正が必要となる.それらを応用したソフトウェアも変更を余儀なくされる. 局所性を扱う適切なモデルが欠如しているために,たとえば並列処理分野では 高性能なソフトウェアの設計開発が容易でなく,並列処理の普及は 期待通りには進んでいない.今後の計算機システムの同時に備える 広域性と局所性の両方に対応できる適切なモデルが強く待たれている.

研究の目的

本研究は次の二点を目標とする.
  1. 急激に進化する情報基盤に対応できる 「スケーラブル」なソフトウェアを開発するための基礎技術として, 計算能力が連続的に分布しているという 「計算連続体(computing continuum)」のモデルを確立する.

    連続体上の点と点の間に定義される何らかの「距離(metric)」を 局所性の尺度として使用することによって, 計算処理の複雑さやソフトウェアの制約条件の検証といった 理論にこれまでにない普遍性を与える.

  2. さらに,計算連続体モデルに立脚したソフトウェア構築法を諸側面から研究開発する.

    現実の計算問題や既存のソフトウェアを計算連続体に マッピングする方法および, 計算連続体に基づいたプログラムの記述・実行・検証・デバッグ・性能評価の 方法を研究開発する.

実際の計算機システムや情報ネットワークは,連続体を近似することによって, 計算連続体に基づいたソフトウェアを実行することとなる. そのための本格的な技術開発は,平成15年度から行う計画である. 平成13〜14年度は,自立性の高い「計算ブロック」を構成要素とし, それらを多数組み合わせることによって, 全体として柔軟な通信網と高い計算能力を備えた計算機構を想定し, そのシミュレータを用いて計算連続体の諸実験を行う.

研究の特色

本研究の特色は,21世紀の計算インフラストラクチャの基礎となる 計算連続体モデルの提案を通じて,つぎのよう な観点から,計算に関する既存概念の再検討,統合,および発展を図ろうと している点にある.
  1. 計算,記憶,通信の概念の有機的な統合を図る
  2. 記憶階層,並列処理,分散処理,実時間処理など,これまで独立に研究されてきた諸モデルの統合を目指す
  3. 計算量や効率の議論のための計算モデルと,プログラム正当性の議論のための計算モデルとの統合を目指す
並列分散処理技術および単体計算機の高速化技術を有効に活かした ソフトウェアの開発と蓄積のために,古典的な計算モデルを見直し, 現代の要請に合致したモデルを提案することを目指す.