OpenAstroTracker-Firmware icon indicating copy to clipboard operation
OpenAstroTracker-Firmware copied to clipboard

Feature/js/parallelize matrix build

Open julianneswinoga opened this issue 2 years ago • 0 comments

Linking is a single-threaded task it does not effectively utilize multicore processors. By changing matrix_build.py to instead create N projects which each will build a solution in parallel we can avoid the single-core linking bottleneck. This scales very well with the number of processors. Building mksgenlv21:

Host old time new time
Personal server (N=40) 30m23s 6m29s
Laptop (N=8) 14m10s 6m54s

Our current GitHub Actions workflow only runs on dual core machines (N=2), so the speedup is marginal (but tangible) but this prepares us well for if we want to run the build process on a more powerful CI.

env old time new time
mksgenlv21 14m47s 9m55s
mksgenlv2 18m10s 10m9s
mksgenlv1 4m30s 3m13s
esp32 3m32s 3m3s
ramps 15m26s 9m55s

julianneswinoga avatar Dec 13 '22 15:12 julianneswinoga