2024-03-29T07:28:28Zhttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_oaipmhoai:ipsj.ixsq.nii.ac.jp:001267552023-11-17T02:17:36Z06504:08067:08073
Sushi : プロセスの再配置可能な並列分散プログラミング言語Sushi : A parallel and Distributed Programming Language with Voluntery Process Migrationjpnhttp://id.nii.ac.jp/1001/00126940/Conference Paperhttps://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=126755&item_no=1&attribute_id=1&file_no=1(株)富士通研究所情報社会科学研究所(株)富士通研究所情報社会科学研究所(株)富士通研究所情報社会科学研究所(株)富士通研究所情報社会科学研究所(株)富士通研究所情報社会科学研究所山中, 英樹鵜飼, 孝典上田, 晴康菅野, 博婿和田, 裕二分散メモリ型の並列コンピュータや,ネットワーク上の計算機群を効率良く利用するソフトウェアの生産性の向上が課題となっている.一般に並列に動作するソフトウェアの記述は,その非決定性などから非常に困難である.さらにCPUなどの資源を効率良く利用するために,ある特定の環境においてどの計算をどのCPUで実行させるかといった,資源の割当をアルゴリズムとして明示的に記述しなければならない.そこで我々はプログラムの中でアルゴリズムを記述する計算部分と,アルゴリズムを変更しないアノテーションと呼ぶプロセスのCPUへの割り当てや実行の優先度の変更を記述する部分を各々独立に記述するプログラミング言語Sushi(smartly User Schedulable HIgh-level language)を設計した.このアノテーションはプロセスのマイグレーションの戦略,実行優先度の動的な変更などを記述する特殊なプログラムで,各プロセスに一つのアノテーションを付加することが可能である.これまでにもCPUの割当などをアルゴリズムと独立に記述するプログラミング言語PCN[PCN92]は提案されているが,Sushiのように実行中にプロセスのマイグレーションや実行優先度の変更などを行なうことはできない.計算部分は,複数のプロセスと呼ばれるモジュールとそれらを結ぶストリームで構成され,プログラムを実行すると,各プロセスがストリームを通してデータを流しながら並列に動作する.このような構成で計算部分を記述することによる利点としてa.データの流れにしたがってアルゴリズムが素直に表現できる.b.部品となる単純なプロセスを組み上げてより複雑なプログラムを構成することができる.c.プロセス間のデータの遣り取りがストリームを通して行なわれるため,モジュラリティが高く,プログラムの部品化,再利用に適している.などがあげられる.ストリームは,これまでデータフロー言語[ARV78],関数型言語[HEN80],論理型言語[SHAP83],Pascalにストリームを導入した言語[KUS90]など様々な研究がなされて来た.Sushiは,特に次のような設計をしている.a.既存の多くのプログラマが容易に利用できるように,各プロセスをCに似た構文で記述する.b,簡易にプロトタイプが作成できるように,データ構造を文字列と連想配列だけにした.AN00349328全国大会講演論文集第49回ソフトウェア3153161994-09-202015-01-20