Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply implementation + usage in tc microbenchmark #142

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

elgarten
Copy link
Contributor

Description

Important -- Read Before Creating a Pull Request

PR description

This PR write a high-level description of your pull request

Checklist

  • The additions follow the code standards in the developer guide.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

AdityaAtulTewari and others added 6 commits July 29, 2024 18:18
Added a shared WaitGroup between vertex doAll and the nested, per vertex,
edge doAll. Original code would hang because of the separate wait groups:
after enqueueing a doAll in edge_tc_couting, harts wait for it to complete
(tc_algos.cpp:42). However, this occurs on every hart because of the outer
doAll in tc_no_chunk, therefore every hart is waiting and none is available
to complete the work being waited on. When using one combined wait group,
the outer doAll tasks are able to complete after enqueuing, but before
completion of, the inner doAll tasks. Thus, harts are freed to complete the
inner doAll and therefore forward progress.
@AdityaAtulTewari AdityaAtulTewari marked this pull request as draft August 22, 2024 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants