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

[Bug-Candidate]: Maximize CPU output when running fuzzer #1207

Open
0xicingdeath opened this issue Mar 12, 2024 · 14 comments
Open

[Bug-Candidate]: Maximize CPU output when running fuzzer #1207

0xicingdeath opened this issue Mar 12, 2024 · 14 comments

Comments

@0xicingdeath
Copy link

0xicingdeath commented Mar 12, 2024

Describe the issue:

When deployed on a 16 core machine, with 15 workers, the CPU usage seems to be maxed at about 40-50%. When deployed on an 8 core machine, with 7 workers, CPU usage has only ever hit a max of around 65%.

Code example to reproduce the issue:

Follow instructions for reproduction here, and if testing on cloudexec, then run make ec (for echidna-cloud) or make el (echidna-local).

https://github.com/curvance/Curvance-CantinaCompetition/tree/CodeFAQAndAdjustments/tests/fuzzing

Version:

Echidna 2.23 & previous

Relevant log output:

No response

@ggrieco-tob
Copy link
Member

Can you check if this a regression from a previous version? I think @elopez reproduced this with the current version as well.

@0xicingdeath
Copy link
Author

This applies to previous builds as well – or at least the branches for fixes on Curvance between 2.2.2 and 2.2.3.

@aviggiano
Copy link

When deployed on a 32-core machine, with 32 workers, the CPU usage does not surpass 10%

Screenshot 2024-05-06 at 19 04 43

@elopez
Copy link
Member

elopez commented May 6, 2024

@aviggiano hi! what version are you testing with? Can you check if there is any improvement with a build from PRs #1243 or #1245?

@aviggiano
Copy link

hi @elopez
I'm using 2.2.3
I'll test with those PRs to see if there's an improvement

@ggrieco-tob
Copy link
Member

@aviggiano any updates? You can also re-test with the latest master since we merged additional fixes for this

@aviggiano
Copy link

Hey
Sorry, I didn't test it because I'd need to merge the 2 PRs locally. Now that's on master it's easier for me to test this. I'll do this today.

@ggrieco-tob
Copy link
Member

Actually #1245 is not merged yet, but I think we can quickly rebase it on top of master (@elopez) so you can get a binary, otherwise, testing with master perhaps it is enough to see some improvement.

@aviggiano
Copy link

Thanks,
Just to rectify, I'll get back with data, not today, but soon because I need to spin a big instance on AWS and I'll only get back to that fuzzing task next week.

@ggrieco-tob
Copy link
Member

Personally, I'm getting better result on testing master on a Ubuntu server. With 14 workers, I'm getting a utilization close to 1100% (so around 11 cores).

@aviggiano
Copy link

Hey

Much better than before! But still not 100% 🤔

Screenshot 2024-05-20 at 19 35 21

I'm using this build https://github.com/crytic/echidna/actions/runs/9095717896/job/24999535164?pr=1245

@pgoodman
Copy link

Can you make num workers 2 times the number of cores? :-P

@ggrieco-tob
Copy link
Member

@aviggiano can you try again using master? We merged the GHC 9.6 support, so perhaps that will help.

@aviggiano
Copy link

Hey @ggrieco-tob sorry but I'm OOO for the month, I won't be able to test this for some time

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

5 participants