dash
dash copied to clipboard
[WIP] Graph Concepts and Containers
As the STL has no equivalent, I defined the DASH graph concepts following the Boost Graph Library (BGL). In his Master thesis, @stiefn refined and extended concepts for several peculiarities and requirements of PGAS and DASH. This merge contains his reference implementation. Merging current development was surprisingly non-conflicting. The implementation proved stable and effizient in several productive scenarios like BFS and Connected Components.
Missing: more unit tests, review, some suggestions for improvement in comments here and there.
Codecov Report
Merging #634 into development will increase coverage by
0.65%
. The diff coverage is95.24%
.
@@ Coverage Diff @@
## development #634 +/- ##
===============================================
+ Coverage 85.08% 85.74% +0.65%
===============================================
Files 336 355 +19
Lines 24954 26570 +1616
Branches 11338 12040 +702
===============================================
+ Hits 21232 22782 +1550
- Misses 3692 3771 +79
+ Partials 30 17 -13
Impacted Files | Coverage Δ | |
---|---|---|
dash/test/algorithm/ConnectedComponentsTest.h | 100% <100%> (ø) |
|
dash/include/dash/memory/GlobHeapLocalPtr.h | 95.65% <100%> (+0.06%) |
:arrow_up: |
dash/include/dash/memory/GlobHeapCombinedMem.h | 100% <100%> (ø) |
|
dash/include/dash/graph/VertexIterator.h | 100% <100%> (ø) |
|
dash/test/algorithm/MinimumSpanningTreeTest.h | 100% <100%> (ø) |
|
dash/include/dash/memory/GlobHeapCombinedPtr.h | 100% <100%> (ø) |
|
dash/include/dash/graph/OutEdgeIterator.h | 100% <100%> (ø) |
|
dash/include/dash/graph/EdgeIterator.h | 100% <100%> (ø) |
|
dash/include/dash/graph/InEdgeIterator.h | 100% <100%> (ø) |
|
dash/test/container/GraphTest.h | 100% <100%> (ø) |
|
... and 33 more |
@stiefn @fuerlinger @rkowalewski @devreal @pascalj
Graph containers and algorithms are fully merged now, including tests and examples. Algorithms are Minimum Spanning Tree and Connected Components.
Relevant implementation is in:
- dash/graph
- dash/algorithms/graph
Integration tests passed, but could use some more unit tests.
Still, I'm voting for merging it into development, that's what the branch is about.
I will give the review a try tomorrow on the train.