[comp.parallel] Mapping DO Loops onto Hypercubes

ouyang@TINMAN.CS.NYU.EDU (Pei OuYang) (05/19/91)

I am interested in mapping Fortran nested DO loops onto hypercube computers,
where a nested DO loop can be modeled by an iteration space and a set of
dependence vectors.

I have seen articles on mapping meshes and trees onto hypercubes, mapping
DO loops onto systolic arrays, but cannot find articles addressing the
problem above.  Is there any difficulty in solving this problem or is it
impractical? 
 
Could someone tell me related papers and/or comment on this problem? 
Thank you in advance for your help.

=========================================================
Pei Ouyang               Department of Computer Science
ouyang@cs.nyu.edu        New York University
(212)998-3083            251 Mercer Street
                         New York, N.Y. 10012
=========================================================

news@UCSD.EDU (Kevin Sanders) (05/22/91)

In article <1991May20.124350.27749@hubcap.clemson.edu> ouyang@TINMAN.CS.NYU.EDU (Pei OuYang) writes:
>
>I am interested in mapping Fortran nested DO loops onto hypercube computers,
>where a nested DO loop can be modeled by an iteration space and a set of
>dependence vectors.
....

A reasonable book on this subject is "Dependence Analysis for Supercomputing",
by Utpal Banerjee, available from Kluwer Academic publishers (1988).

The book demonstrates a method for determining dependence, limited to
DO loops and assignment statements.  It utilizes an integer programming
technique to determine dependencies; this technique is restricted to
DO loops whose indices are used in _linear_ functions only.

   | || |      Kevin Sanders
   |_||_|      NCR/Teradata JDO
  /\V/\V/\     (619) 597-3602
/_//_/\_\\_\   kevin.sanders@sandiego.ncr.com

bjornl@sics.se (Bj|rn Lisper) (05/23/91)

In article <1991May20.124350.27749@hubcap.clemson.edu>
ouyang@TINMAN.CS.NYU.EDU (Pei OuYang) writes:
>I am interested in mapping Fortran nested DO loops onto hypercube computers,
>where a nested DO loop can be modeled by an iteration space and a set of
>dependence vectors.

>I have seen articles on mapping meshes and trees onto hypercubes, mapping
>DO loops onto systolic arrays, but cannot find articles addressing the
>problem above.  Is there any difficulty in solving this problem or is it
>impractical? 

The dimension of the iteration space is the number of nested loops: thus,
iterations are most conveniently mapped to a space-time of the same
dimension, which implies that the processor grid has this dimension minus
one. I think you're best off by first mapping to the grid of natural
dimension and then embedding that grid into the hypercube, for instance by
binary-reflected Gray codes.

Do you aim at fine-grain SIMD hypercubes (i.e. CM) or mesage-based MIMD
hypercubes (Intel, NCUBE)? A fine-grain cube should be fine executing
embedded systolic algorithms right off. A message-based MIMD cube would
probably suffer from the fine granularity of systolic algorithms: thus, some
kind of clustering becomes necessary.

Bjorn Lisper