|
|
@ -130,8 +130,6 @@ void processMatchedVertices(
|
|
|
|
Mate[v - StartIndex] = w; // v is a local vertex
|
|
|
|
Mate[v - StartIndex] = w; // v is a local vertex
|
|
|
|
GMate[Ghost2LocalMap[w]] = v; // w is a ghost vertex
|
|
|
|
GMate[Ghost2LocalMap[w]] = v; // w is a ghost vertex
|
|
|
|
|
|
|
|
|
|
|
|
// Decrement the counter:
|
|
|
|
|
|
|
|
PROCESS_CROSS_EDGE(Counter, Ghost2LocalMap[w], SPtr);
|
|
|
|
|
|
|
|
} // End of if CandidateMate[w] = v
|
|
|
|
} // End of if CandidateMate[w] = v
|
|
|
|
} // End of if a Ghost Vertex
|
|
|
|
} // End of if a Ghost Vertex
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -150,7 +148,8 @@ void processMatchedVertices(
|
|
|
|
} // End of Else
|
|
|
|
} // End of Else
|
|
|
|
|
|
|
|
|
|
|
|
} // End of if(w >=0)
|
|
|
|
} // End of if(w >=0)
|
|
|
|
else option = 4;// End of Else: w == -1
|
|
|
|
else
|
|
|
|
|
|
|
|
option = 4; // End of Else: w == -1
|
|
|
|
// End: PARALLEL_PROCESS_EXPOSED_VERTEX_B(v)
|
|
|
|
// End: PARALLEL_PROCESS_EXPOSED_VERTEX_B(v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} // End of task
|
|
|
|
} // End of task
|
|
|
@ -164,11 +163,11 @@ void processMatchedVertices(
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (candidateMate[NLVer + Ghost2LocalMap[v]] == u)
|
|
|
|
if (candidateMate[NLVer + Ghost2LocalMap[v]] == u)
|
|
|
|
candidateMate[NLVer + Ghost2LocalMap[v]] = -1;
|
|
|
|
candidateMate[NLVer + Ghost2LocalMap[v]] = -1;
|
|
|
|
if (v != Mate[u - StartIndex]) option = 5; // u is local
|
|
|
|
if (v != Mate[u - StartIndex])
|
|
|
|
|
|
|
|
option = 5; // u is local
|
|
|
|
} // End of critical
|
|
|
|
} // End of critical
|
|
|
|
} // End of Else //A Ghost Vertex
|
|
|
|
} // End of Else //A Ghost Vertex
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (option)
|
|
|
|
switch (option)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
case -1:
|
|
|
|
case -1:
|
|
|
@ -184,6 +183,8 @@ void processMatchedVertices(
|
|
|
|
cout << "\n(" << myRank << ")MATCH: (" << v << "," << w << ") ";
|
|
|
|
cout << "\n(" << myRank << ")MATCH: (" << v << "," << w << ") ";
|
|
|
|
fflush(stdout);
|
|
|
|
fflush(stdout);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// Decrement the counter:
|
|
|
|
|
|
|
|
PROCESS_CROSS_EDGE(Counter, Ghost2LocalMap[w], SPtr);
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
// Found a dominating edge, it is a ghost
|
|
|
|
// Found a dominating edge, it is a ghost
|
|
|
|
ghostOwner = findOwnerOfGhost(w, verDistance, myRank, numProcs);
|
|
|
|
ghostOwner = findOwnerOfGhost(w, verDistance, myRank, numProcs);
|
|
|
|