Ginkgo  Generated from pipelines/1554403166 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
Public Member Functions | Static Public Member Functions | List of all members
gko::OmpExecutor Class Reference

This is the Executor subclass which represents the OpenMP device (typically CPU). More...

#include <ginkgo/core/base/executor.hpp>

Inheritance diagram for gko::OmpExecutor:
[legend]
Collaboration diagram for gko::OmpExecutor:
[legend]

Public Member Functions

std::shared_ptr< Executorget_master () noexcept override
 Returns the master OmpExecutor of this Executor. More...
 
std::shared_ptr< const Executorget_master () const noexcept override
 Returns the master OmpExecutor of this Executor. More...
 
void synchronize () const override
 Synchronize the operations launched on the executor with its master.
 
int get_num_cores () const
 
int get_num_threads_per_core () const
 
scoped_device_id_guard get_scoped_device_id_guard () const override
 
std::string get_description () const override
 
virtual void run (const Operation &op) const=0
 Runs the specified Operation using this Executor. More...
 
template<typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void run (const ClosureOmp &op_omp, const ClosureCuda &op_cuda, const ClosureHip &op_hip, const ClosureDpcpp &op_dpcpp) const
 Runs one of the passed in functors, depending on the Executor type. More...
 
template<typename ClosureReference , typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void run (std::string name, const ClosureReference &op_ref, const ClosureOmp &op_omp, const ClosureCuda &op_cuda, const ClosureHip &op_hip, const ClosureDpcpp &op_dpcpp) const
 Runs one of the passed in functors, depending on the Executor type. More...
 

Static Public Member Functions

static std::shared_ptr< OmpExecutorcreate (std::shared_ptr< CpuAllocatorBase > alloc=std::make_shared< CpuAllocator >())
 Creates a new OmpExecutor.
 
static int get_num_omp_threads ()
 

Detailed Description

This is the Executor subclass which represents the OpenMP device (typically CPU).

Member Function Documentation

◆ get_description()

std::string gko::OmpExecutor::get_description ( ) const
overridevirtual
Returns
a textual representation of the executor and its device.

Implements gko::Executor.

Reimplemented in gko::ReferenceExecutor.

◆ get_master() [1/2]

std::shared_ptr<const Executor> gko::OmpExecutor::get_master ( ) const
overridevirtualnoexcept

Returns the master OmpExecutor of this Executor.

Returns
the master OmpExecutor of this Executor.

Implements gko::Executor.

◆ get_master() [2/2]

std::shared_ptr<Executor> gko::OmpExecutor::get_master ( )
overridevirtualnoexcept

Returns the master OmpExecutor of this Executor.

Returns
the master OmpExecutor of this Executor.

Implements gko::Executor.

◆ run() [1/3]

template<typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void gko::Executor::run ( typename ClosureOmp  ,
typename ClosureCuda  ,
typename ClosureHip  ,
typename ClosureDpcpp   
)
inline

Runs one of the passed in functors, depending on the Executor type.

Template Parameters
ClosureOmptype of op_omp
ClosureCudatype of op_cuda
ClosureHiptype of op_hip
ClosureDpcpptype of op_dpcpp
Parameters
op_ompfunctor to run in case of a OmpExecutor or ReferenceExecutor
op_cudafunctor to run in case of a CudaExecutor
op_hipfunctor to run in case of a HipExecutor
op_dpcppfunctor to run in case of a DpcppExecutor

◆ run() [2/3]

virtual void gko::Executor::run

Runs the specified Operation using this Executor.

Parameters
opthe operation to run

◆ run() [3/3]

template<typename ClosureReference , typename ClosureOmp , typename ClosureCuda , typename ClosureHip , typename ClosureDpcpp >
void gko::Executor::run ( typename ClosureReference  ,
typename ClosureOmp  ,
typename ClosureCuda  ,
typename ClosureHip  ,
typename ClosureDpcpp   
)
inline

Runs one of the passed in functors, depending on the Executor type.

Template Parameters
ClosureReferencetype of op_ref
ClosureOmptype of op_omp
ClosureCudatype of op_cuda
ClosureHiptype of op_hip
ClosureDpcpptype of op_dpcpp
Parameters
namethe name of the operation
op_reffunctor to run in case of a ReferenceExecutor
op_ompfunctor to run in case of a OmpExecutor
op_cudafunctor to run in case of a CudaExecutor
op_hipfunctor to run in case of a HipExecutor
op_dpcppfunctor to run in case of a DpcppExecutor

The documentation for this class was generated from the following file: