SymArrayDmap

Usage

use SymArrayDmap;

or

import SymArrayDmap;
enum Dmap { defaultRectangular, blockDist }

Available domain maps.

enum constant defaultRectangular
enum constant blockDist
config param MyDmap : Dmap = defaultDmap
proc makeDistDom(shape: int ...?N)

Makes a domain distributed according to MyDmap.

Arguments:

shape : int – size of domain in each dimension

proc makeDistDom(dom: domain(?))
proc makeDistArray(shape: int ...?N, type etype) throws  where N == 1

Makes an array of specified type over a distributed domain

Arguments:
  • shape : int – size of the domain in each dimension

  • etype : type – desired type of array

Returns:

[] ?etype

proc makeDistArray(shape: int ...?N, type etype) throws  where N > 1
proc makeDistArray(in a: [?D] ?etype) throws  where MyDmap != Dmap.defaultRectangular && a.isDefaultRectangular()
proc makeDistArray(in a: [?D] ?etype) throws  where D.rank == 1 && (MyDmap == Dmap.defaultRectangular || !a.isDefaultRectangular())
proc makeDistArray(in a: [?D] ?etype) throws  where D.rank > 1 && (MyDmap == Dmap.defaultRectangular || !a.isDefaultRectangular())
proc makeDistArray(D: domain(?), type etype) throws  where D.rank == 1
proc makeDistArray(D: domain(?), type etype) throws  where D.rank > 1
proc makeDistArray(D: domain(?), initExpr: ?t) throws  where D.rank == 1
proc makeDistArray(D: domain(?), initExpr: ?t) throws  where D.rank > 1
proc makeDistDomType(size: int) type

Returns the type of the distributed domain

Arguments:

size : int – size of domain

Returns:

type