Closed aristeidis-mastoras closed 7 months ago
Note: I also added the todo of removing the invert_mask in the PR algorithm. If no objection I could do that quickly around now?
Note: I also added the todo of removing the invert_mask in the PR algorithm. If no objection I could do that quickly around now?
This is done. I did run into a new bug in nonblocking, I opened issue #305 for it.
@aristeidis-mastoras @byjtew -- this one is now conflicted but was the next on my list. I'll try resolve the conflicts now
Rebase complete, smoke tests with LPF OK. Unit tests with LPF and GitHub CI running overnight
(If anyone of @aristeidis-mastoras @byjtew wants to review how I handled the conflicts lemme know before tomorrow -- if no message by e.g. noon, I'll proceed with review/merge:)
Crossref #305 which this MR should also fix (TBC)
Review OK but found one issue in the bsp1d backend. Re-running smoke & unit tests with LPF.
All tests OK, will merge
Concept release notes:
Prior to this MR, the PageRank implementation does not pass the dense descriptor when it could, while it includes the use of the expensive invert_mask
in its performance-critical loop. Mask inversion is expensive since it requires iterating over the full vector range, while, in this case, the inverted mask is constant. Hence, this MR introduces the following changes:
This improvement does come at the cost of one additional work-space vector that is now required for the PageRank implementation.
In implementing these fixes, the following feature has been added:
grb::eWiseLambda
now takes a descriptor template argument. This was previously accepted in the nonblocking backend, but was missing from the specification as well as missing in the implementations of other backends.The following bugs were encountered and fixed with this MR:
Found one more minor issue in nonblocking, now fixed -- re-running unit tests excluding the LPF ones.
Closes issue #261 .
Closes issue #305 .
dense
descriptordescriptor
template parameter in theeWiseApply
andeWiseLambda
functions