Здравствуйте, _hum_, Вы писали:
__>Народ, подскажите, какая логика стоит за тем, чтобы использовать одну и ту же функцию и для отсылки, и для сбора данных от процессов? Я имею в виду MPI_Gather.
__>Заечм делать
__>__> int MPI_Gather(void* sendbuf, //IN адрес начала размещения посылаемых данных;
__> int sendcount, //IN число посылаемых элементов;
__> MPI_Datatype sendtype, //IN тип посылаемых элементов;
__> void* recvbuf, //OUT адрес начала буфера приема (используется только в процессе-получателе root);
__> int recvcount, //IN число элементов, получаемых от каждого процесса (используется только в процессе-получателе root);
__> MPI_Datatype recvtype, //IN тип получаемых элементов;
__> int root, //IN номер процесса-получателя;
__> MPI_Comm comm) //IN коммуникатор.
__>
__>заставляя всовывать неиспользующиеся аргументы в функцию?
Предполагаю, что так просто короче и удобнее, а "красота" или "логика" принесена в жертву. Такие вспомогательные функции всегда можно заменить алгоритмом на основе MPI_Send/MPI_Recv, но, когда начинаешь писать этот алгоритм, понимаешь, что начинаешь изобретать велосипед.