petsc-3.14.6 2021-03-30
Report Typos and Errors

PetscSFCreate

create a star forest communication context

Synopsis

#include "petscsf.h" 
PetscErrorCode PetscSFCreate(MPI_Comm comm,PetscSF *sf)
Collective

Input Arguments

comm - communicator on which the star forest will operate

Output Arguments

sf - new star forest context

Options Database Keys

-sf_type basic - Use MPI persistent Isend/Irecv for communication (Default)
-sf_type window - Use MPI-3 one-sided window for communication
-sf_type neighbor - Use MPI-3 neighborhood collectives for communication

Notes

When one knows the communication graph is one of the predefined graph, such as MPI_Alltoall, MPI_Allgatherv, MPI_Gatherv, one can create a PetscSF and then set its graph with PetscSFSetGraphWithPattern(). These special SFs are optimized and they have better performance than general SFs.

See Also

PetscSFSetGraph(), PetscSFSetGraphWithPattern(), PetscSFDestroy()

Level

intermediate

Location

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

Examples

src/vec/is/sf/tutorials/ex1.c.html
src/vec/is/sf/tutorials/ex2.c.html
src/vec/is/sf/tutorials/ex1f.F90.html

Implementations

PetscSFCreate_Allgather in src/vec/is/sf/impls/basic/allgather/sfallgather.c
PetscSFCreate_Allgatherv in src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.c
PetscSFCreate_Alltoall in src/vec/is/sf/impls/basic/alltoall/sfalltoall.c
PetscSFCreate_Gather in src/vec/is/sf/impls/basic/gather/sfgather.c
PetscSFCreate_Gatherv in src/vec/is/sf/impls/basic/gatherv/sfgatherv.c
PetscSFCreate_Neighbor in src/vec/is/sf/impls/basic/neighbor/sfneighbor.c
PetscSFCreate_Basic in src/vec/is/sf/impls/basic/sfbasic.c
PetscSFCreate_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