rah*_*ulk 7 parallel-processing makefile compilation linux-kernel gnu-parallel
我一直在编译一个".c/.c ++"代码,需要1.5小时才能使用"make"命令在4核心机器上编译.我还有10台机器可以用来编译.我知道"make"中的"-j"选项,它在指定数量的线程中分配编译.但是"-j"选项仅在当前机器上分配线程,而不是在网络中连接的其他10台机器上分配线程.
我们可以使用MPI或其他并行编程技术,但我们需要根据并行编程语言重写"MAKE"命令实现.
有没有其他方法可以利用其他可用的机器进行编译?谢谢
是的,有: distcc.
distcc是一个程序,用于在网络上的多台机器上分发C或C++代码的编译.distcc应始终生成与本地编译相同的结果,易于安装和使用,并且通常比本地编译快两倍或更多倍.
与其他分布式构建系统不同,distcc不需要所有机器共享文件系统,具有同步时钟或安装相同的库或头文件.机器可以运行不同的操作系统,只要它们具有兼容的二进制格式或交叉编译器.
默认情况下,distcc通过网络为每个作业发送完整的预处理源代码,因此志愿者机器所需要的只是他们运行distccd守护程序,并且他们安装了适当的编译器.
关键是你仍然保留你的单个make,但gcc正确排列文件(运行预处理程序,标题,...本地),但安排编译通过网络对象代码.
我过去曾经使用它,它很容易设置 - 并且可以帮助您完全掌控自己的情况.
| 归档时间: |
|
| 查看次数: |
1080 次 |
| 最近记录: |