Мы используем Zed Builds и Bugs для этого, и это очень хорошо работает для нас. Существует один центральный сервер, на котором вы настраиваете свое определение сборки. Затем для каждого «шага» в полной сборке вы можете определить, на каком сервере будет выполняться этот «шаг». У нас есть шаги, которые выполняются: Win32, Linux64, Linux32, HP, AIX, Solaris, и даже шаги, которые распространяются по всему миру для удаленного выполнения.
Каждый из шагов может быть настроен для параллельной или последовательной работы, поэтому, когда HP, AIX, Solaris и Linux делают одно и то же, они могут работать параллельно, и продолжение Win32 будет ждать, пока все заканчивается, прежде чем продолжить.
Вы также можете настроить дочерние процессы сборки, а затем запустить их из "основной" сборки, чтобы можно было создавать более сложные потоки сборки, которые будут работать независимо друг от друга, но все они связаны друг с другом через определение основной сборки.
Это не бесплатно, но время, которое оно спасло нас (особенно меня), многократно окупило стоимость программного обеспечения.