![并行制造的最佳硬件/软件解决方案?](https://linux22.com/image/485041/%E5%B9%B6%E8%A1%8C%E5%88%B6%E9%80%A0%E7%9A%84%E6%9C%80%E4%BD%B3%E7%A1%AC%E4%BB%B6%2F%E8%BD%AF%E4%BB%B6%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%9F.png)
我们有一个基于 Linux 的构建系统,其中一个构建由许多不同的嵌入式目标组成(相应地启用了不同的驱动程序和功能集),每个构建都使用另一个单独的主源树构建。
我们不想尝试将基于 make 的系统转换为更适合多进程的系统,而是想找到同时为所有这些目标启动构建的最佳方法。我不确定的是如何获得最佳性能。
我考虑过以下可能的解决方案:
- 大量个人构建机器。缺点:大量共享代码副本,或使用(缓慢的)共享驱动器。需要维护更多系统。
- 数量较少的多处理器计算机(可能是双四核),具有快速条带化 RAID 本地存储。缺点:我不确定它将如何扩展。似乎容量会成为瓶颈,但我不知道 Linux 现在处理 SMP 的效果如何。
- 类似的 SMP 机器,但带有运行 VMware 的虚拟机管理程序或 Solaris 10。这很愚蠢吗?还是会提供一些调度优势?缺点:没有解决存储瓶颈问题。
我打算坐下来尝试这些可能性,但我想检查一下我是否遗漏了什么。谢谢!
答案1
您正在运行make -j
和创建并行作业吗?Sun 对此有一份很好的指南。
虚拟机管理程序的想法有点愚蠢。您需要速度和 I/O 性能,而一台 VMware 服务器会剥夺您的这些性能。您可能希望设置尽可能多的核心和磁盘。这将是您构建系统的两个真正限制因素。
有什么原因导致您不能以串行方式运行它们,而只能并行运行?选择最简单的路线,而不是最容易的路线。
供将来参考:一份很好的清单可供选择的方案。
答案2
虚拟化并使用模板,一个代码库,很多选项 - 大胜利:)
答案3
您可以虚拟化并使用高速磁盘或使用固态存储。不过固态存储的成本可能是一个限制因素。此外,固态存储的数据容量也存在限制。
在这种情况下,最好使用快速系统和良好的虚拟化软件。这很简单,而且成本低廉。