petsc-3.5.4 2015-05-23
Report Typos and Errors

PetscThreadCommRunKernel4

PetscThreadCommRunKernel version for kernels with 4 input argument

Synopsis

#include "petscthreadcomm.h" 
PetscErrorCode PetscThreadCommRunKernel4(MPI_Comm comm,PetscErrorCode (*func)(PetscInt,...),void *in1,void *in2,void *in3,void *in4)

Input Parameters

comm - the MPI communicator
func - the kernel (needs to be cast to PetscThreadKernel)
in1 - first input argument for the kernel
in2 - second input argument for the kernel
in3 - third input argument for the kernel
in4 - fourth input argument for the kernel

Notes

All input arguments to the kernel must be passed by reference, Petsc objects are inherrently passed by reference so you don't need to additionally & them.

Example usage - PetscThreadCommRunKernel1(comm,(PetscThreadKernel)kernel_func,x); with kernel_func declared as PetscErrorCode kernel_func(PetscInt thread_id,PetscInt* x)

The first input argument of kernel_func, thread_id, is the thread rank. This is passed implicitly by PETSc.

See Also

PetscThreadCommCreate(), PetscThreadCommGNThreads()

Level:developer
Location:
src/sys/threadcomm/interface/threadcomm.c
Index of all PetscThreadComm routines
Table of Contents for all manual pages
Index of all manual pages