最小限のコンパイラサポートによる細粒度マルチスレッディング -効率的なマルチスレッド言語を実装するためのコスト効率の良い方法

書誌事項

タイトル別名
  • サイショウゲン ノ コンパイラサポート ニ ヨル サイリュウド マルチスレッディング コウリツテキ ナ マルチスレッド ゲンゴ オ ジッソウ スル タメ ノ コスト コウリツ ノ ヨイ ホウホウ
  • Fine-grain Multithreading with Minimal Compiler Support Implementing Efficient Multithreading Languages
  • ランタイムシステム実現技法

この論文をさがす

抄録

マルチスレッド言語(細粒度スレッドの動的な生成を提供する言語)の実行モデルをCの1スタックによる実行モデル上で実現することは難しい.そのため,これまでの効率的なマルチスレッド言語の研究では,独自のフレームフォーマットやフレーム割当て方式を,専用のコンパイラとともに実装してきた.この論文はそれに代わって,既存の逐次Cコンパイラを最大限に有効利用する,費用対効果の高い実装方式StackThreadsについて述べる.StackThreadsでは,スレッドの生成は単なるCの手続き呼び出しによって行われる.これによりスレッド生成の性能は非常に高くなる.それに加え,ある手続きが実行を中断したときに,その手続きのコンテクスト(大体,その手続きのスタックフレームに相当する)をヒープにコピーし,後に再開するための機構を提供する.StackThreadsによって,コンパイラの作成者は,言語の逐次構文をCの対応する構文に変換し,並列構文を実現するために単にStackThreadsの機能を呼び出す,という単純なコンパイル方法をとることができるようになる.

It is not easy to map the execution model of multithreading languages(languages which support fine-grain dynamic thread creation) onto thesingle stack execution model of C. Consequently, previous work onefficient multithreading uses elaborate frame formats and allocationstrategy, with compilers customized for them. This paper presents analternative cost-effective implementation strategy for multithreadinglanguages which can maximally exploit current sequential Ccompilers. In StackThreads, a thread creation is done just by a Cprocedure call, maximizing thread creation performance. When aprocedure suspends an execution, the context of the procedure, whichis roughly a stack frame of the procedure, is saved into heap andresumed later. With StackThreads, the compiler writer canstraightforwardly translate sequential constructs of the sourcelanguage into corresponding C statements or expressions, while usingStackThreads primitives as a blackbox mechanism which switchesexecution between C procedures.

収録刊行物

被引用文献 (3)*注記

もっと見る

参考文献 (35)*注記

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