Next: Message Aggregation Up: Optimizations Previous: Vectorized Communication

Overlap Shift Communications

The overlap shift communications optimization recognizes computations with arrays that contain an overlap pattern as shown in table 6-1. When the array involved in an overlap shift computation is allocated the overlap area [55] is also allocated and remains available until a computation requiring an overlap shift area. Immediately before the computation, the overlap shift area is filled with the current value(s) of the overlap data (this requires communications). By allocating an overlap shift area, the compiler localizes a portion of a computation prior to the computation that would otherwise require communication during the computations. Figure graphically shows the overlap shift optimization for code similar to the following.


        PROGRAM TEST_OVERLAP
        INTEGER I, A(8), B(8)
  !F90D$ DECOMPOSITION T(8)
  !F90D$ ALIGN A(J) WITH T(J)
  !F90D$ ALIGN B(J) WITH T(J)
  !F90D$ DISTRIBUTE T(BLOCK)
        FORALL(I=1:7) A(I)=B(I+1)

In the first stage of the overlap shift communication, the compiler determines that a computation involving the array B requires an overlap shift area in the positive direction (Fortran 90D/HPF also permits negative overlaps shift areas). A portion of B is then allocated with the extra overlap location(s).


zbozkus@
Thu Jul 6 21:09:19 EDT 1995