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