This article provides a footnote for the actual state of using OpenBSD as a build machine with a high number of CPU cores.
To perform a test case, the net/tdesktop-6.1.3 port was built,
selected because it possesses sufficient complexity to load the system
for several minutes, as opposed to the hours required by www/chromium.
Tests were performed on an AMD EPYC 7502P 32-Core Processor (2500 MHz) with 128 GB of RAM and a single SSD, which reads as Micron 5200 MTFD, on the kernel version:
kern.version=OpenBSD 7.8-beta (GENERIC.MP) #31: Wed Sep 10 21:40:01 MDT 2025
deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
Each test execution involved the commands: make clean; make configure; time make build MAKE_JOBS=X, where X denotes the number of parallel
jobs, allowing clean build time measurement as follows:
| jobs | real time | user time | system time |
|---|---|---|---|
| 1 | 276m53.83s | 256m32.71s | 18m49.09s |
| 2 | 142m47.23s | 263m09.67s | 20m11.75s |
| 4 | 74m01.92s | 266m53.64s | 23m00.65s |
| 8 | 38m31.42s | 271m14.37s | 25m44.12s |
| 12 | 26m54.55s | 273m36.58s | 28m27.56s |
| 16 | 21m09.12s | 274m23.38s | 31m49.76s |
| 24 | 15m50.98s | 276m05.34s | 40m20.67s |
| 32 | 14m15.87s | 297m29.70s | 54m54.61s |
| 48 | 14m14.88s | 372m59.95s | 90m57.23s |
| 64 | 14m11.65s | 410m18.70s | 168m53.98s |
Utilizing more than 32 jobs yields no practical benefit, as the real
time improvement becomes negligible while system time increases
dramatically.
Subsequently, the same tests were performed on an AMD Ryzen 9 7950X3D 16-Core Processor (4200 MHz) with 192 GB of RAM and two NVMe in RAID 1 (mirror), which reads as NVMe KIOXIA KCD8XRUG1 0105, on the same
kernel. This machine is approximately twice as fast, measured as
follows:
| jobs | real time | user time | system time |
|---|---|---|---|
| 1 | 135m58.01s | 127m25.92s | 7m47.18s |
| 2 | 69m39.49s | 130m02.55s | 8m19.45s |
| 4 | 36m28.50s | 134m09.79s | 8m59.83s |
| 8 | 19m20.34s | 138m38.84s | 11m00.53s |
| 12 | 13m56.10s | 144m28.11s | 12m53.58s |
| 16 | 12m08.71s | 160m20.16s | 14m48.17s |
| 24 | 10m45.70s | 202m18.02s | 19m19.03s |
| 32 | 9m45.18s | 235m19.81s | 24m12.17s |
For a small number of concurrent jobs, the speed enhancement is approximately twofold. However, as the number of jobs approaches the core count limit, the enhancement diminishes to approximately one-third, demonstrating diminishing returns from increased parallelization.
Furthermore, complete builds of all ports from OpenBSD 7.8 were executed
with /usr/ports/pobj placed on different file systems:
| FS | real time |
|---|---|
mfs 1 | 1 day 22:43:01 |
ffs | 1 day 23:08:31 |
tmpfs2 | 1 day 19:31:09 |