class InferenceEngine::ExecutorManager

Overview

This is global point for getting task executor objects by string id. It’s necessary in multiple asynchronous requests for having unique executors to avoid oversubscription. E.g. There 2 task executors for CPU device: one - in FPGA, another - in MKLDNN. Parallel execution both of them leads to not optimal CPU usage. More efficient to run the corresponding tasks one by one via single executor. More…

#include <ie_executor_manager.hpp>

class ExecutorManager
{
public:
    // construction

    ExecutorManager(ExecutorManager const&);

    // methods

    static ExecutorManager* getInstance();
    void operator = (ExecutorManager const&);
    ITaskExecutor::Ptr getExecutor(std::string id);
};

Detailed Documentation

This is global point for getting task executor objects by string id. It’s necessary in multiple asynchronous requests for having unique executors to avoid oversubscription. E.g. There 2 task executors for CPU device: one - in FPGA, another - in MKLDNN. Parallel execution both of them leads to not optimal CPU usage. More efficient to run the corresponding tasks one by one via single executor.

Construction

ExecutorManager(ExecutorManager const&)

A deleted copy constructor.

Methods

static ExecutorManager* getInstance()

Returns a global instance of ExecutorManager.

Returns:

The instance.

void operator = (ExecutorManager const&)

A deleted assignment operator.

ITaskExecutor::Ptr getExecutor(std::string id)

Returns executor by unique identificator.

Parameters:

id

An unique identificator of device (Usually string representation of TargetDevice)

Returns:

A shared pointer to existing or newly ITaskExecutor