用于高性能计算的轻量级Linux

虽然stock Linux针对桌面和服务器任务进行了优化,但是简化版本可以提高高性能计算系统节点上的性能。

Linux长期以来一直为各种各样的用户提供优秀的操作系统。然而,必须在数千个节点上运行应用程序的高性能计算用户,过去一直面临Linux无法有效解决的挑战。

Linux长期以来一直为各种各样的用户提供优秀的操作系统。然而,必须在数千个节点上运行应用程序的高性能计算用户,过去一直面临Linux无法有效解决的挑战。

对于出现的一些原因,这些问题。首先,安装Linux的一个完整的,非调谐拷贝 - 或任何全面操作系统 - 大规模HPC系统干扰了有效地使用处理器和通信资源中的每一个节点上。HPC用户也发现,Linux的一些固有的属性,比如,默认情况下运行不同的服务程序和服务,可能妨碍应用程序的性能作为操作系统扩展到更大数量的处理器。

考虑到这些问题,规模最大的HPC设施传统上在计算节点上使用专门的轻量级操作系统,而在系统级上使用Linux。不幸的是,这种策略并不适用于所有类型的HPC用户。毕竟,专门针对特定应用程序环境进行调优的操作系统无法提供企业和其他类型的HPC环境中的用户可能需要的服务和特性的广度。

对于许多HPC用户的理想解决方案将是在系统级全面爆发的Linux的组合,与采用被用于HPC系统优化的轻量的Linux计算节点。今天,Cray公司和其他高性能计算领域正在努力做到这交付。在短期内,这个“Linux的计算节点”的策略将提供大规模高性能计算系统的用户的最大好处,使他们在不牺牲熟悉和功能集的Linux来实现更好的应用性能。然而,随着企业的HPC用户和应用程序不断要求更大的可扩展性和更多的处理器,这种创新最终可以为用户在所有类型的高性能计算环境的扩展显著的优势。

HPC系统中的传统操作系统方法

最大的问题是HPC用户与所有计算节点上使用成熟的Linux是认为Linux被设计为在企业环境中主要操作,支持桌面和服务器工作负载。其结果是,Linux是“容量操作”优化的,用于在其中操作系统必须处理许多小的工作,以及用于单节点交互响应时间的环境中提供最大可能的吞吐量,从而提供,例如,迅速处理Web服务器的请求。在HPC环境中,然而,用户更关心的是“经营能力”,或实现整个系统运行单一应用的最佳性能。

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

从历史上看,这些问题已管理的,甚至在更小规模的HPC系统可以忽略不计,并主要影响只有最大规模的系统用户,例如那些在高级战略计算倡议(ASCI)设施。但是,企业规模的HPC用户不应该假定它们是从这些问题都难。据的技术的服务器集群IDC的研究中,平均群集配置已经从2004年的683个处理器(322个节点)在2006年跃升至4148级的处理器(954个节点)这表示在处理器计数六倍增加和节点三重跳算上在短短两年内,用户可以期待这些趋势继续下去。随着越来越多的系统扩展到数千个节点,无论是通过采用多核处理器或者多节点,多插槽系统的发展,这些问题将开始显著阻碍应用程序性能的不断增长类用户。当然,越来越多的HPC用户都开始寻找一种替代方法。

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

鉴于HPC环境全面操作系统的扩展性问题,最大的超级计算设施很早就采用替代Linux的计算节点上。对于这些用户,专业轻便计算节点的操作系统,如美洲豹,桑迪亚国家实验室初步发展,现在它的Cray XT3系统使用,提供了一个可行的解决方案。

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

不像完全成熟的Linux,当山猫提供内存分配,它确保每个段的基础上分配的存储器在物理上是连续的。这允许内核驱动程序进行程序直接内存访问(DMA)的工作效率和更少的开销。猫科动物也被很好地调整为消息传递接口(MPI)编程环境的应用中,构成本体的ASCI应用程序。此外,尽管大型HPC环境确实需要的文件I /从计算节点操作系统O,他们中的一些不需要插座,线程和许多其他类型的传统操作系统服务。通过省略这样的服务,美洲豹等专业操作系统都能够通过全面的Linux对于许多HPC应用提供显著的优势。(看到相关的故事)。事实上,该系统占据了前三名的位置TOP500.org列表在500个最强大的HPC系统中,所有系统都运行专门的轻量级计算操作系统。

