Skip to content

Conversation

@julianneswinoga
Copy link
Member

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

andre-stefanov
andre-stefanov previously approved these changes Dec 13, 2022
@julianneswinoga julianneswinoga force-pushed the feature/js/parallelize-matrix-build branch 2 times, most recently from 2edb3b2 to b228950 Compare December 14, 2022 16:12
@julianneswinoga julianneswinoga force-pushed the feature/js/parallelize-matrix-build branch from b228950 to 20a4bc1 Compare February 8, 2025 20:38
Copy link
Member

@christian-kardach christian-kardach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@ClutchplateDude ClutchplateDude merged commit 9e56b11 into OpenAstroTech:develop Feb 10, 2025
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants