著者
前田 敦司 曽和 将容
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.41, no.4, pp.1-10, 2000-06-15
参考文献数
20

末尾再帰的な関数呼び出しをジャンプに変換する処理は,コンパイラの最適化として広く行なわれている.特に,Lispの一方言であるScheme言語においては末尾再帰呼び出しを空間計算量ο()で実行することが言語仕様で要求されている.このように,空間計算量ο()で実行することができる末尾再帰呼び出しを真の末尾再帰呼び出し(roper tail recursio)と呼ぶ.動的スコープを持つ変数が存在する場合,通常の実装では,スコープを規定する構文の実行が終るまで変数束縛を保持しておく必要があるため,構文の末尾で再帰的な関数呼び出しがあってもそれを真の末尾再帰呼び出しとすることができない.しかしながら,リスト構造を用いて変数束縛を保持する,いわゆる深い束縛を用いるLispインタプリタについては,事実上定数空間計算量で末尾再帰呼び出しを処理することができる手法が知られている.本論文では,動的スコープ変数の実装として現一般的な,浅い束縛を用いた場合について,真の末尾再帰呼び出しを実現するための手法について述べる.Conversion of tail recursive function call into simple jump is a technique widely used as optimization in compilers. Especially, Scheme, a dialect of Lisp, requires as part of language specification that tail recursion be performed in ο(1) space complexity. Tail recursion implemented in ο(1) space complexity is called "proper tail recursion". With existance of dynamically-scoped variables, ordinary implementation keeps variable bindings until binding construct exits. Thus, syntactic tail call cannot be implemented in a properly tail recursive fashion. For Lisp interpreters which keeps variable bindings in list structures (i.e. deep binding), there is a known way to achieve almost-proper tail recursion with dynamic scoping. In this paper, we argue about an implementation method of proper tail recursion with shallow binding, which is a common way of implementing dynamically-scoped variables in current Lisp implementations.
著者
高木 浩光 有田 隆也 曽和 将容
雑誌
全国大会講演論文集
巻号頁・発行日
vol.42, pp.68-69, 1991-02-25

並列計算機のアーキテクチャを実行順序制御の観点から分類すると、命令のプロセッサ割り当てを実行時に行なう動的順序制御方式と、実行前に行なう静的順序制御方式とに大別することができる.後者は前者に比較して、実行時にスケジュール処理を行なう必要がない、先行制御が容易であるなどの理由により、高速な順序制御が可能であるという特長をもっている.ただし静的順序制御方式では、その性能を最大限に引き出すために、実行前に最適な命令スケジュールを決定する必要がる。この最適化は、命令の処理時間の予測をもとに行なわれるが、この処理時間の予測が適確でない、もしくは、キャッシュ・ミスやネットワーク遅延などの不確定要素によって処理時間が実行時に変動するような場合、実行前の最適化では十分に良い性能が得られない場合がある。これが静的順序制御方式の動的順序制御方式に対する欠点のひとつとなっていた。我々は、従来のスケジュール法を改良することによって、処理時間の予測どおりに実行された場合の性能は従来のままに保ち、かつ処理時間が予測から変動した場合の性能を向上させるスケジュール法:DTSP(Dependent Tasks Same Processor)法を提案した。本スケュール法を用いることにより、従来の方法に比較して5~10%程度の性能向上が得られることが示されている。この性能向上率は、タスクグラフの形状、タスク(命令)の処理時間のバラツキ、プロセッサ数、タスク数などによって変化するものであった。特にタスクの処理時間のバラツキに対しては特徴的な変化がみられた。本稿では、この特徴について明らかにし、DTSP法がどのような環境において特に有効であるか考寮する。
著者
繁田 聡一 岡本 秀輔 清水 謙多郎 曽和 将容
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会技術研究報告. SS, ソフトウェアサイエンス
巻号頁・発行日
vol.98, no.230, pp.17-24, 1998-07-31
参考文献数
6

64ビットアーキテクチャの登場によって広大なアドレス空間が使用できるようになり、単一アドレス空間方式のオペレーティングシステムが研究されている。全てのプロセスが単一の仮想アドレス空間を共有するこの方式には、プロセス間でのデータ共有が効率良く実現できるという大きな利点がある。しかし、逆に、プロセス固有のデータを不正な参照から互いに保護するためには、単一の仮想アドレス空間上で保護領域の設定とアクセス制御を実現する必要がある。本稿では、キー/ロック方式を拡張した方式を、単一仮想アドレス空間上でのアクセス制御機構に適用する。
著者
岡本 秀輔 曽和 将容
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会ソサイエティ大会講演論文集
巻号頁・発行日
vol.1997, 1997-08-13

バリア型フェッチ機構は, アセンブリ命令を機能別に分け, それぞれスレッドとして並列に実行を行う命令レベル並列プロセッサ VFPE や PNSF において用いられている。この方式は, VLIW のように命令フイールドごとにスレッド別の命令を単一アドレス上に配置する。そして, その配置とは別に実行のための先行関係を指定する。このプログラムの指定方法により, VLIW で問題となる同期をとるためだけの不要な NOP 命令の指定を削減でき, かつ, キャッシュミスのような動的な変化においてもデータ依存の存在する部分のみのストールで実行をすすめることが出来る。 しかし, 本方式においてもスレッドごとの命令数が不均等である場合には, 依然として数合わせのための NOP を挿入する必要があり, これはプログラムサイズを増大させる他, 実行時間の無駄にもつながる。本報告ではこの問題の解決方法について述べる。
著者
小林 弘明 高木 浩光 有田 隆也 川口 喜三男 曽和 将容
雑誌
全国大会講演論文集
巻号頁・発行日
vol.48, pp.285-286, 1994-03-07

