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

KSPCGUseSingleReduction

Merge the two inner products needed in CG into a single MPI_Allreduce() call.

Synopsis

#include "petscksp.h" 
PetscErrorCode  KSPCGUseSingleReduction(KSP ksp,PetscBool flg)
Logically Collective on ksp

Input Parameters

ksp - the iterative context
flg - turn on or off the single reduction

Options Database

-ksp_cg_single_reduction

The algorithm used in this case is described as Method 1 in Lapack Working Note 56, "Conjugate Gradient Algorithms with Reduced Synchronization Overhead Distributed Memory Multiprocessors", by E. F. D'Azevedo, V. L. Eijkhout, and C. H. Romine, December 3, 1999. V. Eijkhout credits the algorithm initially to Chronopoulos and Gear.

It requires two extra work vectors than the conventional implementation in PETSc.

See also KSPPIPECG, KSPPIPECR, and KSPGROPPCG that use non-blocking reductions.

See Also

KSP, KSPCG, KSPGMRES

Level

intermediate

Location

src/ksp/ksp/impls/cg/cgtype.c

Implementations

KSPCGUseSingleReduction_CG in src/ksp/ksp/impls/cg/cg.c

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