12 #define TINYLOAD 0.0005    16            int nPatches, 
int nPes, 
int nNbs) :
    18              processorArray, nComps, 
    27 void AlgNbor::strategy()
    30   double startTime = CmiWallTimer();
    40   if (
processors[mype].available == 
false) 
return;
    51   avgload /= (nNbors+1);
    53   if (myload <= avgload) 
return;
    55   CmiPrintf(
"[%d]:Myload: %f, avrage load: %f. \n", mype, myload, avgload);
    69     double goodSize[3][3];
    78           goodCompute[i][j] = 0;
    85       if (
processors[mype].computeSet.hasElements() == 0) 
break;
    91           int nPatches, nProxies, badForComm;
    94           if ( c->
load > goodSize[nPatches][nProxies] ) {
    95             goodSize[nPatches][nProxies] = c->
load;
    96             goodCompute[nPatches][nProxies] = c;
    97             goodP[nPatches][nProxies] = p;
   108     if (goodCompute[2][0]) {
   110          assign(goodCompute[2][0], goodP[2][0]);
   112     } 
else if (goodCompute[1][1]) {
   114          assign(goodCompute[1][1], goodP[1][1]);
   116     } 
else if (goodCompute[0][2]) {
   118          assign(goodCompute[0][2], goodP[0][2]);
   120     } 
else if (goodCompute[1][0]) {
   122          assign(goodCompute[1][0], goodP[1][0]);
   124     } 
else if (goodCompute[0][1]) {
   126          assign(goodCompute[0][1], goodP[0][1]);
   128     } 
else if (goodCompute[0][0]) {
   130          assign(goodCompute[0][0], goodP[0][0]);
   133          iout << 
iINFO << 
"AlgNbor: No receiver found" << 
"\n" << 
endi;
   137       lightProcessors->
remove(bestP);
   249   CmiPrintf(
"AlgNbor finish time: %f.\n", CmiWallTimer()-startTime);
 
std::ostream & iINFO(std::ostream &s)
 
AlgNbor(int pe, computeInfo *computeArray, patchInfo *patchArray, processorInfo *processorArray, int nComps, int nPatches, int nPes, int nNbs)
 
void assign(computeInfo *c, processorInfo *pRec)
 
std::ostream & endi(std::ostream &s)
 
void insert(InfoRecord *)
 
processorInfo * processors
 
void numAvailable(computeInfo *c, processorInfo *p, int *nPatches, int *nProxies, int *isBadForCommunication)
 
static Units next(Units u)
 
void deAssign(computeInfo *c, processorInfo *pRec)
 
InfoRecord * next(Iterator *)
 
InfoRecord * iterator(Iterator *)
 
const char * strategyName