汎用送受信に対応したHOPEコンパイラの研究

書誌事項

タイトル別名
  • A Study on a HOPE Compiler That Supports Programmable Data Exchange

この論文をさがす

抄録

高生産性,スケーラビリティ,負荷分散,耐障害性は大規模な並列計算を行ううえで重要な課題である.我々が提唱中の階層的計算省略に基づく並列実行モデルHOPEはこれらの課題に取り組むものであり,複数ワーカによる冗長実行で耐障害性を実現するとともに,階層的計算省略に基づいて台数効果を得るため,ワーカはメッセージ媒介システムを介して部分的計算結果を交換する.HOPE言語はHOPEディレクティブを利用可能な拡張C言語である.HOPEコンパイラは,拡張SC言語として設計したHOPE言語を,計算状態操作機構を追加した既存の拡張SC言語を経由してC言語に変換する.その際,メッセージ媒介システムに対して部分的計算結果の読み書きを行うコードが埋め込まれる.部分的計算結果の場所は,HOPEディレクティブのresult節で指定する.本研究では,複数のresult節の同時指定に対応したコンパイラの実装を行うとともに,汎用送受信節を言語仕様に新たに追加し,その実装を行った.汎用送受信節により,リスト構造や木構造といった複雑な構造を持つ計算結果の読み書きの指定や,読み書きにともなう処理として複数の表現を持つデータの表現を変換する処理などの指定が可能となる.たとえば,結果の読み出しでは,読み出し元となるメッセージ媒介システム内のバッファの位置や大きさを得るための一時変数とそれを用いた読み出し手順を指定する.複数resultの実装は,汎用送受信節と同様にバッファを用いて,そこに複数の部分からなる部分的計算結果を一括して含めるものとした.

High productivity, scalability, load balancing, and fault tolerance are all important issues of massively parallel computing. A “hierarchical omission”-based parallel execution model called HOPE, which we are trying to propose, addresses these issues. It realizes fault tolerance by letting workers execute the same program redundantly. In addition, HOPE workers exchange partial results via Message Mediation Systems (MMSs) to get parallel speedups by omitting hierarchical subcomputations. The HOPE language is an extended C language with HOPE directives. A HOPE compiler translates the HOPE language designed as an extended SC language into the C language via an existing extended SC language with mechanisms for legitimate execution stack access. The resulting C code reads/writes partial results from/to MMSs. Locations where partial results reside are specified using the result clauses in HOPE directives. In this study, we implemented a HOPE compiler that supports specifying multiple result clauses for a single subcomputation. In addition, we designed and implemented an extended HOPE language with programmable data exchange clauses. These clauses enable workers to read/write results with complex data structures such as lists and trees. We can also use these clauses to convert data representations prior to read/write. For example, in a clause for reading a result, we specify temporary variables for obtaining the location and size of a buffer in an MMS in which the encoded exchangeable result is stored, and a procedure to read the result using these variables. We used buffers also for implementing the multiple result clauses: multiple parts of a partial result are aggregated to a single buffer.

収録刊行物

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

  • CRID
    1050846638690116864
  • NII論文ID
    170000181627
  • NII書誌ID
    AA11464814
  • ISSN
    18827802
  • Web Site
    http://id.nii.ac.jp/1001/00202869/
  • 本文言語コード
    ja
  • 資料種別
    article
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