HPF 2D Jacobi Kernel Source


      program jacobi
        integer N, m, t
        PARAMETER (N=1024)
        double precision a(N, N), b(N, N)

CHPF$   processors p(4,8)
CHPF$   template t(N,N)
CHPF$   align a(i,j) with t(i,j)
CHPF$   align b(i,j) with t(i,j)
CHPF$   distribute t(block,block) onto p

C       -- Initializations --

C       -- Jacobi --
        do j = 2, 1024 - 1
          do i = 2, 1024 - 1 
            a(i, j) = 0.25 * (b(i - 1, j) + b(i + 1, j) + b(i, j - 1) + 
     *b(i, j + 1))
          enddo
        enddo
        do j = 2, 1024 - 1
          do i = 2, 1024 - 1
            b(i, j) = a(i, j)
          enddo
        enddo
      
      end