轻量级Linux为高性能计算

而股票Linux桌面和服务器任务的优化,可以加速性能简化版本的节点高性能计算系统。

Linux一直为范围广泛的提供了一个优秀的操作系统用户在不同的设置。然而,高性能计算用户,他们必须数千个节点上运行应用程序,历史上面临挑战,Linux不能有效地解决。

Linux一直为范围广泛的提供了一个优秀的操作系统用户在不同的设置。然而,高性能计算用户,他们必须数千个节点上运行应用程序,历史上面临挑战,Linux不能有效地解决。

这些问题出现的原因。首先,未调优安装一个完整的Linux的副本——或任何全面的操作系统——在每个节点上大规模高性能计算系统的干扰处理器和通信资源的有效利用。HPC用户也发现一些Linux的固有属性,如各种守护进程和服务运行在默认情况下,会妨碍应用程序的性能随着操作系统扩展到更多的处理器。

鉴于这些问题,历来最大规模的HPC设施使用替代计算节点上专门的轻量级操作系统,在使用Linux的系统水平。不幸的是,这种策略不可行的所有类型的高性能计算用户。毕竟,专业操作系统调优为特定的应用程序环境不能显式地提供广泛的服务和功能,用户可能需要在企业和其他类型的高性能计算环境。

许多高性能计算用户的理想解决方案将是一个成熟的Linux的组合在系统层面上,与计算节点使用一个轻量级的Linux, HPC系统进行了优化。今天,克雷和其他人在HPC社区正在交付。在短期内,这种“计算节点上的Linux”战略将提供最大的好处大规模高性能计算系统的用户,使他们能够实现更好的应用程序性能不牺牲Linux的熟悉和特性集。然而,随着企业HPC用户和应用程序不断需求更大的可伸缩性和更多的处理器,这种创新最终可能显著的优势扩展到所有类型的HPC环境中的用户。

传统操作系统的高性能计算系统的方法

最大的问题,HPC Linux用户使用成熟的所有计算节点是Linux下运作而设计,主要是在企业环境中,支持桌面和服务器的工作负载。因此,Linux是优化操作能力,提供最大可能的吞吐量在一个环境中,操作系统必须处理许多小工作,对于单节点交互响应时间,提供,例如,促使Web服务器处理请求。然而在高性能计算环境中,用户更关心“功能操作,实现最好的一个应用程序运行在整个系统的性能。

事实上,企业环境的特性,使Linux理想——主要是操作系统特性和守护进程是为了最有效的利用资源在运行许多小工作,在提供良好的互动响应——在HPC系统会导致严重的性能问题。这些性能问题时,往往出现任何功能全面的操作系统使用在大型系统中,被称为“操作系统抖动。“此外,全面落实demand-paged Linux中使用虚拟内存相当适合标准的Linux的目标市场,它不是适合HPC环境。

从历史上看,这些问题已经在小规模的HPC系统可控的,甚至可以忽略不计,主要影响只有最大规模的系统用户,如在高级战略计算计划(子囊)设施。然而,企业级HPC用户不应该认为他们是受这些问题。根据IDC的研究技术服务器集群,集群配置平均增长从683年的2004处理器节点(322)到2006年的4148个处理器(954个节点)。这是6倍增加处理器数和节点数增长了两倍在短短两年,和用户可以预期这些趋势继续。随着越来越多的系统扩展到数千个节点,通过采用多核处理器或多节点和multi-socket系统的发展,这些问题将会严重阻碍成长类的应用程序性能的用户。当然,越来越多的高性能计算用户开始寻找另一种方法。

专门的轻量级操作系统对HPC优化

鉴于全面的操作系统的可伸缩性问题在高性能计算环境中,最大的超级计算机设施长期以来采用替代计算节点上的Linux。对于这些用户来说,专业轻量级计算节点操作系统,如美洲豹,最初由桑迪亚国家实验室开发,现在使用克雷XT3系统,提供了一个可行的解决方案。

美洲豹是适合许多大型超级计算机设施和提供了大量的优势在这些环境中。首先,它是真正的“轻量级。“操作系统非常小的规模和执行与虚拟内存系统,只有很少的交互处理器上下文和网络接口。猫科动物不负责内存分配,调度,或工作启动功能。执行这些任务通过“用户模式”的过程。由于大多数系统处理流程和服务计算节点之外,山猫也产生一些操作系统抖动来源。

与成熟的Linux,山猫提供内存分配时,确保身体在每航段的基础上分配的内存是连续的。这允许内核驱动程序直接内存访问(DMA)更有效和更少的开销。山猫也很好调为消息传递接口(MPI)编程环境应用,构成子囊的大部分应用程序。此外,尽管大规模的HPC环境需要从计算节点操作系统文件I / O,他们中的一些人不需要套接字、线程和许多其他类型的传统操作系统服务。通过省略这些服务,山猫和其他专业OSs能够提供重要的优势全面许多HPC Linux应用程序。(看到相关的故事)。事实上,系统上的前三位TOP500.org列表500最强大的HPC系统所有运行专业,轻量级计算操作系统。

