1D Shift

Loop Bounds Reduction
(Before Localization and Linearization)


Original Source

        double precision a(100), b(100)

CHPF$   processors p(4)
CHPF$   template t(100)
CHPF$   align a(i) with t(i)
CHPF$   align b(i) with t(i)
CHPF$   distribute t(block) onto p

	...

        do i = 2, 100 - 1
            a(i) = 0.25 * b(i-1)
        enddo

SPMD Generated Code with Reduced Bounds

(Note: non-local iteration handled separately)

        do i = max(25 * myid1 + 2, 2), min(25 * myid1 + 25, 99)
          a(i) = 0.25 * b(i - 1)
        enddo