dash icon indicating copy to clipboard operation
dash copied to clipboard

[WIP] Graph Concepts and Containers

Open fuchsto opened this issue 5 years ago • 3 comments

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.

fuchsto avatar Mar 09 '19 17:03 fuchsto

Codecov Report

Merging #634 into development will increase coverage by 0.65%. The diff coverage is 95.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

codecov[bot] avatar Mar 12 '19 20:03 codecov[bot]

@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.

fuchsto avatar Mar 12 '19 21:03 fuchsto

I will give the review a try tomorrow on the train.

devreal avatar Mar 12 '19 23:03 devreal