PetscSFReduceBegin

begin reduction of leafdata into rootdata, to be completed with call to PetscSFReduceEnd()

Synopsis

#include "petscsf.h" 
PetscErrorCode PetscSFReduceBegin(PetscSF sf,MPI_Datatype unit,const void *leafdata,void *rootdata,MPI_Op op)
Collective

Input Arguments

sf - star forest
unit - data type
leafdata - values to reduce
op - reduction operation

Output Arguments

rootdata - result of reduction of values from all leaves of each root

Notes

When petsc is configured with device support, it will use its own mechanism to figure out whether the given data pointers are host pointers or device pointers, which may incur a noticable cost. If you already knew the info, you should use PetscSFReduceWithMemTypeBegin() instead.

See Also

PetscSFBcastBegin(), PetscSFReduceWithMemTypeBegin()

Level

intermediate

Location

src/vec/is/sf/interface/sf.c

Examples

src/vec/is/sf/tutorials/ex1.c.html

Implementations

PetscSFReduceBegin_Allgather in src/vec/is/sf/impls/basic/allgather/sfallgather.c
PetscSFReduceBegin_Allgatherv in src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.c
PetscSFReduceBegin_Alltoall in src/vec/is/sf/impls/basic/alltoall/sfalltoall.c
PetscSFReduceBegin_Gather in src/vec/is/sf/impls/basic/gather/sfgather.c
PetscSFReduceBegin_Gatherv in src/vec/is/sf/impls/basic/gatherv/sfgatherv.c
PetscSFReduceBegin_Neighbor in src/vec/is/sf/impls/basic/neighbor/sfneighbor.c
PetscSFReduceBegin_Basic in src/vec/is/sf/impls/basic/sfbasic.c
PetscSFReduceBegin_Window in src/vec/is/sf/impls/window/sfwindow.c

Index of all PetscSF routines
Table of Contents for all manual pages
Index of all manual pages