|
|
@ -446,7 +446,6 @@ void dalgoDistEdgeApproxDomEdgesLinearSearchMesgBndlSmallMateCMP(
|
|
|
|
#pragma omp single
|
|
|
|
#pragma omp single
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for ( v=0; v < NLVer; v++ )
|
|
|
|
for ( v=0; v < NLVer; v++ )
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//Start: PARALLEL_PROCESS_EXPOSED_VERTEX_B(v)
|
|
|
|
//Start: PARALLEL_PROCESS_EXPOSED_VERTEX_B(v)
|
|
|
@ -461,8 +460,14 @@ void dalgoDistEdgeApproxDomEdgesLinearSearchMesgBndlSmallMateCMP(
|
|
|
|
#ifdef PRINT_DEBUG_INFO_
|
|
|
|
#ifdef PRINT_DEBUG_INFO_
|
|
|
|
cout<<"\n("<<myRank<<")"<<v+StartIndex<<" Points to: "<<w; fflush(stdout);
|
|
|
|
cout<<"\n("<<myRank<<")"<<v+StartIndex<<" Points to: "<<w; fflush(stdout);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
if (isAlreadyMatched(k, verLocInd, StartIndex, EndIndex, GMate, Mate, Ghost2LocalMap))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//If found a dominating edge:
|
|
|
|
|
|
|
|
if (w >= 0) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//This piece of code is actually executed under 0.01% of the times
|
|
|
|
|
|
|
|
if (isAlreadyMatched(k, verLocInd, StartIndex, EndIndex, GMate, Mate, Ghost2LocalMap)) {
|
|
|
|
w = computeCandidateMate(verLocPtr[v],
|
|
|
|
w = computeCandidateMate(verLocPtr[v],
|
|
|
|
verLocPtr[v + 1],
|
|
|
|
verLocPtr[v + 1],
|
|
|
|
edgeLocWeight, 0,
|
|
|
|
edgeLocWeight, 0,
|
|
|
@ -475,8 +480,8 @@ void dalgoDistEdgeApproxDomEdgesLinearSearchMesgBndlSmallMateCMP(
|
|
|
|
candidateMate[v] = w;
|
|
|
|
candidateMate[v] = w;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//If found a dominating edge:
|
|
|
|
|
|
|
|
if (w >= 0) {
|
|
|
|
if (w >= 0) {
|
|
|
|
|
|
|
|
|
|
|
|
myCard++;
|
|
|
|
myCard++;
|
|
|
|
if ((w < StartIndex) || (w > EndIndex)) { //w is a ghost vertex
|
|
|
|
if ((w < StartIndex) || (w > EndIndex)) { //w is a ghost vertex
|
|
|
|
//Build the Message Packet:
|
|
|
|
//Build the Message Packet:
|
|
|
@ -546,8 +551,12 @@ void dalgoDistEdgeApproxDomEdgesLinearSearchMesgBndlSmallMateCMP(
|
|
|
|
|
|
|
|
|
|
|
|
} //End of if ( candidateMate[w-StartIndex] == (v+StartIndex) )
|
|
|
|
} //End of if ( candidateMate[w-StartIndex] == (v+StartIndex) )
|
|
|
|
} //End of Else
|
|
|
|
} //End of Else
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} //End of second if
|
|
|
|
} //End of if(w >=0)
|
|
|
|
} //End of if(w >=0)
|
|
|
|
else {
|
|
|
|
|
|
|
|
|
|
|
|
//if (w < 0) { -- if it arrives here this one if is useless, it is certainly -1
|
|
|
|
adj11 = verLocPtr[v];
|
|
|
|
adj11 = verLocPtr[v];
|
|
|
|
adj12 = verLocPtr[v + 1];
|
|
|
|
adj12 = verLocPtr[v + 1];
|
|
|
|
for (k1 = adj11; k1 < adj12; k1++) {
|
|
|
|
for (k1 = adj11; k1 < adj12; k1++) {
|
|
|
@ -582,10 +591,9 @@ void dalgoDistEdgeApproxDomEdgesLinearSearchMesgBndlSmallMateCMP(
|
|
|
|
|
|
|
|
|
|
|
|
} //End of if(GHOST)
|
|
|
|
} //End of if(GHOST)
|
|
|
|
} //End of for loop
|
|
|
|
} //End of for loop
|
|
|
|
} // End of Else: w == -1
|
|
|
|
//} // End of Else: w == -1
|
|
|
|
//End: PARALLEL_PROCESS_EXPOSED_VERTEX_B(v)
|
|
|
|
//End: PARALLEL_PROCESS_EXPOSED_VERTEX_B(v)
|
|
|
|
} //End of for ( v=0; v < NLVer; v++ )
|
|
|
|
} //End of for ( v=0; v < NLVer; v++ )
|
|
|
|
|
|
|
|
|
|
|
|
} // end of single region
|
|
|
|
} // end of single region
|
|
|
|
} // end of parallel region
|
|
|
|
} // end of parallel region
|
|
|
|
|
|
|
|
|
|
|
|