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