graysky2 / distccd-alarm

1 stars 0 forks source link

distccd-alarm

Toolchain and systemd services to use x86_64 volunteers to help build Arch ARM stuff.

Real speed gains compiling on Arch ARM can be realized with a single x86_64 volunteer.

The following examples illustrate that gains for 2-3x can be realized when compiling ARM code using a single x86_64 volunteer with distcc. The two compile tasks shown below used a RPi4 host alone, then the RPi4 host with a single x86_64.

For the purposes of the experiments, two different x86_64 volunteers were used:

Linux kernel

Building kernel v5.4.75 (make bzImage only). The table below summarizes the runs compiling alone and with the x86_64 node. The times shown are the mean of 4 runs. The % change is relative to the time to compile alone. Using a single x86_64 node decreases compilation time by 2.1-2.6x depending on the CPU power of the volunteer tested.

Nodes Time (sec) % change
RPi4 alone 1,341.3 ± 1.1 -
RPi4+mars 516.2 ± 0.4 260.0
RPi4+mercury 639.0 ± 0.9 210.0

Ffmpeg

Building ffmpeg v4.3.1, the table below summarizes the runs compiling alone and with the x86_64 node. The times shown are the mean of 4 runs. The % change is relative to the time to compile alone. Using a single x86_64 node decreases compilation time by by 2.1-3.3x depending on the CPU power of the volunteer tested.

Nodes Time (sec) % change
RPi4 alone 757.1 ± 0.7 -
RPi4+mars 229.4 ± 5.0 330.0
RPi4+mercury 356.6 ± 0.1 212.3

Download a pre-built package

Arch ARM supplies pre-built toolchains for armv7h and armv8 (aarch64) and the distccd-alarm package in the AUR supplies these plus systemd service units. Download and install these on your x86_64 volunteer.

Links