ここでいくつかのプログラムをコンパイルしていますが、4つのコアがあります。 make
、cmake
、またはgcc
にすべてのコアまたは影響を与える何かを使用してコンパイルするように指示する方法はありますか?
パッケージでサポートされている場合、-j
フラグを使用して、並列ジョブの実行を許可できます。例:
make -j8
このフラグの詳細については、Stackoverflowの質問 を参照してください。使用可能なコアの数よりも大きい数を渡すと-jのパフォーマンスが向上するのはなぜですか 。
複数のマシンがある場合は、 distcc を試してください。関連するマシンでは、Sudo apt-get install distcc
。ビルドマシンが192.168.1.1であると仮定します。
ヘルパーマシンで、次を実行します。
Sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
ビルドマシンで、configure
またはcmake
を実行する前に、ビルドプロセスに使用するホストを指定する必要があります。オプションで、スラッシュの後に同時ジョブの数を指定します(デフォルトは4):
export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
コンパイラーにdistccを使用させます:
export PATH="/usr/lib/distcc:$PATH"
ここで、configure
またはcmake
アプリケーションを作成し、次を使用してビルドします。
make -j$(distcc -j)
/usr/lib/distcc
をPATHに2回入れた場合、失敗することに注意してください。 PATH
で/usr/lib/distcc
を1回だけ設定してください。
詳細については、 distcc(1) および distccd(1) のマニュアルページを参照してください。