2017-08-11 2 views
2

クレイ、答えを明確にするためにもう一度アップして申し訳ありません!この後の後にドメインマップについてもう少し質問があります。ドメインマップについて疑問を晴らすと非常に感謝し、非常に感謝します。
私は、質問を順次注文しました。続き:「チャペル言語のマップされたドメインはどのように実際にマッピングされますか?」

1.)ドメインマップとは何ですか? - ドメインマップは、ドメインおよびアレイのグローバルアレイインデックスからクラスタ内のロケールセットへのマッピングを定義します。

私は研究論文やその他のpptから理解していることを要約しましたが、それは潜在的に間違っている可能性があります。お気軽に答えを修正してください。

ここ
const Domain = {1..8,1..8} dmapped Block({1..8,1..8}) 

{1..8,1..8}ことがBlockドメインマップ・コンストラクタからboundingBox = {1..8,1..8}

proc block(boundingBox:    domain, 
      targetlocales:[] locale = Locales, 
      datapartasks   = ..., 
      dataparmingranularity = ... 
      ) 
Block -distributionドメインマップを使用して、ロケールに分配され、索引スペース(ドメイン)であります

Blockドメインマップのみが知りたいことはboundingBoXtargetlocalesおよびdatapar* '-sであり、domainの必要はありません。ここでは{1..8,1..8}です。 の中にドメインマップを作成するための多くのインターフェースのために、正しいものを得るのが難しいと思っています。

