Skip to content

Instantly share code, notes, and snippets.

@takeutch-kemeco
Last active March 12, 2022 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takeutch-kemeco/f4742d1fdd4f2242e68bb413fdb13728 to your computer and use it in GitHub Desktop.
Save takeutch-kemeco/f4742d1fdd4f2242e68bb413fdb13728 to your computer and use it in GitHub Desktop.

Q: ラズパイ4で、廉価なデスクトップ機と同等の「コンパイル速度」を実現するには、何台のラズパイ4で分散コンパイルすれば可能か?

比較するパソコン

ID Dsk Pi4 Pi3
種類 廉価デスクトップ機(2〜3万で自作) Raspberry Pi 4 model B (4GB) Raspberry Pi 3 model B
CPU AMD Ryzen3 2200G 3.5GHz ARM cortex-a72 2.0GHz ARM cortex-a53 1.3GHz
コア数 4コア 4コア 4コア
Memory DDR4-SDRAM 32GB DDR4-SDRAM 4GB DDR2-SDRAM 1GB
電源 400W(たぶん賞味は150W程度) 15W 12.5W
System linux (x86_64) linux (aarch64) linux (aarch64)

測定内容

各パソコンで、gccを使ったビルド時間を測定:

  • ビルド対象のアプリ: GNU Coreutils-9.0
ケース コア数 コマンドライン
デスクトップ機、Pi4、または Pi3 単体の場合 1コア使用 ./configure && time make -j 1
4コア使用 ./configure && time make -j 4
Pi4 を 2台 で分散コンパイルする場合 8コア使用 CC="distcc gcc" ./configure && time make -j 8
Pi3 を 2台 で分散コンパイルする場合 8コア使用 CC="distcc gcc" ./configure && time make -j 8
Pi4 を 2台 + Pi3 を 2台で分散コンパイルする場合 16コア使用 CC="distcc gcc" ./configure && time make -j 16

測定結果

種類 コア数 ID ビルド所要時間 備考
デスクトップ機 1コア Dsk_1c 64秒
4コア Dsk_4c 17秒
Pi4 1コア Pi4_1c 434秒
4コア Pi4_4c 152秒
8コア Pi4_8c 118秒 Pi4 x2台 分散コンパイル
Pi3 1コア Pi3_1c 814秒
4コア Pi3_4c 282秒
8コア Pi3_8c 154秒 Pi3 x2台 分散コンパイル
Pi7 (※) 16コア Pi7_16c 97秒 Pi4 x2台 + Pi3 x2台 分散コンパイル

※.便宜上、名前をPi7とします。


結論

「ラズパイ4を2台 + ラズパイ3を2台」を一気に同時に動かして分散コンパイルしても、型落ちRyzenの1コアだけのコンパイル速度にすら負ける………orz

Pi4の 36 コア  =  廉価デスクトップ機の 4 コア

なので、近い速度でコンパイルするには、

9台のPi4で分散コンパイル  =  1台の廉価デスクトップ機でコンパイル

なお、Pi4を9台動かせば、消費電力は135Wくらい行くはず。 この消費電力はデスクトップ機と大差ない。 つまりエコにもならない。

ちなみに、Pi4(4GBモデル)の最近の価格は、1台8,000円くらいする。 9台なら 72,000円。 つまり別段お得でもない。(むしろ高い。72,000円あれば、今回の2,3倍高速なPCを自作できそう…)

以上

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment