首页> 外文OA文献 >並列処理に適した配列範囲記述子quadの提案と評価
【2h】

並列処理に適した配列範囲記述子quadの提案と評価

机译:适用于并行处理的数组范围描述符四元组的建议和评估

摘要

プログラマに対して共有メモリを提供するプログラミング言語を,計算機クラスタなどの分散メモリ環境に実現する手段として,コンパイラによって共有メモリへのアクセス情報を収集して,読み出しアクセス前までに,データを消費するプロセッサのメモリ領域にそのデータを移動させる方法が考えられる.この方法は,データアクセス範囲を適切に表現し,それに基づいて移動すべきデータを特定することで,データ転送を必要最小限に抑えることが可能である.本論文では,コンパイラ内部でアクセス情報を表現するための配列範囲記述子quadを提案する.quadは,並列プログラムの実行中に発生するアクセス・パターンを簡潔に表現できる特長を持つ.コンパイラは,依存関係にあるデータを適切に移動させるため,まず書き込みアクセスおよび読み出しアクセスを表現するquad間の積演算により転送すべき配列範囲を求め,対応する通信コードを生成する.本論文では,複数の並列応用プログラムを用いて,実行中にネットワークを介して転送されたデータ転送量,および記述子間の演算コストを基にquadの有効性を評価した.その結果,quadは並列プログラムで出現する典型的なアクセス・パターンを簡潔に表現することができ,従来の配列範囲記述子BRS1に比べて記述子間の演算コストを,BRS2に比べてデータ転送量を大幅に軽減できることを示した.One of the approaches to implement programming languages which provide shared memory for programmers on distributed memory environment is communication code generation, in which a producer sends appropriate data to the consumer. In this approach, the optimal use of network can be achieved by precisely identifying the necessary data to be transferred. This requires a compiler represents the exact range of accessed arrays. In this paper, we proposed a new array section descriptor, called quad, which can concisely represent array sections that are accessed in executing parallel programs. To identify data to be transferred, the compiler generates quads that represent written array section and read array section, and then generates codes for intersection operation between those quads. At runtime, according to the results of the intersection operation, the generated communication code sends the data to satisfy the dependency. For evaluation, we executed several parallel application programs using the quad and a coventional array section descriptor, and measured the amount of data transferred and the computational cost of the operations between descriptors. The results showed that the quad represents various access patterns typically observed in parallel programs efficiently, and can be more efficiently calculated when compared against an existing descriptor BRS1, and reduces the amount of data transferred when compared against BRS2.
机译:处理器通过编译器收集对共享内存的访问信息,并在读取访问之前消耗数据,作为一种实现为在分布式内存环境(例如计算机集群)中为程序员提供共享内存的编程语言的手段。一种可能的方法是将数据移动到其存储区域。通过适当地表达数据访问范围并基于该范围指定要移动的数据,该方法可以使数据传输最小化。在本文中,我们提出了一个数组范围描述符quad,用于表示编译器内部的访问信息。 Quad具有可以简单地表示在并行程序执行期间发生的访问模式的特征。为了适当地移动从属数据,编译器首先在表示写访问和读访问的四元组之间找到要通过乘积运算传输的数组范围,并生成相应的通信代码。在本文中,我们基于执行期间通过网络传输的数据量以及使用多个并行应用程序的描述符之间的计算成本,评估了quad的有效性。结果,quad可以简洁地表示在并行程序中出现的典型访问模式,描述符之间的操作成本比常规阵列范围描述符BRS1高,并且数据传输量比BRS2高。结果表明可以大大减少。实现在分布式存储环境上为程序员提供共享内存的编程语言的一种方法是通信代码生成,其中生产者将适当的数据发送给消费者。在这种方法中,可以通过精确地识别网络来实现网络的最佳使用。这就要求编译器代表所访问数组的确切范围。在本文中,我们提出了一个新的数组节描述符,称为Quad,它可以简明地表示在执行并行程序中访问的数组节。要进行传输,编译器会生成代表已写数组段和已读数组段的四边形,然后生成用于这些四边形之间的相交运算的代码。在运行时,根据相交运算的结果,所生成的通信代码将数据发送到满足为了进行评估,我们执行了几个并行的应用程序使用四边形和常规数组部分描述符,并测量了描述符之间传输的数据量和运算量,结果表明四边形可以有效地代表通常在并行程序中观察到的各种访问模式,并且可以更有效地计算出与现有描述符BRS1进行比较时,可以减少传输的数据量。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号