Параллельные вычисления. Баканов В.М. - 120 стр.

UptoLike

Составители: 

- 120 -
Приложение 1.
Примеры последовательной и параллельных реализаций алгоритма
Якоби решения сеточных уравнений (по материалам работы [6])
a) последовательная программа на языке Fortran’77
PROGRAM JAC_F77
PARAMETER (L=8, ITMAX=20)
REAL A(L,L), B(L,L)
PRINT *, '********** TEST_JACOBI **********'
DO IT = 1, ITMAX
DO J = 2, L-1
DO I = 2, L-1
A(I, J) = B(I, J)
ENDDO
ENDDO
DO J = 2, L-1
DO I = 2, L-1
B(I, J) = 0, 25
×
(A(I-1, J) + A(I, J-1) + A(I+1, J) + A(I, J+1))
ENDDO
ENDDO
ENDDO
END
б) параллельная программа на языке HPF,
цветом (насыщенностью) выделены HPF-предписания
PROGRAM JAC_HPF
PARAMETER (L=8, ITMAX=20)
REAL A(L,L), B(L,L)
!HPF$ PROCESSORS P(3,3)
!HPF$ DISTRIBUTE ( BLOCK, BLOCK) :: A
!HPF$ ALIGN B(I,J) WITH A(I,J)
C arrays A and B with block distribution
PRINT *, '********** TEST_JACOBI **********'
DO IT = 1, ITMAX
!HPF$ INDEPENDENT
DO J = 2, L-1
!HPF$ INDEPENDENT
DO I = 2, L-1
A(I, J) = B(I, J)
ENDDO
ENDDO
!HPF$ INDEPENDENT
DO J = 2, L-1
!HPF$ INDEPENDENT
DO I = 2, L-1
B(I, J) = (A(I-1, J) + A(I, J-1) + A(I+1, J) + A(I, J+1)) / 4
ENDDO
ENDDO
ENDDO
END
в) параллельная программа на языке Fortran’DVM,
цветом (насыщенностью) выделены DVM-директивы
PROGRAM JAC_DVM
PARAMETER (L=8, ITMAX=20)
REAL A(L,L), B(L,L)
                                                        - 120 -

                                                                             Приложение 1.
                              Примеры последовательной и параллельных реализаций алгоритма
                                Якоби решения сеточных уравнений (по материалам работы [6])

a) последовательная программа на языке Fortran’77
PROGRAM JAC_F77
PARAMETER (L=8, ITMAX=20)
REAL A(L,L), B(L,L)
PRINT *, '********** TEST_JACOBI **********'
DO IT = 1, ITMAX
 DO J = 2, L-1
 DO I = 2, L-1
  A(I, J) = B(I, J)
 ENDDO
 ENDDO
 DO J = 2, L-1
  DO I = 2, L-1
   B(I, J) = 0, 25 × (A(I-1, J) + A(I, J-1) + A(I+1, J) + A(I, J+1))
  ENDDO
 ENDDO
ENDDO
END

б) параллельная программа на языке HPF,
   цветом (насыщенностью) выделены HPF-предписания
  PROGRAM JAC_HPF
  PARAMETER (L=8, ITMAX=20)
  REAL A(L,L), B(L,L)
!HPF$ PROCESSORS P(3,3)
!HPF$ DISTRIBUTE ( BLOCK, BLOCK) :: A
!HPF$ ALIGN B(I,J) WITH A(I,J)
C arrays A and B with block distribution
  PRINT *, '********** TEST_JACOBI **********'
  DO IT = 1, ITMAX
!HPF$ INDEPENDENT
  DO J = 2, L-1
!HPF$ INDEPENDENT
  DO I = 2, L-1
   A(I, J) = B(I, J)
  ENDDO
 ENDDO
!HPF$ INDEPENDENT
  DO J = 2, L-1
!HPF$ INDEPENDENT
  DO I = 2, L-1
   B(I, J) = (A(I-1, J) + A(I, J-1) + A(I+1, J) + A(I, J+1)) / 4
  ENDDO
  ENDDO
 ENDDO
 END

в) параллельная программа на языке Fortran’DVM,
   цветом (насыщенностью) выделены DVM-директивы
  PROGRAM JAC_DVM
  PARAMETER (L=8, ITMAX=20)
  REAL A(L,L), B(L,L)