• 検索結果がありません。

関数を future で評価す言語

N/A
N/A
Protected

Academic year: 2021

シェア "関数を future で評価す言語"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 73 回全国大会. 5G-7. 関数を future で評価する言語 Yanase Tatsurou ‡ Tamura Sinnsuke ‡ Taniguchi Syuji ‡. 柳瀬 龍郎† 田村 信介† 谷口 秀次† 福井大学工学部†. まえがき この報告は,並列処理を容易におこ なう言語の提案である.厳密には C 言語プログ ラムの記述において,並列処理を簡便に記述す るための,システムの提案であり,そのための プリプロセッサの提案でもある. 処理の(部分処理への)分割の戦略と作り出さ れた部分処理の分散実行のための手段について の報告.とくに分散処理の負荷分散について古 くから研究がなされている 本研究では多重呼び出し可能な future によ る並列処理を提案する. MULTI-LISP において提案された[1]future 概 念による関数評価の方法は,近年のマルチコア プロセッサには最も適切な並列処理記述でかつ, 処理システムと考えられる. future による並列処理の戦略 全体の処理はマ スターワーカシステムとして動作する. 計算モデルは 1)マルチコア 2)SMP 3)ネットワーク結合型 のいずれも計算モデルとして想定可能である. この future による並列処理のアーキテクチャ は,プログラムのディレクティブとして future 処理を宣言された関数に限って並列処理を行う 対象とする. プログラムにおいて定義され future 宣言され た関数の評価を,呼び出し元の計算資源(仮想 プロセッサ:マスタ)とは別の計算資源(仮想 プロセッサ:ワーカ)においてマスタにおける 実行文と並列に評価処理をおこなう.この呼び 出されたワーカにおいて,再度関数の並列評価 を別のワーカに依頼することを許す.ワーカが 抱え込む処理単位(SubJob)の個数は複数個可 能とする.また仮想プロセッサは一個の PC に複 数個の存在が可能である.仮想プロセッサは, プロセスあるいはスレッドによって実装される. おおよそネットワーク計算モデルの場合はプロ セスによって、マルチコアや SMP の場合はスレ ッドによって仮想プロセッサは実装されるのが 適切と思われる. future 宣言された関数(Subjob)を呼び出し たプロセッサ(この時点で,マスタとなる)で. 1-37. Univ. of Fukui ‡ は,その Subjob の評価の完了を待たず(ブロッ クされることなく)実行制御が返ってくる.こ の時返値は future という仮の値 となっている. したがってマスタはそのまま実行を継続するこ とが出来る.関数の評価は他の仮想プロセス: ワーカによって,マスタの実行制御と並列に処 理されるが,future 宣言された Subjob が大量に 生成された場合,動的にワーカ群に分配される. このようにして並列処理により全体の高速処 理をはかる. マスタにはマネージャが存在し,ワーカに動 的に Subjob を割り当てる機能を持つ.他のワー カから Subjob 評価の依頼が来た場合,自分が忙 しければ他のワーカに Subjob の依頼を行い,ま たその返値が来たことを管理するキューを持つ. 返値の管理 評価がワーカからマスタに返され て来たら、ワーカのマネージャは評価依頼され た Subjob のキューを参照し評価完了をマークし, それまで future であった変数の値を実際とする. この時点でキューから Subjob の名前やデータな どの項目を削除する. 仮の値 future のままで制御の進行ができない 場合には,評価の完了を待たなければならない. 評価の完了を待つ必要があるのは; (1) future が四則演算式の項目として現れる実行 文に至った場合。 (2) future が関数の引数として用いられている文 に至った場合. などである. プリプロセッサ future ディレクティブによって future 宣 言された関数を引数として API future を CALL するステートメントを生成し,また返値の確認 を行う touch 関数を,必要な実行文の直前に挿 入する.future の引数は; 返値が代入される変数のアドレス その変数の型 評価関数名 関数の型 関数引数の個数 引数 1,引数 2, である. 例えばステートメントが. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 73 回全国大会. v = Sub(a1,a2,a3,..); であれば、v,Sub が float 型の場合,プリプロ セッサによって,一行全体が; future(&v, f ,Sub, f ,a1,a2,a3, ) に変換される. touch 将来値 future がそのままでは実行が できないステートメントがでてきた場合, future の評価値が確定するまで実行をブロック するために使用される API であり,本研究では 四則演算項,関数の引数....等として future が使用されるとき,評価値が確定する迄, 実行文の実行を停止する.先のシテートメント では,変数 a の future 値が確定するのを待つた めに次のような文が挿入される; touch(&v);. 参考文献: [1]Robert H. Halstead,Jr:ParallelSymbolic Computing, Computer, IEEE, vol. 19, No. 8, 35-43(Aug.1986). 評価実験 13 クイーンの問題で,future の多重 呼び出しを行った結果を示す、詳細は発表にて 結果を示す.. 時間(秒) 500 400 300 200 100 0. 時間(秒). 1 2 3 4 5 6 7 8 9. 横軸は futur の呼び出し深さ /**_**FUTURE sub1 **_**/ main(){ int a,b; a= sub(3,2,1); … … … b = a + 10; printf(“b=%f\n”, b); }. main(argc,argv**){ int a,b; F_init(argc,argv**); future(&a,”f”,”sub”,”f”,3,2,1); … … … touch(&a); b = a + 10; printf(“b=%f\n”, b); F_end() }. => 変換. c 言語表記 C 言語表記から future を使った CLIP 表記 に,プリプロセッサによって変換される. CLIP 表記. 図 1 プリプロセッサでの変換. 1-38. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(3)

参照

関連したドキュメント

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

自閉症の人達は、「~かもしれ ない 」という予測を立てて行動 することが難しく、これから起 こる事も予測出来ず 不安で混乱

つまり、p 型の語が p 型の語を修飾するという関係になっている。しかし、p 型の語同士の Merge

本稿で取り上げる関西社会経済研究所の自治 体評価では、 以上のような観点を踏まえて評価 を試みている。 関西社会経済研究所は、 年

累積ルールがない場合には、日本の付加価値が 30% であるため「付加価値 55% 」を満たせないが、完全累 積制度があれば、 EU で生産された部品が EU

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から

通関業者全体の「窓口相談」に対する評価については、 「①相談までの待ち時間」を除く

「TEDx」は、「広める価値のあるアイディアを共有する場」として、情報価値に対するリテラシーの高 い市民から高い評価を得ている、米国