petsc-master 2015-07-05
Report Typos and Errors

PetscSubcomm

A decomposition of an MPI communicator into subcommunicators

Synopsis

typedef struct _n_PetscSubcomm* PetscSubcomm;
Notes: After a call to PetscSubcommSetType(), PetscSubcommSetTypeGeneral(), or PetscSubcommSetFromOptions() one may call
    PetscSubcommChild() returns the associated subcommunicator on this process
    PetscSubcommContiguousParent() returns a parent communitor but with all child of the same subcommunicator having contiquous rank

Sample Usage

PetscSubcommCreate() PetscSubcommSetNumber() PetscSubcommSetType(PETSC_SUBCOMM_INTERLACED); ccomm = PetscSubcommChild() PetscSubcommDestroy()

Notes

  PETSC_SUBCOMM_GENERAL - similar to MPI_Comm_split() each process sets the new communicator (color) they will belong to and the order within that communicator
  PETSC_SUBCOMM_CONTIGUOUS - each new communicator contains a set of process with contiquous ranks in the original MPI communicator
  PETSC_SUBCOMM_INTERLACED - each new communictor contains a set of processes equally far apart in rank from the others in that new communicator

Examaple: Consider a communicator with six processes split into 3 subcommunicators.

    PETSC_SUBCOMM_CONTIGUOUS - the first communicator contains rank 0,1  the second rank 2,3 and the third rank 4,5 in the original ordering of the original communicator
    PETSC_SUBCOMM_INTERLACED - the first communicator contains rank 0,3, the second 1,4 and the third 2,5

Developer Notes: This is used in objects such as PCREDUNDANT() to manage the subcommunicators on which the redundant computations are performed.

See Also

PetscSubcommCreate(), PetscSubcommSetNumber(), PetscSubcommSetType(), PetscSubcommView(), PetscSubcommSetFromOptions()

Level:advanced
Location:
include/petscsys.h
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages