google / fuzzbench

FuzzBench - Fuzzer benchmarking as a service.

Home Page:https://google.github.io/fuzzbench/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use private pools for faster builds

jonathanmetzman opened this issue · comments

FuzzBench is currently bottlenecked on 30 concurrent builds.
We should aim to do all builds in parallel by using private pools like we do in oss-fuzz.
https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool

I think this would be an easy early issue as experiment/builder.py can be run locally by passing the right env vars.
@Navidem @Alan32Liu do you want to try this?
CC @oliverchang

I did this in #1523 but still need to document it/make configurable for open source users.

I can probably help with it today : )

Awesome thanks! (this isn't urgent btw).
I'd stop hardcoding this https://github.com/google/fuzzbench/blob/master/experiment/build/gcb_build.py#L34 and instead use a value passed in the yaml config.
Actually, that config can be optional and if they don't provide one dont pass the worker pool arg: https://github.com/google/fuzzbench/blob/master/experiment/build/gcb_build.py#L87
Also we should update the number of concurrent builds to be configurable (default to 30 maybe) https://github.com/google/fuzzbench/blob/master/experiment/build/builder.py#L44 since this will be extremely project dependant
Finally, we should update our experiment-config to support these new options https://github.com/google/fuzzbench/blob/master/service/experiment-config.yaml

Working on this now, the main blocker is that I am not sure how to pass values from the config file to gcb_build.py.
I guess I will let read_and_validate_experiment_config() parse that value first, but not sure what is the best way to access that config in gcb_build.py.
Will continue on this later/next week.

This is done now.