Chapelメモ - 3

配列を気軽に作らない

プログラム中で気軽に

var xyz: [1..3] real;

とかしてたら死ぬほど時間がかかったので、

var xyz: 3*real;

に変えたところC言語の10倍以内のスローダウンで済んだ。しかしそれでも遅すぎるのでC言語の二倍以内にはなって欲しいところ。

dmapがやっぱりわからない

コンパイル時にdmapを指定するのはサンプル通りだ。

  const Space = [1..8, 1..8];
  const D: domain(2) dmapped Block(Space) = Space;
  var A: [D] int;

今問題にしたいのは、コンパイル時にはドメインが分かっていなくて、実行時に配列を割り当てる時の話である。

  const Space = [1..8, 1..8];
  var MyBlockDist: dmap(Block(rank=2));
  var E: domain(2);
  var B: [E] int;
  E = Space dmapped Block(Space);

こんな感じでサクッとdmapされたドメイン、及びそれの上の配列が出来て欲しいんだよねー。