ВУЗ:
Рубрика:
146
PETSCFINALIZE в свою очередь вызывает MPI_FINALIZE, если
MPI был запущен вызовом PETSCINITIALIZE.
Рассмотрим простейший пример параллельной MPI-программы
«Hello world!» c применением PETSc:
program helloworld
implicit none
integer ierr, rank
#include "include/finclude/petsc.h"
call PETSCINITIALIZE(PETSC_NULL_CHARACTER, ierr )
call MPI_COMM_RANK(PETSC_COMM_WORLD, rank,ierr )
print *, "Hello World!", "process=", rank
call PETSCFINALIZE(ierr)
end
Здесь PETSC_NULL_CHARACTER – используется для исполь-
зования файла настроек по умолчанию; ierr – переменная, в которую
возвращается код ошибки, если ierr=0, то оператор проработал ус-
пешно; rank – переменная, содержащая номер активного процесса.
8.3 Векторы
8.3.1 Работа с векторами
PETSc содержит два базисных векторных типа: последователь-
ный и параллельный (для MPI). Для описания вектора в PETSc ис-
пользуется тип Vec, например:
VEC x
Базовым типом является double precision. Чтобы создать после-
довательный вектор x с m компонентами, нужно использовать про-
цедуру
SUBROUTINE VecCreateSEQ(PETSC_COMM_SELF,m,x,ierr)
INTEGER m, ierr
VEC x
Чтобы создать вектор x для параллельных вычислений, нужно
задать число компонентов, которые будут храниться на каждом
процессорном элементе, либо передать эту проблему PETSc. Для
этого используется процедура
Страницы
- « первая
- ‹ предыдущая
- …
- 144
- 145
- 146
- 147
- 148
- …
- следующая ›
- последняя »
