LIHPC-Computational-Geometry / honeycomb

Combinatorial map implementation for meshing applications
https://lihpc-computational-geometry.github.io/honeycomb/
Apache License 2.0
7 stars 1 forks source link

feat(core): add `PMap2`, a parallel cmap prototype #198

Closed imrn99 closed 4 weeks ago

imrn99 commented 1 month ago

Implemented:

Skipped:

part of #197

Necessary follow-up

codecov-commenter commented 1 month ago

Codecov Report

Attention: Patch coverage is 84.60039% with 158 lines in your changes missing coverage. Please review.

Project coverage is 82.14%. Comparing base (ab03601) to head (e05579e).

Files with missing lines Patch % Lines
honeycomb-core/src/pmap/dim2/link_and_sew.rs 68.45% 88 Missing :warning:
honeycomb-core/src/pmap/dim2/io.rs 78.26% 30 Missing :warning:
honeycomb-core/src/pmap/dim2/basic_ops.rs 82.99% 25 Missing :warning:
honeycomb-core/src/pmap/dim2/utils.rs 0.00% 9 Missing :warning:
honeycomb-core/src/pmap/common.rs 0.00% 3 Missing :warning:
honeycomb-core/src/pmap/dim2/embed.rs 84.21% 3 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #198 +/- ## ========================================== + Coverage 81.67% 82.14% +0.47% ========================================== Files 38 47 +9 Lines 5342 6368 +1026 ========================================== + Hits 4363 5231 +868 - Misses 979 1137 +158 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

imrn99 commented 1 month ago

@cedricchevalier19 I'm not sure whether doing review is relevant during the implementation process since code will move very fast

cedricchevalier19 commented 4 weeks ago

I think that rebasing this PR on a PR that just duplicates camp in map might make it easier to track changes due to parallelization.

BTW, why are you doing a separate data structure? Is it to benchmark the sequential behavior?

imrn99 commented 4 weeks ago

I added a separate data structure because I wanted to keep the sequential one that has "no overhead" due to sync mechanism. In retrospect, this might be counterproductive since:

I think I'll redo the changes in a PR where I modify the original struct. I can benchmark the "overhead" by checking out to 0.6.0

imrn99 commented 4 weeks ago

Closing this to reopen a cleaner PR with structure changes