|
SpinParser
1.0
|
Implementation of an automatic hybrid OpenMP / MPI load balancer. More...
#include <vector>#include <functional>#include <thread>#include <mutex>#include <boost/date_time.hpp>#include "lib/Log.hpp"#include "lib/Exception.hpp"#include "mpi.h"#include "omp.h"

Go to the source code of this file.
Classes | |
| class | HMP::LoadManager |
| Common load manager interface for both, the MPI server rank and slave ranks. More... | |
| struct | HMP::LoadManager::DataStackBase |
| Abstract base class for DataStack types. More... | |
| struct | HMP::LoadManager::DataStack< StackT > |
| Concrete derivation of DataStackBase, managing an array of fundamental data types (or tuples thereof, if DataStackBase::typeMultiplicity is greater than one). More... | |
| struct | HMP::LoadManager::Chunk |
| Definition of a small chunk of work. Used to communicate workload between different LoadManager instances. More... | |
| class | HMP::LoadManagerMaster |
| LoadManager master implementation, which is responsible for distributing work and synchronizing data. More... | |
| class | HMP::LoadManagerSlave |
| LoadManager slave implementation, responsible for receiving and executing workload chunks form a LoadManagerMaster implementation. More... | |
Macros | |
| #define | HMP_CHUNK_PROPERTY_STACK 0 |
| Memory offset of the stack id in the chunk properties. | |
| #define | HMP_CHUNK_PROPERTY_BEGIN 1 |
| Memory offset of the workload begin in the chunk properties. | |
| #define | HMP_CHUNK_PROPERTY_END 2 |
| Memory offset of the workload end in the chunk properties. | |
| #define | HMP_MPI_ENABLED |
| Defined, if MPI parallelization is enabled. | |
| #define | HMP_ENABLE_IF_MPI(X) X |
| Print argument if MPI parallelization is enabled. | |
| #define | HMP_DISABLE_IF_MPI(X) |
| Do not print argument if MPI parallelization is enabled. | |
| #define | HMP_APPEND_IF_MPI(X) ,X |
| Append argument if MPI parallelizatino is enabled. | |
Typedefs | |
| typedef int | HMP::StackIdentifier |
| DataStack identifier. | |
Functions | |
| LoadManager * | HMP::newLoadManager (const int serverRank=0, const MPI_Comm communicator=MPI_COMM_WORLD) |
| Create a new LoadManager instance. If the current MPI rank is the designated master rank, returns a LoadManagerMaster instance, otherwise returns a LoadManagerSlave instance. More... | |
Implementation of an automatic hybrid OpenMP / MPI load balancer.
|
inline |
Create a new LoadManager instance. If the current MPI rank is the designated master rank, returns a LoadManagerMaster instance, otherwise returns a LoadManagerSlave instance.
| serverRank | MPI rank to assume the master role. |
| communicator | The MPI communicator to operate on. |
1.8.17