だから私の質問です:Blockドメインマップは、これらの数値は単なる一例でありlocale 2(上locale 1{1..2,1..2}上など{1..2,3..4}としてローカル索引セットを保持し、targetlocales上のインスタンスを作成しましたので、マッピングプロセスを示すように)?
前の回答では、博士ブラッド・チェンバレンは「バウンディングボックスブロックドメインマップクラス店の各インスタンス。ターゲットロケールのインスタンスを作成し、ターゲットロケールのセット)(ブロック句をdmapped」

がいることを言及しました

私はそれから意味を見つけることができませんでした:(
全体で 、ドメインマップ、ドメインおよび配列が協同作業しているかを説明してください。私はいくつかの段階を研究、すべてがいくつかの種類の情報を逃しますドメインマップを完全に理解する必要がありました。

In this presentationスライド番号:34では、ローカルインスタンスのドメインマップとドメインにはインデックススペースのみが格納されます。

  1. 前回の回答では、Dr.ブラッド・チェンバレンも、

は「与えられたドメインマップの実装は非常にスペース効率的かつ最小限であってもよいし、その著者が最善と考えて、それは、重複すべてのロケールのすべてを割り当てることができます」と述べている

このコンテキストで

「すべてのロケールですべてを冗長に割り当てる」とは、実際にはどういう意味ですか?各地域にアレイ全体を格納するかどうか?

  1. PGASでは、ドメインマップ、ドメイン、アレイのグローバルインスタンスがすべてのロケールで表示されますか。また、それらのクエリはグローバルインスタンスを介して行われることを願っています。

ドキュメントに記載されているように、ドメインマップに必要なインターフェイスを決定してください。
これについていくつか説明していただければ幸いです。
ありがとうございます。

+1

私は、あなたが指摘したスライドが、ドメイン値を表すために中かっこではなく角かっこを使用するのに十分古いことを認識しています...数年前に起こった統語的変化:http:// chapel。 cray.com/docs/latest/language/evolution.html#domain-literals。このため、私はあなたの質問を編集して現在の構文を更新しています。 – Brad

+0

私はそれを逃した。 – praveen

答えて

2

1.)ドメインマップとは何ですか?

ドメインマップがその目的である領域、及びそれらの上に宣言された配列ドメインが-れる実装方法を説明するためのチャペルのクラスがあります。事実上、彼らは指定:

  • は、メモリに格納する方法となどの繰り返し、メンバーシップのテスト、などのコンパイラが必要な場合がありメソッドを(実装する方法を含め、そのドメインマップ、の観点で宣言されたドメインを実装する方法)
  • メモリに格納する方法等の反復、ランダムアクセス、などコンパイラが必要とするかもしれない方法を(実装方法を含むそのドメイン、の点で宣言アレイ)

を実装する方法

  • ブロックドメインマップは、boundingBox、targeについてのみ知りたいtlocales、およびdataparのものであり、ここではドメイン{1、8、1、8}は必要ありません。

  • これは正しく、これは多くの場合、Blockディストリビューションを習得する際の混乱の点になります。ポイントを作るために少し人工的な例を使ってみましょう:

    const D = {1..4, 1..4} dmapped Block({1..8, 1..8}); 
    

    この宣言は、2D指標の面ができるだけ均等にロケール間のバウンディングボックス{1..8, 1..8}を遮断することによって、ロケールに配布されるべきであると述べています。 4つのロケールで実行している場合、ロケール0は境界ボックスの{1..4, 1..4}を所有します。つまり、infは「無限大」を意味し、実際には-infは小さなもので表現されます(infは、{-inf..4, -inf..4}を意味します)。整数)。同様に、ロケール3は、バウンディングボックスの{5..8, 5..8}を所有し、または{5..inf, 5..inf}を2Dプレーンから所有します。

    あなたが注意として、上記{1..8, 1..8}Blockドメインマップへの唯一の引数であるため、Dの値のみ、その実装とは関係ありません。 Dの値は{1..4, 1..4}なので、2D平面のそのロケール部分に完全に収まるので、ロケール0によって完全に所有されています。代わりに{2..5, 2..5}の場合、ロケール0は{2..4, 2..4}、ロケール1は{2..4, 5..5}、ロケール2は{5..5, 2..4}、ロケール3は{5..5, 5..5}となります。

    ブロック分布は、このバウンディングボックスドメインによってパラメータ化されているので、これは多くの場合、彼らは実際には、多くの場合、同一であり、特に以来、上記のような宣言で使用される2つのドメインがある理由について混乱につながります。これは本質的にドメインマップとは無関係であり、ブロックドメインマップのコンストラクタがドメインをその引数の1つとして期待しているという事実とは関係がありません。対照的に、CyclicBlockCyclicのドメインマップはドメイン引数を取らず、結果として理解することがしばしば簡単です。

    はブロックドメインマップは...ローカル索引セットを保持しているtargetlocalesに

    はい、実際には、 Blockドメインマップが格納 LocBlockクラスのインスタンスを作成します

    各ロケールのインスタンスを作成しませんでしたロケール0の場合は{-inf..4, inf..4}、ロケール1の場合は{-inf..4, 5..inf}などです。

    はい、各ロケールには、キーすべての引数を格納Blockドメインマップクラスのコピーを保存

    ブロックドメインマップクラスの各インスタンスは、バウンディングボックスを格納し、ターゲットロケールのセットをドメインマップをパラメータ化して、それが定義する分布が各ロケールによって孤立して推論されるようにします。

    このプレゼンテーションでは、スライドの番号:34では、ローカルインスタンスのドメインマップとドメインにはインデックススペースのみが格納されます。

    ローカルのブロックドメインマップクラスの役割は、そのロケールが所有する2Dプレーンの部分(スライド内のロケール#4またはL4)を保存することです。同様に、ローカルブロックドメインクラスの役割は、そのロケールが所有するドメインのインデックスセットの一部を格納することです。これらは特別なものではありませんが、それぞれディストリビューションと分散ドメインを定義する上で重要です。

    2.前回の回答では、「ドメインマップの実装は非常にスペース効率が高く、最小限に抑えることができます。また、すべてのロケールにすべてのロケールを割り当てることができます。このコンテキストでは、「すべてのロケールですべてを重複して割り当てる」とは実際にはどういう意味ですか?各地域にアレイ全体を格納するかどうか?

    はい、「すべてのロケールをすべて冗長に割り当てる」とは、各ロケールが配列全体を格納することを意味しました。これはおそらくスケーラビリティはあまりありませんが、言語やドメインマップフレームワークでは、期待されるインターフェイスをサポートしている限り、配列の格納方法については何も言わないという点が重要です。彼らが選択した場合、ドメインマップの作成者はこれを行うことができます。

  • PGASは、ドメインマップ、ドメイン、アレイのグローバルインスタンスがすべてのロケールを横切って見えます?また、それらのクエリはグローバルインスタンスを介して行われることを願っています。
  • あなたはクラスのグローバルインスタンスはチャペルのPGAS(パーティション化されたグローバルアドレス空間)モデルによるすべてのロケール間で表示されていることが正しいです。つまり、ドメイン間の通信は高価であり、これらのオブジェクトはほとんどそのフィールドを変更しない傾向があるため、実際にはロケール間で複製する傾向があります。スライド34では、「(論理的に)」というタグを参照しています。各オブジェクトの概念的なコピーが1つありますが、実際にはそれらをロケール間で複製する傾向があります(ドメインマップの作成者は、彼らが望むように、これをしないかもしれない)。

    ドキュメントで言及しているように、ドメインマップに必要なインターフェイスを決定してください。

    ドメインマップインタフェース上の現在のドキュメントはhere利用可能です。 6つの記述子({グローバル、ローカル} x {ドメインマップ、ドメイン、配列})を実装するBlockドメインマップの現在のソースはhereです。

    +0

    あなたの答えは非常に@ブラッドありがとうございます。 – praveen

    +0

    分散ドメインがドメインマップのようなローカルドメインオブジェクトの集合であるかどうか。そして、整数以外の型のドメインがどのように分布しているかは、ドキュメントからは、+、/、 - 演算子が必要なindextypeのようです。 – praveen

    +0

    ドメインマップを使用して割り当てられた分割グローバルアドレス空間と多次元配列のCo-arrayの違いは何ですか?私は両方のマッピングが異なると思いますが、それ以外の違いはありますか? – praveen

    関連する問題