Skip to main content
`Ctrl`+`K`

# PetscOmpCtrlCreate

create a PETSc OpenMP controller, which manages PETSc’s interaction with third party libraries that use OpenMP

## Synopsis

    #include "petscsys.h"
    PetscErrorCode PetscOmpCtrlCreate(MPI_Comm petsc_comm, PetscInt nthreads, PetscOmpCtrl *pctrl)

## Input Parameters

- petsc_comm - a communicator some PETSc object (for example, a matrix) lives in

- nthreads - number of threads per MPI rank to spawn in a library using OpenMP. If nthreads = -1, let PETSc decide a suitable value

## Output Parameter

- pctrl - a PETSc OpenMP controller

## Developer Note

Possibly use the variable `PetscNumOMPThreads` to determine the number for threads to use

## See Also

`PetscOmpCtrlDestroy()`, `PetscOmpCtrlGetOmpComms()`, `PetscOmpCtrlBarrier()`, `PetscOmpCtrlOmpRegionOnMasterBegin()`, `PetscOmpCtrlOmpRegionOnMasterEnd()`,

## Level

developer

## Location

src/sys/utils/openmp/mpmpishm.c

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