PETSc version 3.15.5
Fix/Edit manual page

# 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