連休明けて、引き続き VS2008 です。
今度は IDE 上での MP Build を試しています。
ソース単位で並列にコンパイルできます。
Project の Property から下記の設定をしています。
C/C++ → Code Generation
Enable Minimal Rebuild が「Yes (/Gm)」になっていたら「No」へ
(他にも /MP 非互換オプションがあればはずす必要あり)
C/C++ → Command Line
Additional options: に「/MP4」を追加
・Pentium4 3.6GHz×2×HT (=4) での比較
(MP無し) 52秒→28秒 (/MP4)
・Core2 Duo 2.4GHz での比較
(MP無し) 30秒→18秒 (/MP2)
厳密な条件ではないですが、VS IDE 上でも簡単に試すことができました。
Makefile で依存関係を記述すると 1ファイル単位のコンパイルになって
しまうので、/MP 指定もあまり有効に活用されません。
こちらの方が簡単に結果を出せるようです。
ソースファイル 12本ほどのプロジェクトです。Vista x64 使用。
やはり何度も build を繰り返していて、ほぼファイルが全部キャッシュ
された状態で比較しています。
よって条件によってはここまで差が出ないと思われます。
Core2 Duo でも /MP4 の方がさらに1~2秒よい結果となりました。