Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

parallel / 8-2010

.pdf
Скачиваний:
11
Добавлен:
31.05.2015
Размер:
2.27 Mб
Скачать

!

(ex03h.f90)

subroutine example(vec1, b, map, n, comm, p) integer n, map(n), comm, p

real vec1(n), b(n)

integer sizeofreal, win, ierr

call MPI_Type_extent(MPI_REAL, sizeofreal, ierr) call MPI_Win_create(b, n * sizeofreal, sizeofreal, &

MPI_INFO_NULL, comm, win, ierr) call MPI_Win_fence(0, win, ierr) do i = 1, n

j = map(i) / p

k = mod(map(i), p)

call MPI_Get(vec1(i), 1, MPI_REAL, j, k, 1, MPI_REAL, win, & ierr)

end do

call MPI_Win_fence(0, win, ierr) call MPI_Win_free(win, ierr) end

2008

"

2008

"

MPI-2 %

.

1 %

,

,

– «all-to-all»

. & %.

# MPI_Comm_create

.

2008

"

2008

"

# MPI_Comm_split

.

MPI-1 .

MPI-2

.

2008

"

. Allgather

"

#

$ , .

!

MPI-2 MPI_Alltoallw. !

$$ count, displacement, datatype. .

2008

#

2008

#

3 % $

$ $ MPI.

!

.

# ,

, MPI '

.

# « »

. ! MPI

% .

2008

#

! :

MPI_Grequest_start

MPI_Grequest_complete

.

2008

Соседние файлы в папке parallel