然而,虽然山猫可能是理想的许多大型超级计算应用,这样的应用程序来完成的内核特定的编程模型为中心的调整,很多用户和其它的应用也会有要求,那山猫不能轻易满足。例如,因为移动山猫功能显著到应用程序代码,所述专用操作系统可能会限制应用程序可从计算节点画上,最终,从系统的功能。对于许多可扩展的编程模型和应用,其专业的计算节点操作系统已经设计和编写专门的支持,这不会是一个问题。然而,在其他环境中,如企业,用户可能对那些编程环境的应用程序是为和计算节点的操作系统功能的应用程序将需要编写很少的控制。

Catamount是专门为MPI编程而设计和优化的。Catamount的简单和成功是基于只支持关键特性。Catamount和它的前辈没有提供对对称多处理(SMP)的支持,也不支持其他编程模型,如全局地址空间语言(Universal Parallel C;因为这样的支持会影响目标应用程序和编程环境的性能。Catamount也不支持许多企业用户需要的套接字、线程、共享文件系统或其他传统操作系统服务——同样,因为这些特性常常会影响它所针对的应用程序的性能。最后,Catamount的开发仅限于Sandia和Cray。因此,Catamount用户无法从广泛的代码审查、调试和正在进行的Linux开发社区的新特性开发中获益。

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

Cray和HPC社区的其他人一直在探索一种解决HPC计算节点操作系统问题的新方法。轻量级Linux实现,即Cray所称的“计算节点Linux”(CNL),可以将专门的计算节点操作系统的性能优势与Linux的熟悉性和功能性结合起来,同时消除与成熟操作系统相关的许多缺点。当CNL完全实现时,它将为大规模HPC环境提供许多优势,并将允许更小规模HPC系统的用户实现ASCI用户多年来使用Catamount等解决方案所获得的性能收益。

首先,将CNL在标准环境下提供的,而不是需要高度专业化的溶液中的性能调谐操作系统。对于成千上万的HPC用户的今天谁是非常舒适的使用Linux,一个“瘦身”的Linux的计算节点可能会出现一个有吸引力的选择出现。CNL还将提供一套丰富的操作系统服务和系统调用,用户和开发期待的,他们的应用程序可能需要。CNL将支持插座,OpenMP的,以及各种类型的可替换的文件系统(例如日志结构,并行)。它也将支持专门的计算节点的操作系统通常不提供安全功能。和CNL将支持多种编程模型,包括OpenMP的,与线程,共享内存,和其他服务,这些模型都需要一起。

CNL也将受益于大型社区的Linux开发者,允许更快的bug修复和功能开发。而由于涉及生产CNL的定制工作主要涉及修剪完全成熟的Linux - 新功能不显著定制开发 - CNL不应要求超出了通过标准的Linux需要额外的支持。

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

虽然工作的Cray和其他人一直在进行开发CNL已经许诺,前轻量级Linux实现准备好广泛HPC部署的一些问题必须得到解决。可以预见的是,大部分的这些问题围绕适应的操作系统是专为传统的台式机和服务器环境,支持可扩展的HPC计算。

创建有效的轻量级Linux实现的最重要的挑战之一是解决操作系统抖动及其对在需要在节点之间进行大量同步的非常大规模的应用程序上获得良好性能的负面影响。这是因为Linux就像所有全功能的操作系统一样,采用了各种各样的功能,这些功能以不同的方式导致操作系统抖动。

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

每一个问题都需要不同的解决方案。更使问题具有挑战性的,不同的应用程序可能需要在Linux中不同的服务,调度,内核线程,周期性中断,和存储系统。其结果是,CNL开发商不能随意选择排除有助于抖动的任何功能。他们必须仔细权衡每一个潜在的适应成本和收益的操作系统。

全面的Linux还主要依赖于需求分页虚拟内存,超越什么是适合高性能计算环境。再次,这个问题的产生是因为许多虚拟内存系统功能(如网页的方式与缓冲区高速缓存和计划的执行方式共享)的容量桌面和服务器环境进行了优化。这些环境大量使用需求页虚拟内存系统来保存记忆 - 分配内存,只有当真正需要它的应用程序,通常一个页面故障后。然而,在HPC系统中,在保留内存资源通常不是一个优先事项,所需的额外时间的页面故障后分配内存,显著妨碍应用程序的性能。

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