Параллельное программирование с использованием технологии MPI - ответы
Количество вопросов - 260
МРI_GROUP_COMPARE(GROUP1, GROUP2, RESULT, IERR) INTEGER GROUP1, GROUP2, RESULT, IERR
MPI_TOPO_TEST(COMM, TYPE, IERR) INTEGER COMM, TYPE, IERR
MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR)INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERRLOGICAL PERIODS(*), REORDER
program example1include 'mpif.h'integer ierrprint *, 'Before MPI_INIT'call MPI_INIT(ierr)print *, 'Parallel section'call MPI_FINALIZE(ierr)print *, 'After MPI_FINALIZE'end
program example2include 'mpif.h'integer ierr, size, rankcall MPI_INIT(ierr)call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)print *, 'process ', rank, ‘, size ', sizecall MPI_FINALIZE(ierr)end
MPI_ISEND(BUF, COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERR)<type> BUF(*)INTEGER COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERR
MPI_BCAST(BUF, COUNT, DATATYPE, ROOT, COMM, IERR)<type>BUF(*)INTEGER COUNT, DATATYPE, ROOT, COMM, IERR
FUNCTION FUNC(INVEC(*), INOUTVEC(*), LEN, TYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, TYPE
MPI_OP_FREE.program example15include 'mpif.h'integer ierr, rank, i, nparameter (n = 1 000)integer a(n), b(n)integer opexternal smod5call MPI_INIT(ierr)call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)do i = 1, na(i) = i + rank end doprint *, 'process ', rank, ' a(1) =', a(1)call MPI_OP_CREATE(smod5, .TRUE., op, ierr)call MPI_REDUCE(a, b, n, MPI_INTEGER, op, 0,& MPI_COMM_WORLD, ierr)call MPI_OP_FREE(op, ierr) if(rank .eq. 0) print *, ' b(1) =', b(1) call MPI_FINALIZE(ierr) endinteger function smod5(in, inout, l, type)integer l, typeinteger in(l), inout(l), ido i = 1, linout(i) = mod(in(i)+inout(i), 5) end do return end
MPI_GROUP_INCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
МРI_GROUP_FREE(GROUP, IERR) INTEGER GROUP, IERR
MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR)INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERRLOGICAL PERIODS(*), REORDER
MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR) INTEGER NNODES, NDIMS, DIMS(*), IERR
MPI_GRAPH_CREATE(COMM, NNODES, INDEX, EDGES, REORDER, COMM_GRAPH, IERR)INTEGER COMM, NNODES, INDEX(*), EDGES(*), COMM_GRAPH, IERR LOGICAL REORDER
MPI_TYPE_STRUCT(COUNT, BLOCKLENS, DISPLS, TYPES, NEWTYPE, IERR) INTEGER COUNT, BLOCKLENS(*), DISPLS(*), TYPES(*), NEWTYPE, IERR
MPI_PACK(INBUF, INCOUNT, DATATYPE, OUTBUF, OUTSIZE, POSITION, COMM, IERR) <type> INBUF(*), OUTBUF(*)INTEGER INCOUNT, DATATYPE, OUTSIZE, POSITION, COMM, IERRкакой параметр увеличивается на число байт, равное размеру записи
MPI_PACK_SIZE(INCOUNT, DATATYPE, COMM, SIZE, IERR) INTEGER INCOUNT, DATATYPE, COMM, SIZE, IERR
MPI_GROUP_INCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR) INTEGER NNODES, NDIMS, DIMS(*), IERR
MPI_TYPE_FREE(DATATYPE, IERR) INTEGER DATATYPE, IERR
MPI_CART_GET(COMM, MAXDIMS, DIMS, PERIODS, COORDS, IERR) INTEGER COMM, MAXDIMS, DIMS(*), COORDS(*), IERRLOGICAL PERIODS(*)
MPI_TOPO_TEST(COMM, TYPE, IERR) INTEGER COMM, TYPE, IERR
MPI_OP_FREE.program example15include 'mpif.h'integer ierr, rank, i, nparameter (n = 1 000)integer a(n), b(n)integer opexternal smod5call MPI_INIT(ierr)call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)do i = 1, na(i) = i + rank end doprint *, 'process ', rank, ' a(1) =', a(1)call MPI_OP_CREATE(smod5, .TRUE., op, ierr)call MPI_REDUCE(a, b, n, MPI_INTEGER, op, 0,& MPI_COMM_WORLD, ierr)call MPI_OP_FREE(op, ierr) if(rank .eq. 0) print *, ' b(1) =', b(1) call MPI_FINALIZE(ierr) endinteger function smod5(in, inout, l, type)integer l, typeinteger in(l), inout(l), ido i = 1, linout(i) = mod(in(i)+inout(i), 5) end do return end
MPI_GET_PROCESSOR_NAME(NAME, LEN, IERR) CHARACTER*(*) NAME INTEGER LEN, IERR
FUNCTION FUNC(INVEC(*), INOUTVEC(*), LEN, TYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, TYPE
МРI_GROUP_COMPARE(GROUP1, GROUP2, RESULT, IERR) INTEGER GROUP1, GROUP2, RESULT, IERR
MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR)INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERRLOGICAL PERIODS(*), REORDER
MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR)INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERRLOGICAL PERIODS(*), REORDER
MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR) INTEGER NNODES, NDIMS, DIMS(*), IERR
MPI_CART_RANK(COMM, COORDS, RANK, IERR) INTEGER COMM, COORDS(*), RANK, IERR
MPI_CART_SHIFT(COMM, DIRECTION, DISP, SOURCE, DEST, IERR) INTEGER COMM, DIRECTION, DISP, SOURCE, DEST, IERR
MPI_ADDRESS(LOCATION, ADDRESS, IERR) <type> LOCATION(*) INTEGER ADDRESS, IERR
MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERR)<type> BUF(*)INTEGER COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERR
MPI_GRAPH_NEIGHBORS_COUNT(COMM, RANK, NNEIGHBORS, IERR) INTEGER COMM, RANK, NNEIGHBORS, IERR
MPI_GRAPH_CREATE(COMM, NNODES, INDEX, EDGES, REORDER, COMM_GRAPH, IERR)INTEGER COMM, NNODES, INDEX(*), EDGES(*), COMM_GRAPH, IERR LOGICAL REORDER
MPI_OP_FREE.program example15include 'mpif.h'integer ierr, rank, i, nparameter (n = 1 000)integer a(n), b(n)integer opexternal smod5call MPI_INIT(ierr)call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)do i = 1, na(i) = i + rank end doprint *, 'process ', rank, ' a(1) =', a(1)call MPI_OP_CREATE(smod5, .TRUE., op, ierr)call MPI_REDUCE(a, b, n, MPI_INTEGER, op, 0,& MPI_COMM_WORLD, ierr)call MPI_OP_FREE(op, ierr) if(rank .eq. 0) print *, ' b(1) =', b(1) call MPI_FINALIZE(ierr) endinteger function smod5(in, inout, l, type)integer l, typeinteger in(l), inout(l), ido i = 1, linout(i) = mod(in(i)+inout(i), 5) end do return end
MPI_GROUP_EXCL(GROUP, N, RANKS, NEWGROUP, IERR) INTEGER GROUP, N, RANKS(*), NEWGROUP, IERR
FUNCTION FUNC(INVEC(*), INOUTVEC(*), LEN, TYPE) <type> INVEC(LEN), INOUTVEC(LEN) INTEGER LEN, TYPE
MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER, COMM_CART,IERR)INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERRLOGICAL PERIODS(*), REORDER
do i = 1, nblocklens (i) = n-i + 1displs(i) = n*(i-1)+i-1 end do call MPI_TYPE_INDEXED(n, blocklens, displs,MPI_DOUBLE_PRECISION, newtype, ierr)
MPI_UNPACK(INBUF, INSIZE, POSITION, OUTBUF, OUTCOUNT, DATATYPE, COMM, IERR)<type> INBUF(*), OUTBUF(*)INTEGER INSIZE, POSITION, OUTCOUNT, DATATYPE, COMM, IERR