然而,虽然山猫可能适合许多大型超级计算机应用程序,内核的特定的编程model-focused调优为这样的应用程序意味着许多用户和其他应用程序将有野猫无法轻易满足的需求。例如,因为山猫重要功能移动到应用程序代码中,专业的操作系统可能会限制的功能,应用程序可以利用计算节点,并最终从系统。对于许多可伸缩的编程模型和应用程序,专门的计算节点的操作系统被设计和编写专门的支持,这将不是一个问题。然而,在其他环境中,如企业,用户可能无法控制编程环境编写一个应用程序和计算节点操作系统功能应用程序的需要。

猫科动物是专为MPI编程设计和优化。猫科动物的简单性和成功一直基于只支持对关键特性。猫科动物及其前身没有提供支持对称多处理(SMP),并提供不支持全局地址空间等替代编程模型语言(通用并行C;OpenMP Co-Array Fortran)或,因为这种支持会干扰目标应用程序的性能和编程环境。山猫也不支持的套接字、线程、共享文件系统或其他传统的操作系统服务,很多企业用户需要——再一次,因为这些特性经常干扰应用程序的性能目标。最后,山猫发展专门桑迪亚和克雷是有限的。所以山猫用户无法受益于大量的代码检查,调试和正在进行的新功能开发,Linux开发社区。

另一种策略:轻量级Linux实现

克雷和其他人在HPC社区一直在探索新方法HPC compute节点操作系统问题。轻量级Linux实现,或克雷所说的“计算节点Linux”(CNL),可以结合的性能优势专业计算节点操作系统Linux的熟悉和功能,同时消除许多缺点与成熟的操作系统有关。当完全实现,补偿中子测井将为大规模高性能计算环境提供许多优势,和将允许用户甚至小规模的HPC系统实现的性能收益子囊用户享受多年与山猫等解决方案。

首先,CNL将提供一个性能调整操作系统在一个标准的环境中,而不需要一个高度专业化的解决方案。成千上万的HPC用户今天非常熟悉Linux,出现“精简”Linux计算节点可能存在一个有吸引力的选择。补偿中子测井也将提供丰富的操作系统服务和系统调用,用户和开发者希望,他们的应用程序可能需要。OpenMP CNL将支持的套接字,各种类型的替代文件系统(比如日志结构,平行)。它还将支持安全特性,专门计算节点操作系统通常不提供。和补偿中子测井将支持许多编程模型,包括OpenMP,随着线程,共享内存,这些模型需要和其他服务。

补偿中子测井也将受益于Linux开发人员的大型社区,允许更快的bug修复和功能开发。因为自定义工作参与生产CNL涉及主要修剪成熟的Linux——不是重要的定制开发的新功能——CNL应该不需要额外的支持超出要求的标准Linux。

剩余的补偿中子测井的挑战

虽然克雷和其他人工作一直在进行开发CNL一直承诺,一些问题必须解决之前轻量级Linux实现广泛的HPC部署做好准备。可以预见的是,大部分的这些问题围绕适应操作系统被设计为传统的桌面和服务器环境支持可伸缩的HPC计算。

最重要的挑战之一创建一个有效的轻量级Linux实现解决操作系统抖动对实现良好的性能和它的负面影响非常大规模的应用程序需要大量节点之间的同步。这是因为Linux,像所有的全功能的操作系统,拥有多种功能,为操作系统抖动以不同的方式作出贡献。

运行在Linux守护进程和服务,例如,会干扰特定于应用程序的处理,引入抖动的1到10 ms。另外,Linux做自己的调度和试图线程本身内部推迟执行中断,可以引入非确定性,呈现跨节点的应用程序需要同步的问题。这些线程和调度的问题可能导致一段100µs 1女士当应用程序没有运行。Linux还雇佣了频繁的周期性操作系统的定时器中断,从处理器,处理器不一致,引入抖动的1到10µs,这也会妨碍跨中节点大规模系统同步。

这些问题需要一个不同的解决方案。使问题更具有挑战性,不同的应用程序可能需要不同的服务,调度、内核线程,周期性的中断,并在Linux内存系统。因此,CNL开发人员不能随意选择排除任何导致抖动的特性。他们必须仔细权衡每个潜在的成本和收益适应操作系统。

成熟的Linux也严重依赖demand-paged虚拟内存,除了适合高性能计算环境。再次出现这个问题,因为许多虚拟内存系统功能(如页面共享缓冲区缓存的方式和程序执行)进行了优化桌面和服务器环境的能力。这些环境使大量使用demand page虚拟内存系统保存应用程序内存分配内存,只有当它实际上是必需的,通常在一个页面错误。然而,在高性能计算系统,保留内存资源通常不是一个优先级,所需的额外的时间分配内存页面错误后可以显著阻碍了应用程序的性能。

12 第1页
第1页的2
工资调查:结果是在