Синтаксис функции MPI_SCAN представлен ниже.
MPI_SCAN(sendbuf, recvbuf, count, datatype, op, comm)
IN | sendbuf | начальный адрес буфера посылки (альтернатива) | |
OUT | recvbuf | начальный адрес буфера приема (альтернатива) | |
IN | count | количество элементов в буфере приема (целое) | |
IN | datatype | тип данных элементов в буфере приема (дескриптор) | |
IN | op | операция (дескриптор) | |
IN | comm | коммуникатор (дескриптор) |
int MPI_Scan(void* sendbuf, void* recvbuf, int count,
MPI_Datatype datatype,
MPI_Op op, MPI_Comm comm)
MPI_SCAN(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, COMM, IERROR
void Intracomm::Scan(const void* sendbuf, void* recvbuf,
int count,
const Datatype& datatype, const Op& op) const
Функция MPI_SCAN используется, чтобы выполнить префиксную редукцию данных, распределенных в группе. Операция возвращает в приемный буфер процесса i редукцию значений в посылающих буферах процессов с номерами 0, ..., i (включительно). Тип поддерживаемых операций, их семантика, и ограничения на буфера посылки и приема - такие же, как и для MPI_REDUCE.