BIE::TileRequestHandlerThread Class Reference
A helper class that handles work requests generated by integrators and replies to those requests from worker processes.
More...
#include <TileRequestHandlerThread.h>
List of all members.
|
Public Member Functions |
|
| TileRequestHandlerThread (int numWorkersInTileGroup, vector< int > *p_GroupIdToSystemId, vector< int > *p_SystemIdToGroupId, vector< MPI_Comm > *p_comms, Semaphore *numberSlavesReady) |
| | construct thread with the number of workers to manage and mappings from id-in-group to id-in-system and vice-versa.
|
|
void | reInitialize (int tileGroupSize, vector< int > *groupIdToSystemId, vector< int > *systemIdToGroupId, vector< MPI_Comm > *comms, Semaphore *numberSlavesReady) |
|
void | setTileMasterWorkerThread (TileMasterWorkerThread *tileMasterWorkerThread) |
| | used to register a handle to the tileMasterWorkerThread
|
|
void | masterWorkerRegister () |
| | called by masterworker thread when it (re)registers itself with the this class.
|
|
void | masterWorkerAvailable () |
| | called by master worker thread when it wants to be considered for processing requests
|
|
void | resetPause () |
| | pause thread and put it into known state
|
|
void | unPause () |
| | restart thread paused with resetPause;
|
|
void | stopPausedThread () |
| | permanently stop a paused thread
|
|
virtual void | run () |
| | run the thread Override of thread framework method
|
| virtual void | enqueueRequest (EvaluationRequest *request) |
| | given a request for work from an integrator, enqueue it for later processing.
|
| virtual void | readAndProcessMessage (MPI_Status *status) |
| | Given a status from a sucessful MPI_Probe, read and process a message.
|
|
bool | allWorking () |
| | Helper method for TileMPIThread. True iff all slaves are working.
|
|
bool | noneWorking () |
| | Helper method for TileMPIThread. True iff no slaves are working.
|
|
bool | noMPISlaves () |
| | Helper method for TileMPIThread. True iff all there are no slaves(groupsize ==1).
|
|
bool | workAvailable () |
| | Helper method for TileMPIThread. True if there is workavailable.
|
|
virtual void | final () |
| | Override thread framework function that gets called when Run exits. Used for cleanup.
|
Public Attributes |
|
Event | MPIThreadLoopEvent |
|
vector< double > | startTime |
|
vector< double > | endTime |
|
vector< vector< int > > | histo |
|
ElapsedTime | workerWaitTime |
|
ElapsedTime | workWaitTime |
|
ElapsedTime | mutexWaitTime |
|
ElapsedTime | probeTime |
|
ElapsedTime | IprobeTime |
|
ElapsedTime | loopEventWaitTime |
|
ElapsedTime | thrqMutexHoldTime |
|
ElapsedTime | recvTime |
Detailed Description
A helper class that handles work requests generated by integrators and replies to those requests from worker processes.
A single instance of this class (a thread), runs on the tile group master and communicates with all worker processors.
Member Function Documentation
| virtual void BIE::TileRequestHandlerThread::enqueueRequest |
( |
EvaluationRequest * |
request |
) |
[virtual] |
given a request for work from an integrator, enqueue it for later processing.
Locks queue during update.
| virtual void BIE::TileRequestHandlerThread::readAndProcessMessage |
( |
MPI_Status * |
status |
) |
[virtual] |
Given a status from a sucessful MPI_Probe, read and process a message.
This is a handler function called from the MPIThread
The documentation for this class was generated from the following file: