Better CPU utilisation for wide systems during analysis #889
Labels
complex
Issues that require good knowledge of tlsfuzzer internals
enhancement
new feature to be implemented
help wanted
Feature request
Is your feature request related to a problem? Please describe
When running medium sized analysis (n=2M, k=34), on large systems (128 cores or more), there's significant amount of idle time (10-20% of wall clock time the CPU isn't 100% utilised). It would be nice if the processing was more aggressive in using the CPUs
This is caused by the analysis script creating new
mp.Pool
for every statistic it calculates:tlsfuzzer/tlsfuzzer/analysis.py
Lines 392 to 396 in a2d1236
tlsfuzzer/tlsfuzzer/analysis.py
Lines 787 to 791 in a2d1236
Describe the solution you'd like
The script should create one Pool of workers for the whole analysis and then keep reusing them.
The data between the main thread and the workers should be passed around through memory mapped files (that should also help with memory pressure on systems with little memory compared to CPU count)
Describe alternatives you've considered
Alternative is just to wait longer or get larger machines, but then the inefficiencies become more and more apparent.
Additional context
n/a
The text was updated successfully, but these errors were encountered: