petsc-3.7.1 2016-05-15
Report Typos and Errors

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 Many br

Input Parameters

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

Output Parameters

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

Many br

Notes

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

The calling function deallocates the memory in onodes and olengths Many br

To determine nrecevs, one can use PetscGatherNumberOfMessages() Many br

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