Incredibuild 架构与术语

Incredibuild 架构

Initiator Agent:启动构建和向其他 Agent 请求帮助的机器。衍生任务(作为这些执行的一部分)可能会由 Incredibuild 分发至可用 Agent(作为 Incredibuild 池的一部分)的各种空闲 CPU 上,从而提升了执行速度。此外,所有 Initiator Agent 均另可作为 Helper Agent。

Helper Agents:帮助 Initiator Agent 运行工作负载的 Agent。Helper Agent 的数量越多,您就可以接入更多的算力。用作 Helper 的机器,只需要安装 Incredibuild agent 即可,无需在仅用作 Helper 的机器上安装加速软件,或是复制您的源代码或搭建您的工具链路。

Coordinator:Coordinator 管理 Agent 之间的通信,将分布过程变得更方便,并管理常规设置。每个环境必须有一个 Coodinator。这个软件可以在任意 Agent 上安装,或者可以作为一个专用的机器。

如果您想让一台机器参与帮助运行工作负载,那需要在机器上安装一个 Incredibuild Agent。任何有正确许可证的 Agent 都可以作为一个特定的构建的 Initiator 或 Helper。

作业和任务

作业是指Incredibuild所执行的整个进程树。作业在Initiator上分解为任务。

  • 任务是在进程树内的操作系统级别执行的。

  • 任务还可以调用子任务,任务和子任务都可以分布到远端机器上运行。

  • 任务表示由Initiator或Helper Agent执行的进程。

示例:在Visual Studio中,由Incredibuild远程执行的任务通常为编译任务。在C++编译中,cl.exe是一个由Incredibuild发布并远程执行的编译进程。由于在执行完全重建时有许多编译任务,因此 Incredibuild 可能会分布数百个编译任务以在远端机器(Helper)上并发执行,从而大大加快整个编译执行。