next up previous contents
Next: Collapsing Dimensions Up: Passing Array Sections Previous: Array Arguments Example 1

 

Array Arguments Example 2

It is much simpler but less efficient to use prescriptive distributions.

Unless the HPF compiler is really smartgif, the following rewrite of Zubbie, using prescriptive distribution directives, will generate two remappings. What will probably happen is that the compiler will remap the dummy arguments so that they are distributed (BLOCK,BLOCK).

     SUBROUTINE Zubbie(x,y,z)
!HPF$ TEMPLATE, DIMENSION(4,6)            :: T
!HPF$ PROCESSORS, DIMENSION(2,2)          :: P
      REAL, INTENT(INOUT), DIMENSION(:,:) :: x, y
      REAL, INTENT(INOUT), DIMENSION(:,:) :: z
!HPF$ DISTRIBUTE (BLOCK,BLOCK) ONTO P     :: x, y, z
      ...

This will give the following distribution:

This means that all three arguments are remapped on entry and on exit which will be very inefficient.


next up previous contents
Next: Collapsing Dimensions Up: Passing Array Sections Previous: Array Arguments Example 1

Adam Marshall ©University of Liverpool, 1996
Fri Dec 6 15:03:35 GMT 1996
Not for commercial use.