| Master | Slave | ||
| Parse cmd line args | Parse cmd line args | ||
| Load shared object | Load shared object | ||
| Get ILWD element | |||
|
Create MPI data structure
to represent ILWD |
Create MPI data structure
to represent ILWD |
||
| if( dataDistributor == WrapperAPI)
Broadcast data else Send data to search Master create LBComm |
if( dataDistributor == WrapperAPI)
Receive data else if( searchMaster ) Receive data create LBComm |
||
| initSearch() | initSearch() | ||
| ConditionData() | |||
| while(fractionRemaining)
{ |
while(notFinished)
{ |
||
|
for(i=0;i<numLBNodes;++i) { |
if(inLBComm()) { |
||
|
start timing applySearch( notFinished) stop timing |
|||
| receive status, results | report to Master | ||
| calculates timing info | |||
| receive fractionRemaining | |||
| freeOutput() | |||
| converts to ILWD | |||
| } | } | ||
| execute load balance | execute load balance | ||
| } | } | ||
| sends results to API | |||
| finalizeSearch() | finalizeSearch() | ||
| cleanup and stop MPI |