Nektar++
|
Classes | |
class | ThreadJob |
Base class for tasks to be sent to the ThreadManager to run. More... | |
class | ThreadManager |
The interface class for the controller for worker threads and jobs. More... | |
class | ThreadManagerStd |
Implementation of ThreadManager using std::thread. More... | |
class | ThreadMaster |
class | ThreadStartupManager |
A default ThreadManager. More... | |
class | ThreadWorkerStd |
Implementation class for ThreadManagerStd. More... | |
Typedefs | |
typedef std::shared_ptr< ThreadManager > | ThreadManagerSharedPtr |
typedef LibUtilities::NekFactory< std::string, ThreadManager, unsigned int > | ThreadManagerFactory |
typedef std::unique_lock< std::shared_mutex > | WriteLock |
typedef std::shared_lock< std::shared_mutex > | ReadLock |
typedef std::unique_lock< std::mutex > | Lock |
Enumerations | |
enum | SchedType { e_guided , e_dynamic } |
Identifies the algorithm for scheduling. More... | |
Functions | |
ThreadManagerFactory & | GetThreadManagerFactory () |
ThreadMaster & | GetThreadMaster () |
typedef std::unique_lock<std::mutex> Nektar::Thread::Lock |
Definition at line 50 of file ThreadStd.h.
typedef std::shared_lock<std::shared_mutex> Nektar::Thread::ReadLock |
typedef LibUtilities::NekFactory<std::string, ThreadManager, unsigned int> Nektar::Thread::ThreadManagerFactory |
typedef std::shared_ptr<ThreadManager> Nektar::Thread::ThreadManagerSharedPtr |
typedef std::unique_lock<std::shared_mutex> Nektar::Thread::WriteLock |
Identifies the algorithm for scheduling.
Currently there are two strategies to determine the number of jobs. e_static always loads m_chunkSize jobs onto each worker, e_guided uses a simple algorithm that loads a larger proportion of jobs onto the worker as the size of the queue list is large, but scales down to no fewer than m_chunkSize as the queue empties.
Enumerator | |
---|---|
e_guided | |
e_dynamic |
ThreadManagerFactory & Nektar::Thread::GetThreadManagerFactory | ( | ) |
Definition at line 45 of file Thread.cpp.
Referenced by Nektar::Thread::ThreadMaster::CreateInstance().
ThreadMaster & Nektar::Thread::GetThreadMaster | ( | ) |
Definition at line 128 of file Thread.cpp.