PetscSFCreate#
create a star forest communication context
Synopsis#
#include "petscsf.h"
PetscErrorCode PetscSFCreate(MPI_Comm comm, PetscSF *sf)
Collective
Input Parameter#
comm - communicator on which the star forest will operate
Output Parameter#
sf - new star forest context
Options Database Key#
-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
-sf_neighbor_persistent
- If true, use MPI-4 persistent neighborhood collectives for communication (used along with -sf_type neighbor)
Note#
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
SF
s are optimized and they have better performance than the general SF
s.
See Also#
PetscSF
, PetscSFSetType
, PetscSFSetGraph()
, PetscSFSetGraphWithPattern()
, PetscSFDestroy()
Level#
intermediate
Location#
Examples#
src/vec/is/sf/tutorials/ex2.c
src/dm/impls/plex/tutorials/ex15.c
src/vec/is/sf/tutorials/ex1.c
src/vec/is/sf/tutorials/ex1f.F90
src/vec/is/sf/tutorials/ex3.c
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