简介 - skyformaip/skyformaip GitHub Wiki
什么是SkyForm AIP
SkyForm AIP是为机器学习、深度学习、高性能计算(HPC)、和大数据分析应用专门设计的私有云产品,注重大规模集群分布式应用的资源管理和作业管理,使用户在使用大集群和异构硬件的时候达到像用本地系统一样的简单和透明,同时又让系统管理员能够有效地监控和管理集群上所有的资源,使昂贵资源的利用率最大化,从而提高效能、降低成本。
SkyForm AIP帮助使用高性能计算(HPC)和高性能机器学习应用快速建立轻量级的带有门户的任务调度系统,使高性能计算用户方便地使用系统和应用。
SkyForm AIP的部署架构
常规的HPC集群含有至少一个登录节点、一个管理节点、和多个计算节点。计算节点的配置也各不相同,有些有大内存的“胖节点”,许多集群,尤其是机器学习的集群,含有GPU的GPU节点。
所有节点都接在共享文件系统上。共享系统可以使用如IBM GPFS,开源Lustre,或Ceph FS,或者NAS一体机(如NetApp)等。
用户认证服务(如LDAP服务)安装在管理节点上,所有其他节点都是用该服务进行用户认证(如LDAP客户端)。
小的集群管理节点和登录节点可以合而为一,或者管理节点和计算节点可以合而为一。
AIP的部署为:(1)管理节点和计算节点(2)登录节点。
提示 “节点”在本文中也叫做“主机”。这两个词会交替使用。
SkyForm AIP对资源占用
与一般调度系统类似,SkyForm AIP占用资源非常少。对于50节点以下的集群,在一般的节点上的内存,CPU等没有特殊要求。SkyForm AIP不用数据库,不用Java,所以非常简洁。
概念和术语
在您开始使用SkyForm任务调度系统9前,请先了解下表中所描述的概念和术语。
表1-1 SkyForm任务调度系统概念和术语
概念/术语 | 描述 |
---|---|
集群(Cluster) | 集群是一组主机的集合,这些主机上运行SkyForm AIP且通过TCP/IP网络互相连通。 |
Master控制主机 | 每个集群都需要一个master主机,master主机控制着SkyForm AIP集群中的其他主机。 |
计算主机 | 集群中运行应用作业及任务的主机。 |
Remote Server主机 | 主机上不安装SkyForm AIP服务,主机负载通过Master上的cbls.remote程序获取。分发到remote server上的作业先分发到Master,然后由Master通过定制脚本转送到远程主机上。 |
Dynamic Server主机 | 主机不在集群中预先配置,而是使用caddhost命令动态加入。 |
Client(客户端)主机 | 集群中仅提交作业及任务的主机。 |
作业执行主机 | 运行作业和任务的主机。 |
作业递交主机 | 作业在其上被提交的主机。 |
作业(Job) | 提交至SkyForm AIP的应用。可占用一至多个Job slot。 |
作业槽(Job slot) | SkyForm AIP中处理器分配的最小单元。可以是一至多个物理处理器或物理处理器的一部分。默认情况下,一个作业槽就是一个处理器核。 |
队列(Queue) | 网络范围内的一个存放作业的地方,负责对不同作业实施调度及管理调度策略。 |
集群主管理员 | 集群主要的管理员用户,具有修改集群配置文件、控制集群主机、和控制所有用户作业的权限。 |
系统中的作业流
SkyForm AIP中的作业流如下图所示。
作业运行流程:
-
用户使用aip job命令或csub提交作业
-
作业被提交至队列中
-
为每个作业分配一个唯一的作业ID
-
调度器根据作业资源需求和系统中的可用资源为队列里的作业找合适一个或多个主机,将作业定义分发到找到的一个主机上,启动作业控制器。
-
作业控制器根据作业任务定义和调度器所分配的资源启动和管理作业任务。