You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unlike microbenchmarks, whose results become less accurate when parallelized due to resource contention, there is no reason not to run an ML benchmark suite in parallel. We should give an example of how to do that in the docs, or even make that the default (think something like make -j $N).
Maybe we can get started on a single MP backend, like multiprocessing or joblib.
Bonus: It could be wise to restructure (read: drop) the BenchmarkRunner before this, and instead give the collection and run loop APIs as stateless functions, which is then fairly easy to parallelize over.
The text was updated successfully, but these errors were encountered:
This also has implications for our benchmark structuring recommendations. In the case of a multiprocessing approach, it might be best to structure benchmarks per-algorithm (model) and send one model's entire benchmark suite to one Python process to improve memory efficiency.
On the other hand, this clashes with our approach for parametrizing over a model input value in a benchmark, which we advertise as a best practice for avoiding code duplication.
From a conversation with @janfb.
Unlike microbenchmarks, whose results become less accurate when parallelized due to resource contention, there is no reason not to run an ML benchmark suite in parallel. We should give an example of how to do that in the docs, or even make that the default (think something like
make -j $N
).Maybe we can get started on a single MP backend, like
multiprocessing
orjoblib
.Bonus: It could be wise to restructure (read: drop) the
BenchmarkRunner
before this, and instead give the collection and run loop APIs as stateless functions, which is then fairly easy to parallelize over.The text was updated successfully, but these errors were encountered: