跳到内容

关于牵牛星网格引擎,你可能不知道的十件事

Altair Grid Engine被世界上成千上万的组织使用,它是世界上最流行和功能最强大的网格管理系统之一,拥有一个充满活力的、不断增长的用户社区。当应用程序提供者描述他们对Altair Grid Engine的支持时,他们经常将不同的Altair Grid Engine变体合并到一个桶中。Altair Grid Engine变体的基本特性和界面大致相同,这有助于确保兼容性。

经常有人问我关于Altair Grid Engine和各种开源发行版之间的区别。自从Univa [Altair]在2013年从Oracle获得Grid Engine的权利以来,Altair Grid Engine的进步是显著的。Altair Grid Engine将继续通过与Sun Microsystems的Univa Grid Engine相同的开发团队进行增强,并且在Grid Engine在Sun的任期内,Altair也一直在稳步改进。

要保持这样一个简短的列表很难,但是这里有10件你可能不知道的有趣的事情牵牛星网格引擎

  1. 高级容器支持-集装箱席卷了IT界。在Altair Grid Engine中,我们实现了无缝的容器集成——不仅是为Docker,也为Singularity。Altair Grid Engine用户可以管理和控制容器化的应用程序(包括容器化的MPI并行作业),就像任何其他完全支持报bob电竞官方表和会计的应用程序一样。通过集成的容器支持,Altair Grid Engine用户避免了以前在Altair Grid Engine上运行容器化应用程序所带来的复杂性和安全性挑战。bob电竞官方
  1. 可伸缩性和吞吐量HPC和AI的工作量会越来越大,越来越复杂。在牵牛星,我们一直专注于性能。在一个基准测试中,我们演示了比开源的Grid Engine性能提高了9倍。这些可伸缩性的改进不仅仅是一个学术成果。西部数字最近宣布在AWS上部署一个百万核心的Altair Grid Engine,他们在8小时内运行了250万个模拟任务的工作负载。这将花费480小时(20天)在他们的本地集群上完成。的教训吗?甚至不要考虑在开源调度器上以这种规模运行工作负载。在云中,时间就是金钱,调度性能至关重要。
  1. GPU的支持-与容器一样,现代软件的另一个趋势是通用图形处理器的使用增加,特别是在AI和深度学习方面。训练一个深度神经网络可能需要几天或几周的时间,即使是在大型GPU集群上。需要考虑GPU和处理器架构、核心关联性和包括NVLink互连在内的总线拓扑等细节,优化配置参数服务器和工作者等组件。牵牛星网格引擎提供多个增强等GPU和人工智能工作负载的资源映射(RSMAPS) Cgroup支持(精确地控制访问GPU)和紧密集成与NVIDIA GPU数据中心经理(DCGM),这样调度器有完整的可视性GPU-related指标实时调度决策。
  1. 鲁棒性和diagnosability-为了使Altair Grid Engine集群更可靠、更容易管理、更容易支持和排除故障,已经进行了大量工作。对作业挂起原因的改进是使Altair Grid Engine更易于使用和支持的诸多改进之一。要理解为什么工作需要排队等候,可能会出奇地难。在Altair Grid Engine的早期版本中,用户将使用“qalter”命令更改挂起作业的各种参数,直到他们发现作业挂起的原因为止。当用户查询挂起作业的状态时,Altair Grid Engine会公开额外的信息,因此可以更快、更容易地确定作业运行失败的原因,从而提高用户和管理员的效率。
  1. 云集成与爆发-越来越多的客户希望在云中部署Altair Grid Engine集群,或者运行混合环境,其中一些作业在本地运行,而另一些作业在云中执行。当本地资源繁忙时,扩展集群以自动利用云资源称为“云爆发”。使用开源的Altair Grid Engine的用户通常需要使用特定于云的api和工具设计自己的云爆发解决方案,但在Altair Grid Engine中,我们做到了无缝对接。
  1. 工作类—对于支持许多用户和应用程序的管理员来说,为每个应用程序管理复杂的作业提交选项可能是一个主要挑bob电竞官方战。例如,提交一个涉及gpu的分布式工作负载,并通过命令行或脚本参数表达最优拓扑和亲和性相关的约束是很重要的。更好的解决方案是使用Altair Grid Engine 8.1中引入的作业类。通过作业类,管理员可以定义一组合理的默认提交选项,反映每个作业类的最佳实践,极大地简化了作业提交和配置管理。例如,用户不需要了解如何运行gpu感知的深度学习工作负载的细节,只需调用和预定义的作业类(Qsub -jc tensorflow[输入文件]),并为每一类工作负载应用适当的作业提交指令。
  1. 企业级特性对Altair Grid Engine进行了大量的增强,使其更加企业友好。示例包括Windows支持、对企业身份验证框架的支持、可靠性和可诊断性的增强,以及简化与企业应用程序集成的更易访问的REST api。bob电竞官方Altair Grid Engine还提供了全面的集群和工作负载监控和报告,以帮助组织准确地了解如何使用资源来帮助进行会计、退税和容量规划。
  1. 调度策略- Altair Grid Engine在调度策略方面提供了许多改进,并且它不会破坏与现有脚本和应用程序的兼容性。bob电竞官方Altair Grid Engine中有太多的调度改进,无法一一列举,下面是一些例子:
    • Altair Grid Engine支持跨任何可消耗资源的基于公平共享的分配——而不仅仅是像开源Altair Grid Engine那样的CPU、内存和IO。
    • 资源亲和性调度,启用作业可以“聚集”到最适合的节点(例如,因为它们有需要的数据)的策略,或者相反地启用反亲和性策略,即尽可能多地分配作业。
    • Altair Grid Engine支持预先预订,以及Altair Grid Engine 8.5.4中新的永久预订功能。永久保留允许用户基于重复模式为作业预留资源,从而减少了管理定期重复作业所需的工作。
    • 在并行作业支持方面也有了重大改进,包括为主任务和从任务启用不同的资源需求,以及启用并行容器化作业。
  1. 核心绑定、亲和性调度、NUMA支持大多数Altair Grid Engine管理员都熟悉核心绑定。该功能在SGE 6.2u5中首次引入,描述了主机支持的套接字、核心和线程。控制作业在套接字、核心和线程上的布局,而不是让操作系统随意布置作业,可能会对性能产生巨大影响。例如,可以调度任务以最大限度地提高缓存效率,CUDA程序可以放在与它们通信的gpu附近的核上,多线程任务可以分散在多个核上以最大限度地提高吞吐量。Altair Grid Engine提供了10种新的核心绑定策略来简化配置,比如“pack sockets”、“one_socket_per_task”、“balance_sockets”等。
    • 现代SMP系统不仅是多核的,而且还倾向于具有非统一的内存体系结构(NUMA)。在NUMA系统中,每个处理器都有本地内存,访问连接到另一个套接字的内存成本更高。Altair Grid Engine为用户提供灵活的策略来调度作业,这些作业将不一致性考虑到更好的性能和作业隔离。
  1. 高级API - UGE配置API, DRMAAv2-在开发人员中,Python已经成为世界上最流行的编程语言[1]。为了向Altair Grid Engine用户和管理员提供更大的灵活性,Altair Grid Engine 8.3.1及以后版本支持一个全面的基于python的SDK (PyCL),该SDK通过qconf命令与qmaster通信,从Altair Grid Engine集群检索信息并以编程方式配置它们。该API支持“配置即代码”的概念,帮助客户实现软件定义的HPC基础设施。关于UGE配置库的文档可以在GitHub.此外,Altair Grid Engine支持更新的分布式资源管理应用程序API (DRMAA v2),这是一种高级的全球网格论坛API,具有多种语言绑定,用于异构网格计算环境中作业的提交和控制。

[1]流行编程语言2019年6月-http://pypl.github.io/PYPL.html