首页 / 专利库 / 银行与财务事项 / 别名映射 / Source conversion system

Source conversion system

阅读:272发布:2020-11-10

专利汇可以提供Source conversion system专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To efficiently manage the distributed state of alias data in a distributed memory type multiprocessor system by constituting the system from a compiler provided with respective means for performing the analysis of the alias relation of an array, the analysis of the mapping of the array, the deformation of the declaration of array data and the deformation of array data reference data in a program.
SOLUTION: A data alias analysis means 21 generates storage area sharing data information 35 for indicating the relative positional relation of the data sharing a storage area with each other on a memory. Then, the data mapping analysis means 22 of the compiler 2 analyzes the data of a source program and generates data mapping information 36 while referring to the storage area sharing data information 35. Then, the array data declaration deformation means 23 of the compiler 2 deforms the shape of all the array data sharing the storage area and mapped array data while referring to the storage area sharing data information 35 and the data mapping information 36.
COPYRIGHT: (C)1997,JPO,下面是Source conversion system专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】分散メモリ型マルチプロセッサシステムにおけるコンパイラが、 プログラムの配列のエイリアス関係を解析するデータエイリアス解析手段と、 前記配列のマッピングを解析するデータマッピング解析手段と、 配列データの宣言を変形する配列データ宣言変形手段と、 前記プログラム中の配列データ参照部分を変形する配列データ参照変形手段と、 を有することを特徴とするソース変換方式。
  • 【請求項2】前記配列データ宣言変形手段が、マッピングが指定される配列データと記憶域を共有する配列の形状を該マッピングが指定される配列の形状に再変形することを特徴とする請求項1記載のソース変換方式。
  • 【請求項3】入力したソースプログラムを、分散メモリ型マルチプロセッサシステムでの実行に適した形態に変換するプログラムの変換方法であって、 (a)前記ソースプログラム中の配列について記憶領域を共有するデータ同士のメモリ上での相対的な位置関係を表す記憶領域共有データ情報を生成する工程と、 (b)前記ソースプログラムの配列データを解析し、前記記憶領域共有データ情報を参照しながら、配列データのマッピング情報を生成する工程と、 (c)前記記憶領域共有データ情報と、前記マッピング情報を参照しながら、マッピングが指定される配列データと記憶域を共有する配列の形状をマッピングが指定される配列の形状に適合させて変形する工程と、 (d)前記形状が変形された配列データの参照部分を該形状の変形に対応させて変更する工程と、を含み、 各プロセッサが所有する配列のインデックス空間を、下限インデックスと上限インデックスにより表現することを可能としたことを特徴とするソース変換方法。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【発明の属する技術分野】本発明は、ソースプログラムの変換方式に関し、特に分散メモリ型のマルチプロセッサシステムのコンパイラにおける、エイリアス(別名で参照)されたデータに対するソース変換方式に関する。

    【0002】

    【従来の技術】分散メモリ型マルチプロセッサシステムにおいて、配列データが、1以上の任意の次元方向の各次元で、連続したインデックス(添字)の任意の要素数の塊毎に分割されて、対象となるプロセッサに例えばラウンドロビン方式で割り付けられる場合、あるプロセッサへ割り付けられる部分配列データのインデックス空間は、直方体が有限個集まったものとなるので、各プロセッサの配列データの、所有範囲やデータ転送の範囲は、
    各次元の所有下限インデックスと、所有上限インデックス(とそのストライド(幅))によって表現することができる。

    【0003】例えば、4×4の2次元配列A(0:3,
    0:3)を、2×2のマトリックス状のプロセッサP
    (0:1,0:1)上に、ブロック状に均等分配した場合、プロセッサP(i,j)(但し、i,j=0,1)
    が所有する配列Zの部分インデックス空間は、A(2
    i:2(i+1)−1,2j:2(j+1)−1)のように、各次元の所有下限インデックスと所有上限インデックスにより表現できる。

    【0004】

    【発明が解決しようとする課題】分散メモリ型マルチプロセッサシステムにおいて、配列データが、1以上の任意の次元方向の各次元で、連続したインデックスの任意の要素数の塊毎に分割されて、対象となるプロセッサに例えばラウンドロビン方式で割り付けられる場合、このように分割された配列と記憶領域を共有する、他の配列データの、プロセッサへ割り付けられる部分配列データのインデックス空間は、一般に不規則な形状となるため、各プロセッサが所有したり、転送したりするインデックスの範囲を表現することが困難であり、このため、
    このようなマッピングを選択することが困難であった。

    【0005】例えば、上記した配列Zと記憶領域を共有する2×3×2の3次元配列B(0:1,0:2,0:
    1)の先頭アドレスが、配列要素A(1,0)に対応しているものとする。

    【0006】配列データのメモリへのマッピングが、カラム順(column−wiseorder)であるものと仮定すると、例えば、プロセッサP(1,0)が所有する3次元配列Bのインデックス空間は、図3に示すように、不規則な形状になってしまうので、所有する全ての要素のインデックスB(1,0,0),B(0,
    1,0),B(1,2,0),B(0,0,1)を個別に保持するしかない。

    【0007】このため、このような配列データをプロセッサへマッピングすることは困難であった。

    【0008】従って、本発明は、上記事情に鑑みて為されたものであって、その目的は、分散メモリ型マルチプロセッサシステムにおいて、エイリアスされたデータの分散状態を効率良く管理できるソース変換方式を提供することにある。

    【0009】

    【課題を解決するための手段】前記目的を達成するため、本発明に係るソース変換方式は、分散メモリ型マルチプロセッサシステムにおいて、配列のエイリアス関係を解析するデータエイリアス解析手段と、配列のマッピングを解析するデータマッピング解析手段と、配列データの宣言を変形する配列データ宣言変形手段と、プログラム中の配列データ参照部分を変形する配列データ参照変形手段と、を有するコンパイラから構成されている。

    【0010】本発明において、コンパイラは、入プログラムから決定されるマッピングされるデータと記憶領域を共有する配列データの形状を変形することにより、
    配列データの分散状態を容易に管理できるようにしたものである。

    【0011】

    【発明の実施の形態】本発明の実施の形態について図面を参照して詳細に説明する。

    【0012】図1は、本発明の一実施形態におけるコンパイラの機能ブロックを示した図である。 図1を参照すると、ソースプログラム1を入力とするコンパイラ2
    は、このソースプログラム1中のデータのエイリアス関係を解析するデータエイリアス解析手段21と、データのマッピングを解析するデータマッピング解析手段22
    と、配列データの宣言を変形する配列データ宣言変形手段23と、プログラム中の配列データ参照部分を変形する配列データ参照変形手段24と、から構成されている。

    【0013】本発明の実施の動作の形態について、図2
    を参照して詳細に説明する。 図2は、コンパイラ2の処理フローを説明するための流れ図である。

    【0014】まず、データエイリアス解析手段21が、
    記憶域を共有するデータ同士の、メモリ上での相対的な位置関係を表す、記憶領域共有データ情報35を生成する(ステップ31)。

    【0015】次に、コンパイラ2のデータマッピング解析手段22が、ソースプログラムのデータを解析し、記憶領域共有データ情報35を参照しながら、データマッピング情報36を生成する(ステップ32)。 その際、
    データのマッピングは、ソースプログラム中でのデータの参照を静的に解析して決定してもよいし、あるいはプログラムの実行プロファイルを採取して、負荷の大きい部分のデータの参照のされ方から決定してもよいし、さらに利用者により挿入される所定の指示行による指定にしたがって決定してもよい。

    【0016】ここで、マッピングされる配列データは、
    この配列データと記憶域を共有する配列データの記憶域を完全に包含しているものとする。 また、以下では、配列データは、メモリ上にカラム順(column-wise orde
    r)でマッピングされる場合を想定しているが、ロウ順(row-wise order)の場合にも容易に適用できる。

    【0017】次に、コンパイラ2の配列データ宣言変形手段23が、記憶領域共有データ情報35と、データのマッピング情報36を参照しながら、マッピングされる配列データと記憶域を共有する全ての配列データの形状を以下のように変形する(ステップ33)。

    【0018】簡単のため、配列の宣言の下限は、全て「0」とする(なお、下限が「0」以外の場合にも容易に拡張することができる)。 また、割り算は、小数点以下を切り捨てるものとする。

    【0019】マッピングが記述されているE次元配列X
    のi次元目のサイズをM iとし、これと記憶領域を共有するF次元配列Yのi次元目のサイズをL iとする。 また、F次元配列Yの先頭アドレスは、E次元配列XのX
    (P 1 ,P 2 ,…,P E )に対応しているものとする。

    【0020】この時、F次元配列Yの宣言を、以下のようなE次元配列Y′に書き直す。

    【0021】・第i次元目(1≦i<E)のサイズがM
    i 、第E次元目のサイズが

    【0022】

    【数1】

    【0023】・Y′の先頭アドレスは、E次元配列XのX(0,0,…,P E )に対応する。

    【0024】ここで上記Tiは、

    【0025】

    【数2】

    【0026】で与えられ、これらの値は全て静的に計算することができる。

    【0027】次に、配列データ参照変形手段24が、プログラム中の全てのYの参照Y(J 1 ,J 2 ,…,J F
    を、

    【0028】

    【数3】

    【0029】として、第i次元目のインデックスV i

    【0030】

    【数4】

    【0031】であるようなY′の参照に置き換える(ステップ34)。 但し%演算は剰余演算を示している。

    【0032】このような処理を、マッピングされる配列データと記憶領域を共有する全ての配列に対して行うことにより、このような配列データの、プロセッサが所有する範囲を、下限インデックスと上限インデックスにより表現することが可能となり、分散が記述された多次元配列データと全く同様の分散状態の管理が可能になる。

    【0033】

    【実施例】上記した本発明の実施の形態をより詳細に説明すべく、本発明の実施例について図面を参照して詳細に説明する。

    【0034】図4は、本発明の一実施例に係るソース変換方式の構成を示したものであり、HPF(High
    Performance Fortran)ソースプログラムを入力し、マッピングされる配列データと記憶領域を共有する配列データの形状を変形したHPFソースプログラムを出力する。 図4を参照すると、ソースプログラム1を入力とするコンパイラ2は、このソースプログラム41中のデータのエイリアス関係を解析するデータエイリアス解析手段21と、データのマッピングを解析するデータマッピング解析手段22と、配列データの宣言を変形する配列データ宣言変形手段23と、プログラム中の配列データ参照部分を変形して変形後のHPF
    ソースプログラムを出力する配列データ参照変形手段2
    4とから構成されている。

    【0035】図5に、HPFソースプログラムの一例を示す。 図5のプログラムの、マッピングが指定されている4×4の2次元配列Aと記憶領域を共有する2×3×
    2の3次元配列Bを考えると(EQUIVALENCE
    宣言による、配列要素A(1,0)と配列B(0,0,
    0)の記憶域が一致、なおEQUIVALENCE文についてはFORTRAN言語参照)、例えば、プロセッサP(1,0)が所有する範囲は、図3に示すような不規則な形状となる。 なお、図5のHPFソースプログラムにおいて、「!HPF$」はコンパイラへの指示を示し、例えば配列Aのプロセッサへのマッピング及びマトリックス状のプロセッサ等を規定している。

    【0036】次に本実施例の動作について詳細に説明する。

    【0037】本実施例のコンパイラ2は、図5に示したソースプログラムを入力すると、データのエイリアス解析手段21が、配列Aと、配列Bが、記憶領域を共有していること、及び、配列Aと、配列Bとのメモリ上での相対的な位置関係の情報を含む記憶領域共有データ情報35を生成する(図2のステップ31参照)。

    【0038】次に、データのマッピング解析手段22
    が、配列Aが、プロセッサP(2,2)上に、1、2次元両方に、分割幅2で、ブロック分割されている情報を含むマッピング情報36を生成する(図2のステップ3
    2)。

    【0039】次に、配列データ宣言変形手段23が、記憶領域共有データ情報35と、マッピング情報36を参照しながら、マッピングされる配列Aと記憶領域を共有する配列Bを、4×4の2次元配列BB(0:3,0:
    3)に変形するとともに、BBの先頭アドレスと、A
    (0,0)とが対応するように、宣言を変形する(図2
    のステップ33)。 すなわち、図6を参照して、変換されたHPFソースプログラムは、整数型の配列の宣言が2×3×2の3次元配列B(0:1,0:2,0:1)
    から3×3の2次元配列BB(0:3,0:3)に変換され、EQUIVALENCE文においては、配列要素A(0,0)とBB(0,0)の記憶領域が一致することを規定している。

    【0040】次に、配列データ参照変形手段24が、図5のソースプログラム中の配列Bの参照B(I,J,
    K)を(B(I,J,K)=I+J+K)、 UU=1+I+2 * J+6 * K として、B(UU%4,UU/4)に変形する(図2のステップ34)。 ここで2項演算子「%」は剰余演算、
    「/」は商演算(小数部切り捨て)を示している。

    【0041】これにより、図7に示すように、配列BB
    の各プロセッサP(i,j)の所有範囲のインデックス空間は、直方体になり、所有下限インデックスと、所有上限インデックスにより表現できるようになる。

    【0042】なお、上記した本発明に係るソース変換方式は、コンパイラに実装してそのままオブジェクトコードを生成してもよいし、ソース変換方式が元のソースプログラムを解析して変更した結果をソースプログラムとして出力し、これを通常のコンパイラにかけるような利用形態としてもよい。

    【0043】

    【発明の効果】以上説明したように、本発明によれば、
    プログラムの実行経過時間の短縮を可能とするという効果を有する。

    【0044】これは、マッピングされるデータと記憶領域を共有するデータのプロセッサが所有するインデックスの範囲や、転送するインデックスの範囲を算出するのにかかる実行時のオーバヘッドが軽減し、特に分散型マルチプロセッサの並列化の際のオーバーヘッドを大幅に低減したことによる。

    【図面の簡単な説明】

    【図1】本発明に係るソースプログラム変換方式の実施の形態の構成を示す図である。

    【図2】本発明に係るソースプログラム変換方式の実施の形態の処理フローを説明するための流れ図である。

    【図3】図5に示したソースプログラム中のP(1,
    0)が所有するBのインデックス空間を示す図である。

    【図4】本発明に係るソースプログラム変換方式の一実施例を示す図である。

    【図5】本発明の一実施例の適用対象となるソースプログラムの一例を示す図である。

    【図6】本発明の一実施例により変換出力されたソースプログラムの一例を示す図である。

    【図7】本発明の一実施例により変換出力されたソースプログラム中のBBのインデックス空間のプロセッサへの分散状態を示す図である。

    【符号の説明】

    1 ソースプログラム 2 コンパイラ 21 データエイリアス解析手段 22 データマッピング解析手段 23 配列データ宣言変形手段 24 配列データ参照変形手段 31 データのエイリアス解析 32 データのマッピング解析 33 配列データの宣言変形 34 配列データの参照変形 35 記憶領域共有データ情報 36 マッピング情報

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