interface InferenceEngine::ExecutorManager¶
Overview¶
Interface for tasks execution manager. 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 OneDNN. 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>
template ExecutorManager
{
// typedefs
typedef std::shared_ptr<ExecutorManager> Ptr;
// methods
virtual ITaskExecutor::Ptr getExecutor(const std::string& id) = 0;
virtual void setTbbFlag(bool flag) = 0;
virtual bool getTbbFlag() = 0;
static ExecutorManager \* getInstance();
};
Detailed Documentation¶
Interface for tasks execution manager. 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 OneDNN. Parallel execution both of them leads to not optimal CPU usage. More efficient to run the corresponding tasks one by one via single executor.
Methods¶
virtual ITaskExecutor::Ptr getExecutor(const std::string& id) = 0
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
virtual void setTbbFlag(bool flag) = 0
Set TBB terminate flag.
Parameters:
flag |
A boolean value: True to terminate tbb during destruction False to not terminate tbb during destruction |
Returns:
void
static ExecutorManager \* getInstance()
Returns a global instance of ExecutorManager.
Returns:
The instance.