平成8年度 委託研究ソフトウェアの提案

(1) KLIC の実行時システムの改良・拡張

研究代表者:近山 隆 教授
      東京大学 工学系研究科 電子工学専攻




[目次]

  1. 研究体制
  2. 2年目の研究内容
  3. 想定されるソフトウェア成果

[研究体制]

       氏名         所属
研究代表者 近山 隆   東京大学工学系研究科電子工学専攻教授
研究協力者 松浦健一郎  東京大学工学系研究科電子工学専攻修士課程1年
研究協力者 遠藤 秀和  東京大学工学部電子工学科4年


[2年目の研究内容]

前年度および今年度を通じて行なう研究の内容は, KLIC システム をベースに, 諸機能に改良・拡張を加え, 並列論理型言語のためのプ ログラミングシステムとして完成度の高いものとし, KLIC システム の利用範囲を拡大することである. 今年度は以下の諸点を主たる内 容とする.

☆ 世代方式ガーベジコレクタの実現: 前年度に行なった設計を基に, 世代方式のGCを完成し, KLICの性能向上を目指す.

☆ トレース方式の改良: 前年度に行なったゴールオブジェクトの導 入によるKL1自身で記述したトレーサについて, ゴールオブジェ クト機構の改良などによって, より実用性の高いものとする.

☆ 清書系の作成: KL1の項に対する, 読みやすい改行や段下げなど を行なうプリティプリンタを設計, 作成する.

まず, KLIC のシステムの概要調査, 昨年度の開発内容の確認, 関 連する研究論文の調査, 学会参加などの方法により, 基本的な調査を 行なう. また, 随時関連研究の調査を行なう (海外を含む). つい で新規参加メンバーの勉強のため KLIC システムの動作原理と内部構 造を, システムのコードを読み合わせることなどを通じて理解する. この結果に基づき, 改良・拡張項目の詳細を決定し, 改良・拡張方式 の設計を行なう. この設計に基づいてプログラムを作成, システム を構築する.

改良・拡張項目の一部については, 昨年度に開発途上の部分がある ので, できる限りそれを利用しながら開発を行なう. ついで, 構築 したシステムが想定した通り動作する. これら一連の開発作業には, 当研究室に設置されている SparcStation 8システムを ethernet で 接続した実験装置などを用いる.

拡張機能の設計, 実装方式の設計にあたっては, KLIC の保守方針 を策定している KLIC タスクグループとの密接な連携を取り, 開発方 針の整合性が損なわれないように留意する. また, KLIC タスクグルー プの協力を得て, 改良・拡張部分が KLIC の移植性を損なっていない ことの確認を行なう予定である.


[想定されるソフトウェア成果]

(1)作成されるソフトウェア名称

KLIC 第3版

(2)そのソフトウェアの機能/役割/特徴

機能:
KLIC 第3版は並列論理型言語 KL1 の並列処理系である.

- KL1 から C へのコンパイラと、実行時システムを提供する。
- 並列論理型 KL1 の主要機能を実現する.
- 同じハードウェア上なら従来の Prolog システムの 2 倍以上の速度を、同 程度以下のコードサイズで実現する.
- ステップ実行、スパイ機能、デッドロック検出機能などを備えたトレー サを持っている。
- C 言語、UNIX システムの標準的な機能のみを用いているので、多様な UNIX システムにほとんど変更なく移植できる。
共有メモリ並列機や、PVM を備えたシステムで並列実行が可能である.

役割:
第五世代コンピュータプロジェクトの核言語として開発された KL1 を, 並列および逐次の汎用計算機上での広範な利用を可能 にする.

特徴:
KL1言語を C 言語に翻訳する方式によって高い移植性と高性能 を同時に実現する.

- KL1言語プログラムを最終的には機械語プログラムに翻訳してから 実行する方式をとることによって, インタプリタ方式などよりも はるかに高い性能を実現する.
- 機械語への翻訳にはC言語を経由する方式をとり, 低レベルの機械 依存の最適化を機種ごとのCコンパイラに任せることによって, 移 植性を損なわずに高性能を実現する.
- 他言語プログラムとのリンクも容易である。

(3)ソフトウェアの構成/構造

システムは KL1 から C へのコンパイラと, コンパイル結果のコー ドから呼ばれる実行時システムとからなる. 実行時システムは概略 以下のようなモジュールからなる. 本研究における改良・拡張の対 象部分を ○ で示す.

○ 実行管理
モジュール間に渡る呼出しや, 優先度に基づくゴールスケジュー リングなどを行なう. 遅延タスク生成に基づく自動負荷分 散機構を付加する.
- 割り込みの処理
メモリ不足, トレースなどの割出しや, 他プロセッサやタイ マによる外部割込みを受けて, 必要なサブルーチンを呼び出 す.

○ メモリ管理
メモリの初期割り付けやゴミ集めなどを行なう. 世代型の ガーベジコレクタを付加する.
- ユニフィケーション, 組み込み述語, 組み込みデータ型 KL1 の基本的な組み込み述語や組み込みデータ型の操作を提 供する.

○ トレーサ
デバッグのためのトレース機能を提供する. KL1自身でトレー サを記述できる枠組を付加する. また, 清書系を付加し, トレースデータを見やすくする.
- プロファイラ
性能チューニングのためのプロファイル機能を提供する.
- 共有メモリ並列処理機構
共有メモリ並列計算機のための並列処理機能を提供する.
- 分散メモリ並列処理機構
分散メモリ並列計算機のための並列処理機能を提供する. 本研究における改良・拡張対象は, この一部であるメッセー ジ交換機構に対するものである.

(4)参考とされたICOTフリーソフトウェアとの関連

本研究は ICOT フリーソフトウェアとして配布している KLIC 処理系 第2版に対し, 改良・拡張を施すものである.

(5)使用予定言語および動作環境/必要とされるソフトウェア・パッケージ/ポータビリティなど

記述には原則として C 言語を用い, トレーサの制御部分は KL1 自身 による記述を予定している. UNIX, C コンパイラ, X ウインドウな どの広範に用いられている基本的なソフトウェアと KLIC 処理系以外 には, 特に他のソフトウェアを必要としない. このため, KLIC の高 いポータビリティを損なわないで機能拡張が可能である.

(6)ソフトウェアの予想サイズ(新規作成分の行数)

新規作成分は10,000行程度と見込まれる. この他に試験用・評価用 のソフトウェアを作成するが, これらは最終的に完成したソフトウェ アには含まれない.

(7)ソフトウェアの利用形態

改良・拡張結果のソフトウェアシステムは, 従来の KLIC 処理系を置 き換えるもので, その利用範囲は非常に広い. より具体的には, 以 下のような利用形態が考えられる.

- PIM 上で動作する ICOT フリーソフトウェアの移植

- KL1 による並列プログラムの記述

- C などで記述した逐次プログラムを, KL1 を結合させる糊として用 いて並列動作させるシステムの記述

従来の KLIC 処理系に比べ, 以下の諸点で利用者にとっての魅力が増 大する.

- 強化されたデバッグ機能によって, より複雑な応用システムを短期 間に構築することが可能になる.

- メモリ管理方式の改良によって, 従来の処理系による場合よりワー キング・セット・サイズが小さく抑えられ, 大量のデータを扱うプ ログラムの高速な実行が可能になる.

- 自動負荷分散機構の利用により, 並列計算機上での負荷分散が簡単 な指示だけで行なえる.

(8)添付予定資料

ソフトウェア仕様書、ユーザマニュアル等


www-admin@icot.or.jp