Высокопроизводительные вычисления на кластерах. Беликов Д.А - 156 стр.

UptoLike

156
В табл. 8.2 приведены некоторые операции для выполнения опе-
раций с участием матриц.
Вывести на экран матрицу можно, воспользовавшись процеду-
рой
SUBROUTINE MatView(A,
$ PETSC_VIEWER_STDOUT_WORLD, ierr)
Mat A
INTEGER ierr
По окончании использования матрицы в программе её необхо-
димо удалить процедурой
Call MatDestroy(A, ierr)
Mat A
8.4.2 Пример
Умножение матриц размером 1000х1000. Значения матриц
генерируются с помощью датчика случайных чисел.
program main
USE IFPORT
implicit none
#include "include/finclude/petsc.h"
#include "include/finclude/petscvec.h"
#include "include/finclude/petscmat.h"
#include "include/finclude/petscksp.h"
#include "include/finclude/petscpc.h"
Mat A, B, C
INTEGER n
PARAMETER (n=1000)
INTEGER i, j, istart, iend, ierr, rank, m(0:n-1)
double precision t, time1, time2
c
Call PetscInitialize(PETSC_NULL_CHARACTER, ierr)
Call MPI_COMM_RANK(PETSC_COMM_WORLD, Rank,
$ Ierr)
c Создаём матрицу
Call MatCreate(PETSC_COMM_WORLD, A, ierr)
Call MatSetSizes(A, PETSC_DECIDE, PETSC_DECIDE,
$ n, n, ierr)