Parallel processing 多主机上的Gnu make?

Parallel processing 多主机上的Gnu make?,parallel-processing,makefile,clearcase,gnu-make,Parallel Processing,Makefile,Clearcase,Gnu Make,在clearmake中有一个传递主机名的选项,以便在这些主机上运行多个作业,但在gmake中没有传递多个主机的选项,尽管可以传递多个作业。 我想知道如何模拟clearmake功能 gnumake可以在一台机器上运行多个进程(请参见-j选项),但它没有设置为跨多台机器执行并行make,我认为这正是您想要做的。clearmake有一个-C gnu选项,如果您刚刚了解gnu make的一些特性(我没有使用此选项的经验,但在documentation.YMMV中注意到了它),它将使它模拟gnu make

在clearmake中有一个传递主机名的选项,以便在这些主机上运行多个作业,但在gmake中没有传递多个主机的选项,尽管可以传递多个作业。
我想知道如何模拟clearmake功能

gnumake可以在一台机器上运行多个进程(请参见-j选项),但它没有设置为跨多台机器执行并行make,我认为这正是您想要做的。clearmake有一个-C gnu选项,如果您刚刚了解gnu make的一些特性(我没有使用此选项的经验,但在documentation.YMMV中注意到了它),它将使它模拟gnu make

正如sfjac所写,gnumake不支持跨机器分发进程。 所以你必须自己建立这样的支持

实现这一点的一种方法是将更改为可以接受shell命令并在不同主机上执行它的内容,并选择要使用的主机,以便以合理的方式分配全部工作。 您可以编写一个脚本来调用
ssh
,并进行一些簿记来选择主机

另一个问题是如何跨机器传递先决条件和结果。 让我们假设Makefile所做的一切都是查看文件并根据其内容创建其他文件

一种选择是将所有内容放在共享文件系统上,但这可能会产生同步问题(取决于您如何共享文件以及如何处理此类问题)。另一种选择是让每个主机使用本地文件系统,并在执行每个命令之前和之后(但仅限于命令读取或写入的文件)以某种方式镜像它(使用?)。clearmake如何解决这个问题

因此,使其可靠工作的难易程度很大程度上取决于生成文件及其配方的复杂程度


我注意到存在一些所谓的工具,它们可能会让生活更轻松,也可能不会让生活更轻松——我从未使用过它们。

对于那些希望在多个系统中分发使用标准make工具(如GNU make)运行的构建的人来说,通常的答案是使用类似的工具。

另一种替代方法是[makeflow]()。它允许对许多HPC基础设施(如SLURM、Torque)运行make(简化)文件。

最近的GNU make 4.0可以用Guile编写脚本;也许您可以使用一些狡猾的代码编写缺少的功能的脚本。