crytic/echidna

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

0xicingdeath opened this issue · 14 comments

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

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

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

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

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

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

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

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.

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.

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.

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).

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

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

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

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