LINUX.ORG.RU

MPI_Allgatherv и unsigned-размеры

 


0

1

Имеется коллективная функция MPI, например:

void MPI::Comm::Allgatherv(const void* sendbuf, int sendcount,
    const MPI::Datatype& sendtype, void* recvbuf,
    const int recvcounts[], const int displs[],
    const MPI::Datatype& recvtype) const = 0
https://www.open-mpi.org/doc/v1.10/man3/MPI_Allgatherv.3.php

Можно ли как-то передавать массивы размерность которых unsigned? Т.е. у меня sendcount типа unsigned, insigned recvcounts[], ... .

P.S. почему в MPI размеры знаковые, как передать. например, -5 значений ?

Могу предположить, что количество элементов передается как знаковое число для совместимости со старыми версиями Fortran.

-5 значений передать нельзя.

Половина возможных значений типа unsigned без проблем преобразуется к типу signed. Если действетиельно есть необходимость передавать за раз так много данных, то можно попробывать создать свой тип, используя MPI_TYPE_VECTOR, и передавать массив элементов нового типа.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.