MPI_GET(origin_addr, origin_count, origin_datatype, target_rank,
target_disp, target_count, target_datatype, win)
OUT | origin_addr |
начальный адрес буфера инициатора (по выбору) | |
IN | origin_count |
число записей в буфере инициатора (неотрицательное целое) | |
IN | origin_datatype |
тип данных каждой записи в буфере инициатора (дескриптор) | |
IN | target_rank |
ранк получателя (неотрицательное целое) | |
IN | target_disp |
смещение от начала окна до буфера адресата (неотрицательное целое) | |
IN | target_count |
число записей в буфере адресата (неотрицательное целое) | |
IN | target_datatype |
тип данных каждой записи в буфере адресата (дескриптор) | |
IN | win |
оконный объект, используемый для коммуникации (дескриптор) |
int MPI_Get(void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
int target_rank, MPI_Aint target_disp, int target_count,
MPI_Datatype target_datatype, MPI_Win win)
MPI_GET(ORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE,
TARGET_RANK, TARGET_DISP, TARGET_COUNT,
TARGET_DATATYPE, WIN, IERROR)
<type> ORIGIN_ADDR(*)
INTEGER(KIND=MPI_ADDRESS_KIND) TARGET_DISP
INTEGER ORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK,
TARGET_COUNT, TARGET_DATATYPE, WIN, IERROR
void MPI::Win::Get(const void *origin_addr, int origin_count,
const MPI::Datatype& origin_datatype,
int target_rank, MPI::Aint target_disp,
int target_count,
const MPI::Datatype& target_datatype) const
MPI_GET
похожа на MPI_PUT
, за исключением того, что передача
данных происходит в обратном направлении. Данные копируются из памяти
адресата в память инициатора. origin_datatype
не может
определять перекрывающиеся записи в буфере инициатора. Буфер адресата
должен находиться в пределах окна адресата, и копируемые данные должны
помещаться без округлений в буфер адресата.