知識モジュールやシステムが状況変化に対して柔軟に適応できるかどうかという、柔らかさと呼ばれる概念が注目を集めはじめている。我々はプログラムを柔らかく記述する方法として概念制約式と呼ぷプログラム記述要素を提案している。本稿では概念制約式を用いて表現されたプログラムから実行可能なプログラムを生成するコンパイル手法について述べる。
著者
有田 隆也 高木 浩光 河村 忠明 曽和 将容
雑誌
全国大会講演論文集
巻号頁・発行日
vol.39, pp.1896-1897, 1989-10-16

機械語命令レベルからレジスタトランスファレベル程度の細粒度における並列実行方式であるPNアーキテクチャでは、プロセッサ内の複数の処理ユニットにそれぞれ命令流を独立に与えることによって並列実行を行う.各処理ユニットが独立に動作し、必要に応じて高速通信を行うので、VLIW方式のようにコンパイラで完全にスケジューリングを行い実行時には同期を行わない方式より、きめの細かな並列度を抽出する可能性かあり、またタイミングの不安定なメモリなどのハードウェアを組み込むのも容易である.処理ユニット数を3としたプロトタイプモデルは、従来の逐次的な機械語命令を、(1)データ転送命令(2)演算命令(8)フロー制御命令、の3つに分類し、制御フロー計算モデルに基づいた通信を行いながら、それぞれを専用の処理ユニットで実行する・フロー制御を行う処理ユニットに独自の命令流を与えたことにより、分岐判断の先行実行が可能となり、分岐処理に要する時間を大幅に減ずることも特長のひとつである.本稿では、PNアーキテクチャの分岐命令の処理方式について比較検討する.
著者
高木浩光 有田 隆也 川口 喜三男 曽和 将容
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告
巻号頁・発行日
pp.73-80, 1994
被引用文献数
1

効率的な並列実行のために,タスク間のデータ依存関係などにより必要となるプロセッサ間の同期操作を,高速に実現することが重要である.同期操作のソフトウェアによる実現では,同期操作自体に浪費される時間が無視できないほどに大きいものとなりうるのに対し,バリア同期の専用ハードウェアによる実現は,高速でしかも実現コストが小さいという特長を持っている.本稿では,ソフトウェアによる同期操作を一切併用することなく,バリア同期のみによって,与えられたプログラムの正しい実行を保証するような,バリア挿入位置を求めるアルゴリズムについて議論し,プロセッサの実行タイミングを推定しながらタスク割当てと同時にバリア挿入位置を決定することで,できるだけ全体の処理時間が短くなるような割当てを決定するアルゴリズムを示す.
著者
高木 浩光 有田 隆也 曽和 将容
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.32, no.12, pp.1583-1592, 1991-12-15
被引用文献数
7

並列計算機において高い性能を得るためには 高速な命令実行順序制御機構の開発が重要である本論文では単純なハードウェアによって構成できる 命令のプロセッサ割り当てをコンパイル時に決定する静的順序制御方式について議論する従来の単純なハードウェアによる静的順序制御機構としてバリア型同期が挙げられるバリア型同期機構は構成が単純なため高速な制御が可能であるが すべてのプロセッサが一斉に待ち合わせを行うという同期の性質上 本質的に不要な待ちが生ずるという欠点を持つ本論文では 静的順序制御方式による実行を並列コントロールフローモデルによって抽象化し その特性を示すとともに その特性を利用することによってはじめて可能となる 単純で かつ 不要な待ちを生じない静的順序制御機構を提案する提案する制御機構は一般化静的順序制御機構と呼び プログラムカウンタのほかに それと同程度に単純なカウンタを任意のプロセッサ間に設け これらを協調的に動作させることによって実現される
著者
有田 隆也 伊藤 広明 高木 浩光 曽和 将容
雑誌
全国大会講演論文集
巻号頁・発行日
vol.41, pp.145-146, 1990-09-04

細粒度の並列度を効率的に抽出するプロセッサアーキテクチャとして、我々はPNプロセッサを提案し、開発を進めている。PNプロセッサには、1)命令の種類に応じたプロセッサの機能分割、2)シンプルで高速な命令実行順序制御方式の採用、などの特徴がある。プロトタイプモデルでは、プロセッサの処理を、1)転送、2)演算、3)フロー制御(分岐)、の3つに分割して、スカラ処理を細粒度並列実行化している。本稿では、シミュレーションに基づき、上記の特徴について評価する。
著者
杉原 健司 志田 匡士 吉永 努 曽和 将容
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告. SLDM, [システムLSI設計技術] (ISSN:09196072)
巻号頁・発行日
vol.2005, no.27, pp.55-60, 2005-03-17

本稿では, キャンパスレベルを想定したP2Pネットワークにおいて, そのネットワークに参加する各ユーザが分散して提供するサービスや共有ドキュメントを有効活用するための新たな情報検索方式を提案する.具体的には, ピアの評価, 関連キーワードの学習, ドキュメントのスコア化とそれに伴うスコア制御機能を備えることで, 各ユーザの趣向にそった情報検索を可能にする.そして, 実装したシステムを利用使用した予備実験結果を示し, 提案システムの有効性について議論する.