|
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.