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

Potential lack of parallelism with std::async and .get() #9

Open
tabiosg opened this issue Apr 1, 2024 · 2 comments
Open

Potential lack of parallelism with std::async and .get() #9

tabiosg opened this issue Apr 1, 2024 · 2 comments
Assignees

Comments

@tabiosg
Copy link

tabiosg commented Apr 1, 2024

My peers and I looked through the code and noticed that the .get() was placed immediately after the async. This likely means that there is only one thread that is doing useful work despite there being many threads made (all the other threads are blocking on the .get().

This may be an issue because this implementation is not fully using threads to its advantage.

R_true = future.get();

@luigicapogrosso
Copy link
Owner

Dear @tabiosg, thank you. We will thoroughly review the information you gave us and update you.

@luigicapogrosso luigicapogrosso self-assigned this Apr 2, 2024
@bluebandit21
Copy link
Contributor

Something that might be helpful :)

-- Try looking at the CPU utilization when running HermesBDD on a large test case
(I found 10x10 nqueens as a nice balance between being large and actually finishing in a sane amount of time)

When you do so, the CPU utilization for me is around ~102%, when it should be n00% where n is the number of cores I have available.

If further technical details might be helpful for you all, please let us know!

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

No branches or pull requests

3 participants