了解并行计算作业

可在 HPC Pack 群集上运行的最常见并行计算作业类型包括:MPI 作业参数扫描作业任务流作业面向服务的体系结构(SOA)作业,以及 Microsoft Excel 计算卸载 作业。 HPC Pack 提供作业和任务属性、工具和 API,可帮助你定义和提交各种类型的并行计算作业。

在本主题中:

MPI 作业

MS-MPI 是针对 Windows 开发的消息传递接口(MPI)的Microsoft实现,它允许 MPI 应用程序在 HPC 群集上作为任务运行。

MPI 任务本质上是并行的。 并行任务可以采用多种形式,具体取决于应用程序和支持它的软件。 对于 MPI 应用程序,并行任务通常由单个可执行文件组成,该可执行文件在多个核心上运行,进程之间发生通信。

下图演示了并行任务:

三个进程,双向通信

对于运行 MPI 应用程序的任务,任务命令前面必须有 mpiexec:因此,并行任务的命令必须采用以下格式:mpiexec [mpi_options] <myapp.exe> [arguments],其中 myapp.exe 是要运行的应用程序的名称。 mpiexec 命令采用许多参数,可用于控制 MPI 进程放置、网络相关性和其他运行时参数。 有关这些参数的更多详细信息,请参阅 Microsoft HPC Pack 命令行参考

注意

对于并行任务,Windows HPC Server 2008 包含基于 Argonne 国家实验室 MPICH2 标准的 MPI 包。 Microsoft的 MPI 实现称为 MS-MPI,包括启动器 mpiexec、每个节点的 MPI 服务,以及用于用户应用程序开发的软件开发工具包(SDK)。 Windows HPC Server 2008 还支持提供其自己的并行处理机制的应用程序。

有关 SDK 的详细信息,请参阅 Microsoft HPC Pack

有关如何创建单任务或 MPI 作业的信息,请参阅 定义基本或 MPI 任务 - 作业管理器

参数扫描作业

参数扫描作业由同一应用程序的多个实例组成,通常是一个串行应用程序,并发运行,以及输入文件提供的输入,以及定向到输出文件的输出。 输入和输出通常是一组索引文件(例如 input1、input2、input3...、output1、output2、output3...)设置为驻留在单个公共文件夹或单独的公用文件夹中。 任务之间没有通信或相互依赖关系。 任务可能或可能不会并行运行,具体取决于作业运行时群集上可用的资源。

下图演示了参数扫描作业:

四个串行任务、单独的输入和输出文件

有关如何创建参数扫描作业的信息,请参阅 定义参数扫描任务 - 作业管理器

任务流作业

在任务流作业中,一组不同的任务按规定顺序运行,通常是因为一个任务依赖于另一个任务的结果。 作业可以包含许多任务,其中一些任务是参数、一些串行任务和一些并行任务。 例如,可以创建由 MPI 和参数任务组成的任务流作业。 可以通过定义任务之间的依赖关系来建立任务运行顺序。

下图演示了任务流作业:

任务流作业、依赖任务

任务 1 首先运行。 请注意,只有任务 2 和 3 可以并行运行,因为两者都不依赖于另一个任务。 任务 4 在任务 2 和 3 完成后运行。

有关如何创建任务流作业的信息,请参阅 定义任务依赖关系 - 作业管理器

SOA 作业

面向服务的体系结构(SOA)是构建分布式松散耦合系统的方法。 在 SOA 系统中,不同的计算函数打包为称为 服务的软件模块。 服务可以跨网络分布,并由其他应用程序访问。 例如,如果应用程序执行重复的并行计算,则可以将核心计算打包为服务并部署到群集。 这样,开发人员就可以在不重写低级别代码并快速横向扩展应用程序的情况下解决令人尴尬的并行问题。 应用程序可以通过跨多个服务主机(计算节点)分布核心计算来更快地运行。 最终用户在其计算机上运行应用程序,群集节点上执行计算。

客户端 应用程序提供一个接口,供最终用户访问一个或多个服务的功能。 开发人员可以创建群集 SOA 客户端应用程序,以提供对部署到 Windows HPC 群集的服务的访问权限。 在后端,客户端应用程序将包含 服务 任务的作业提交到群集,启动与中转站节点的会话,并发送服务请求并接收响应(计算结果)。 头节点上的作业计划程序根据作业计划策略将资源分配给服务作业。 服务 任务的实例在每个分配的资源上运行并加载 SOA 服务。 作业计划程序尝试根据服务请求数调整资源分配。

注意

如果客户端创建了持久会话,代理将使用 MSMQ 存储所有消息。 代理存储的响应可以随时由客户端检索,即使在有意或无意断开连接之后也是如此。

下图演示了 SOA 作业如何在群集上运行:

SOA 作业如何在 HPC 2008 R2 群集上运行

有关为 HPC 群集创建 SOA 客户端的详细信息,请参阅 SOA 应用程序和 Microsoft HPC Pack

注意

HPC Services for Excel 使用 SOA 基础结构来帮助将 Excel 计算Microsoft卸载到群集。

Microsoft Excel 计算卸载

HPC Services for Excel 包含在某些版本的 HPC Pack 中,支持许多模型将 Excel 计算卸载到 HPC Pack 群集。 适用于群集加速的工作簿包括可以并行运行的独立计算。 许多复杂且长时间运行的工作簿以迭代方式运行,也就是说,它们在不同输入数据集上多次执行单个计算。 这些工作簿可能包含复杂的 Microsoft Visual Basic for Applications (VBA) 函数或计算密集型 XLL 加载项。HPC Services for Excel 支持将工作簿卸载到群集,或将 UDF 卸载到群集。

Microsoft Excel 2010 通过启用 Excel 2010 UDF 在 Windows HPC 群集中运行,将 UDF 模型扩展到群集。 当受支持的群集可用时,用户可以指示 Excel 2010 使用该群集,方法是选择群集连接器并在“Excel 选项” 对话框中的“高级”选项中指定群集名称。 在群集中,UDF 的工作方式非常类似于传统的 UDF,但计算由一个或多个服务器执行。 关键优势是并行化。 如果工作簿包含对长时间运行的 UDF 的调用,则可以使用多个服务器同时评估函数。 若要在群集上运行,UDF 必须包含在群集安全的 XLL 文件中。

有关详细信息,请参阅 HPC Services for Excel

其他参考

有关可用于定义并行计算作业的作业和任务属性的信息,请参阅:

有关使用 HPC 作业管理器创建、提交和监视作业的信息,请参阅:

有关使用命令提示符窗口或 HPC PowerShell 创建、提交和监视作业的信息,以及有关使用 SDK、SOA 编程模型和 Excel 计算卸载的信息,请参阅本文档集中的其他文章。