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:
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 |
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:
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 |
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.