MCPcopy Create free account
hub / github.com/BirolLab/abyss / performNetworkPopBubbles

Method performNetworkPopBubbles

Parallel/NetworkSequenceCollection.cpp:1010–1042  ·  view source on GitHub ↗

Pop bubbles discovered previously. */

Source from the content-addressed store, hash-verified

1008
1009/** Pop bubbles discovered previously. */
1010size_t NetworkSequenceCollection::
1011performNetworkPopBubbles(ostream& out)
1012{
1013 Timer timer("NetworkPopBubbles");
1014
1015 // Deal with any packets still in the queue. The barrier
1016 // synchronization guarantees that the packets have been
1017 // delivered, but we may not have dealt with them yet.
1018 pumpNetwork();
1019 assert(m_comm.receiveEmpty());
1020
1021 size_t numPopped = 0;
1022 for (BranchGroupMap::iterator iter = m_bubbles.begin();
1023 iter != m_bubbles.end(); iter++) {
1024 assert(iter->second.getStatus() == BGS_JOINED);
1025 // Check whether this bubble has already been popped.
1026 if (!iter->second.isAmbiguous(m_data))
1027 continue;
1028 numPopped++;
1029 AssemblyAlgorithms::writeBubble(out,
1030 iter->second, m_numPopped + numPopped);
1031 AssemblyAlgorithms::collapseJoinedBranches(
1032 this, iter->second);
1033 assert(!iter->second.isAmbiguous(m_data));
1034 assert(m_comm.receiveEmpty());
1035 }
1036 m_bubbles.clear();
1037 out.flush();
1038 assert(out.good());
1039
1040 logger(0) << "Removed " << numPopped << " bubbles.\n";
1041 return numPopped;
1042}
1043
1044//
1045// Process groups that are finished searching for bubbles

Callers

nothing calls this directly

Calls 10

writeBubbleFunction · 0.85
collapseJoinedBranchesFunction · 0.85
receiveEmptyMethod · 0.80
getStatusMethod · 0.80
flushMethod · 0.80
goodMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
isAmbiguousMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected