This brief article provides a footnote for an actual state of using OpenBSD as build machine with a high number of CPU cores.

In order to perform a test case, the net/tdesktop-6.1.3 port was built, on account of the fact that it possesses sufficient complexity for the loading of the system over a period of 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 is read as a 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

The execution of each test involved the commands: make clean; make configure; time make build MAKE_JOBS=X , where X denotes the number of parallel jobs. This allows the clean build time to be measured as follows:

jobsreal timeuser timesystem time
1276m53.83s256m32.71s18m49.09s
2142m47.23s263m09.67s20m11.75s
474m01.92s266m53.64s23m00.65s
838m31.42s271m14.37s25m44.12s
1226m54.55s273m36.58s28m27.56s
1621m09.12s274m23.38s31m49.76s
2415m50.98s276m05.34s40m20.67s
3214m15.87s297m29.70s54m54.61s
4814m14.88s372m59.95s90m57.23s
6414m11.65s410m18.70s168m53.98s

It is apparent that utilising a greater number of jobs than 32 is impractical.

Here, it’s clear that using more than 32 jobs doesn’t make any sesnse.

Next, the same tests were performed on an AMD Ryzen 9 7950X3D 16-Core Processor (4200 MHz) with 128 GB of RAM and two NVMe in the RAID 1 (mirror) which reads as NVMe KIOXIA KCD8XRUG1 0105, on the same kernel. This machine roughly twice fast and it is measured as:

Subsequently, the same tests were performed on an AMD Ryzen 9 7950X3D 16-Core Processor (4200 MHz) with 128 GB of RAM and two NVMe in the RAID 1 (mirror), which reads as NVMe KIOXIA KCD8XRUG1 0105, on the same kernel. The machine in this case is approximately twice as fast, and this is measured as follows:

jobsreal timeuser timesystem time
1135m58.01s127m25.92s7m47.18s
269m39.49s130m02.55s8m19.45s
436m28.50s134m09.79s8m59.83s
819m20.34s138m38.84s11m00.53s
1213m56.10s144m28.11s12m53.58s
1612m08.71s160m20.16s14m48.17s
2410m45.70s202m18.02s19m19.03s
329m45.18s235m19.81s24m12.17s

In this case, for a small number of concurrent jobs, the speed enhancement is approximately twofold. However, as the number of jobs approaches the limit, the enhancement diminishes to approximately one-third.