首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何并行化可以在多台机器上分发任务的"make“命令

如何并行化可以在多台机器上分发任务的"make“命令
EN

Stack Overflow用户
提问于 2015-09-06 12:41:46
回答 2查看 2.3K关注 0票数 9

我正在编译一个".c / .c++“代码,用"make”命令在4台核心机器上编译需要1.5小时,我还有10台机器可以用来编译。我知道"make“中的"-j”选项,它以指定数量的线程分发编译。但是"-j“选项只在当前机器上分配线程,而不是在网络连接的其他10台机器上分发线程。

我们可以使用MPI或其他并行编程技术,但需要根据并行编程语言重写"MAKE“命令实现。

我们还有其他方法可以利用其他可用的机器进行编译吗??谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-06 13:05:49

是的,有:远距离

distcc是一个程序,用于在网络上的多台计算机上分发C或C++代码的编译。distcc应该始终生成与本地编译相同的结果,安装和使用简单,而且通常比本地编译快两倍或两倍以上。 与其他分布式构建系统不同,distcc不要求所有机器共享文件系统、同步时钟或安装相同的库或头文件。机器可以运行不同的操作系统,只要它们具有兼容的二进制格式或交叉编译器。 默认情况下,distcc通过网络为每个作业发送完整的预处理源代码,因此志愿机器所需的全部内容就是它们正在运行distccd守护进程,并且安装了适当的编译器。

他们的关键是,你仍然保持你的单一制造,但gcc的安排文件适当(运行预处理,头,.),但通过网络将编译安排为目标代码。

我曾经使用过它,它是相当容易设置--并帮助您的确切情况。

票数 7
EN

Stack Overflow用户

发布于 2015-09-25 20:29:13

https://github.com/icecc/icecream

Icecream是由SUSE在distcc的基础上创建的。和distcc一样,Icecream从构建中获取编译作业,并在允许并行构建的远程机器中分发它。但与distcc不同,Icecream使用的是中央服务器,它动态地将编译作业调度到最快的空闲服务器上。这一优势主要是对共享计算机的回报,如果你是x机上的唯一用户,你就可以完全控制它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32423666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档