LoginSignup
1
0

More than 3 years have passed since last update.

distcc で分散ビルドしたいが多コア環境ではうまくいかないのメモ

Posted at

環境

  • Ubuntu 18.04, 20.04 混在
  • clang コンパイラ
  • Ryzen 16 コアマシン x 2

設定

distccでビルドを速くする
https://mongonta.com/f281-short-buildtime-with-distcc/

あたりを参考にして設定するだけです.

njobs が少ない

/etc/default/distcc で JOBS="32" とかにしているが,

distcc -j とすると, 16 コア(32 threads)な CPU なのに 6(メインノードを localhost で指定) や 8(メイン, クライアントそれぞれを IP 指定) としか出ない.
ninja -j32 とかしても 8 jobs(8 プロセス) に制約される.

どうも distcc のデザイン自体が古いようで, 多コアな環境に対応していないっぽい?ようです. :cry:

localhost だと 2 に制限されるのはここですね.

結論

なんか多コアでビルドする例もインターネットに無いようですし, 多コア向け distcc の開発もそんなに活発ではないようですので, 多コアでビルドしたい場合は IncrediBuild などの商用なツールを使ったほうがいいのかもしれません.
(あとはネットワークも 10 GbE or InfiniBand にしないとファイルの転送がボトルネックになりそう)

16 ~ 32 コアとかだと llvm みたいな大きめな C++ プロジェクトでも 7 分くらいで終わるので, ビルド時間が開発に大きなインパクトを与えるのでなければ, 無理して distcc で分散して早くする必要が無いというのもありそうです.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0