petsc-3.4.5 2014-06-29

PetscGatherMessageLengths

Computes info about messages that a MPI-node will receive, including (from-id,length) pairs for each message.

Synopsis

#include "petscsys.h"  
PetscErrorCode  PetscGatherMessageLengths(MPI_Comm comm,PetscMPIInt nsends,PetscMPIInt nrecvs,const PetscMPIInt ilengths[],PetscMPIInt **onodes,PetscMPIInt **olengths)
Collective on MPI_Comm

Input Parameters

comm - Communicator
nsends - number of messages that are to be sent.
nrecvs - number of messages being received
ilengths - an array of integers of length sizeof(comm) a non zero ilengths[i] represent a message to i of length ilengths[i]

Output Parameters

onodes - list of node-ids from which messages are expected
olengths - corresponding message lengths

Notes

With this info, the correct MPI_Irecv() can be posted with the correct from-id, with a buffer with the right amount of memory required.

The calling function deallocates the memory in onodes and olengths

To determine nrecevs, one can use PetscGatherNumberOfMessages()

See Also

PetscGatherNumberOfMessages()

Level:developer
Location:
src/sys/utils/mpimesg.c
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages