使用OpenLava运行MPI作业
介绍
OpenLava是一个开源的,IBM Platform LSF工作量兼容管理器,可以安排串行和并行作业。MPI(消息传递接口)是高性能计算(HPC)应用中广泛使用的编程接口,用于并行化大规模问题的执行。有多个常用的MPI实现。本文档介绍如何使用OpenLava运行MPI应用程序。
大多数MPI实现支持与常用工作负载管理器的集成。在大多数情况下,这些集成使用工作负载管理器特定的远程任务启动器来启动和监视在集群主机上执行的MPI任务。此方法的主要目标是使工作负载管理器能够跟踪和控制组成MPI作业的进程。一些工作负载管理器,如IBM Platform LSF,使用这样的工具来跟踪MPI任务的CPU和内存使用。
在理想状态下,启动和管理MPI任务的过程将在所有工作负载管理器和MPI实现中保持一致。在实际情况中,事情并不是那么简单。考虑到创新的速度,流行的开源MPI实现(如OpenMPI)和不同版本的工作负载管理器的快速发布周期,HPC环境本质上很复杂,有许多移动部件,这对并行工作负载尤其如此。通过简化方法,使MPI作业在工作负载管理器的控制下可靠且可预测地运行,可以大大有助于缓解一系列潜在问题,使HPC环境更具可靠性。
在OpenLava中运行MPI作业
通常情况下,最好的解决方案通常是最简单的解决方案。使用OpenLava运行MPI作业的建议方法是使用ssh作为远程任务启动器,原因如下:
ssh是所有MPI的默认任务启动器,因此它必须在每个版本的MPI实现中进行全面测试。
ssh是HPC用户在广泛使用的工具。这意味着用户和管理员已经知道如何使用它,并且没有额外的学习成本。
ssh是所有Linux版本的核心,使操作系统升级不太可能导致问题。
通过避免特定供应商的专有任务启动器,我们将集成问题的可能性降至最低,从而允许MPI版本和工作负载管理器版本独立升级。
在OpenLava的控制下运行MPI作业相关联的流程如图1所示。
图1 – OpenLava运行MPI作业
1)用户提交作业,指定包括MPI等级数(并行任务)的资源需求。使用OpenLava提交作业涉及MPI“作业包装器”示例作业提交将如下所示:
$ bsub -n 6 -R“select [mem> 16000]”mpirun_wrapper a.out
上面的语法反映了需要6个作业插槽,其中每个节点需要有16G以上的可用内存。注意,不需要指定主机文件或机器文件。参见下面的步骤(3)。
2)OpenLava根据资源需求表达式分配节点和作业槽,并在第一个节点上启动作业封装器。
3)作业封装器从OpenLava获取插槽分配,并在运行时为MPI作业创建一个主机文件
4)作业封装器通过使用在步骤(3)中创建的主机文件启动MPI应用程序。然后使用操作系统的ssh设备启动远程任务。
想法是让OpenLava基于其对运行到第二个节点状态的其他作业的知识为MPI作业分配节点和作业槽,然后告诉mpirun / mpiexec在运行时执行的最佳节点集。这正是MPI包装器所做的。
熟悉Platform LSF的读者将认识到OpenLava具有与Platform LSF相同的语法。这对于已经熟悉Platform LSF的用户来说是一个很大的优势。
在OpenLava中停止MPI作业
当使用命令bkill杀死MPI作业时,OpenLava会根据需要向mpirun或mpiexec进程发送SIGTERM信号。mpirun / mpiexec捕获它,然后将信号转发到所有远程MPI任务,以便终止所有MPI远程任务。一些MPI实现(如OpenMPI)提供了一个特定的进程清理工具,以处理各种原因的情况,其中MPI任务无法停止并停留在拥有资源的群集主机上,并阻止正确执行后续作业。
使用特定的MPI设施(如orte-clean)通常是杀死run-away MPI进程的方法,因为这些实用程序由MPI的设计者构建和测试。OpenLava利用这个和类似的设施来清理MPI远程任务,从而提供一个更简单,更可靠的解决方案。
OpenLava MPI作业包装器
OpenLava 附带了许多MPI作业封装器,根据您选择的MPI实现设计来执行优化:
openmpi-mpirun:for OpenMPI
mpich-mpirun:for MPICH
impi-mpirun:用于英特尔MPI
这些包装器脚本位于<$ open_lava_top_dir> / bin的目录中。他们与“模块”命令很好地工作。如果用户运行“module”来设置自己的MPI环境,MPI包装将找到正确的mpirun命令。OpenLava会将当前工作环境复制到MPI作业的第一个作业执行主机。
一个简单,优雅的解决方案
如果您正在运行MPI并行作业,并需要一个易于使用,灵活和强大的工作负载管理解决方案,OpenLava值得一看。用户经常在OpenLava中发现价值,因为它是与Platform LSF兼容的命令行和文件格式,并且它支持许多复杂的调度设施。此外,云平台友好的自动扩展功能使得其在可扩展的具有成本效益的云平台上部署OpenLava变得非常容易,其中节点数可以在运行时变化。
本文来自希曼博客-www.ximan.tech,作者:希曼博客,转载请注明原文链接:https://www.cnblogs.com/lihuaichen/p/15186431.html