パッケージビルドを効率化する際に下記問題、疑問が生じたのでご教示頂きたいと考えております。
- マルチプロセスクック時にCookWorkerの一つで下記のようなログのRemainが全く減らない、クックが進行しない状況に陥ることがあります。シングルプロセスでは全く問題がなく、低頻度ではありますがマルチプロセスクックを利用すると分割数2でも4でもほぼ同様の頻度で発生します。発生した場合でも他のCookWorkerは問題なく進行するようです。ハードウェアメトリクス上もシングルプロセス時との差異は特に見受けられませんでした。マルチプロセスクック時特有の問題はありますでしょうか?
- LogCook: Display: [CookWorker 0]: Cooked packages 99999 Packages Remain 11111 Total 111110
- UBAについて。プロジェクトでIncredibuildを利用しておりますが、UBAを検証したところIncredibuildエージェントとの同居ができないことを確認しました。
- UBAとIncredibuildを併用することはできない認識で正しいでしょうか?
- UBAとIncredibuild(10を利用)の並列化範囲に差異はあるでしょうか。
ご教示頂けますと幸いです。
お世話になっております。
- マルチプロセスクック時特有の問題はありますでしょうか?
一般的に1つの巨大なアセットをクックするようなケースでは、単一プロセスでクックが行われてクックに時間が掛かるようなケースも想定されますが、UE5.5までにマルチプロセスクック関連のバグを複数修正しているため、可能であればエンジンを更新して最新バージョンのエンジンにおけるクックの状況をご確認頂けますと幸いです。何らかの問題でクックに時間が掛かっているケースも考えられますが、Cooking Insights等で詳細な処理を確認することで、実際に何が起きているかを調べることもできます。また クック時の引数に -CookLoadBalance=Striped を与えることで、通常とは異なるストライプ化された負荷分散アルゴリズムを試すこともできます。
- UBAとIncredibuildを併用することはできない認識で正しいでしょうか?
はい、UBAとIncredibuildの併用はできません。SN-DBSも同様です。
- UBAとIncredibuild(10を利用)の並列化範囲に差異はあるでしょうか。
具体的なパフォーマンスの結果はプロジェクトにも依存するため一概にどちらが良いかを述べるのは難しいですが、私たちの開発段階では UBA の分散ビルドで Incredibuildの分散ビルド時間よりも良い結果が得られたケースもあります。ビルドするケースにもよりますが、 分散ビルドは分散先のCPUまたはI/O、およびネットワーク速度に依存して変わることは想定されます。