Optimizing Xcode Parallelism
Xcode builds try to run multiple compilations concurrently, typically limited by the number of cores on the Initiator running the build. When using Incredibuild for Mac, the number of cores available can grow significantly, and in some projects the parallelism that Xcode creates by default is not high enough. Add the option-parallelizeTargets to your xcodebuild command to increase the parallelism further. You can test your build with and without this option to investigate it’s effect.
Optimizing Network Utilization
Incredibuild for Mac transfers data between the Initiator and the Helpers. In some cases the network may become a bottleneck for the build’s acceleration. Therefore, we recommend using a 10GbE network. If your network is 1GbE, or if you build over VPN, we recommend enabling network compression by adding the–compress 1 option to the ib_console command.
Optimizing Initiator CPU Utilization
In some projects, when there is high task parallelism, Incredibuild for Mac may cause high CPU consumption on the Initiator. If the number of Helper cores available for your build exceed the number of Initiator cores significantly, then the Initiator CPU may become the bottleneck for your build. If the Build Monitor shows Helper cores that are underutilized (i.e. there are blank gaps between the tasks running on these cores), but the Initiator cores are fully utilized (i.e. the CPU utilization graph is steadily at 100%), then it may be beneficial to instruct Incredibuild for Mac to reserve the Initiator cores for tasks that are not distributable (tasks that can only run locally). This may free up CPU cycles on the initiator and thus improve the efficiency and utilization of your Helper cores. To do this add the--force-remote option to the ib_console command.