我们在之前几篇文章中探讨了这一点:90%以上(准确地说是94.2%)的超级计算机使用Linux作为自己的操作系统。在本文中,我们将试图探讨Linux之所以成为超级计算机操作系统***选择的优点和特性。
的确,没有谁比负责部署和维护超级计算机的团队更有资格阐明Linux作为超级计算机操作系统所具有的能力了。在我们探讨Linux的重要功能特性之前,不妨先看一下超级计算机领域的重要人士对Linux有什么样的评价;他们被问及选择Linux作为超级计算机操作系统时又会给出什么样的理由。
Mark Seager在加利福尼亚州利物莫尔的劳伦斯利物莫尔国家实验室担任高级技术部门主管助理。劳伦斯利物莫尔国家实验室运行的十台庞大机器跻身于全球500强超级计算机排行榜(Top 500 list),包括世界上功能***大的超级计算机:蓝色基因/L以及名列第五位的Thunder。当然,这些超级计算机使用Linux作为操作系统。Mark Seager说:“Linux已主导了高性能计算市场。”高性能Linux集群为只有借助Linux才能实现的高性能计算提供了基础。
Scott Gnau是天睿公司(Teradata Corporation)的***开发官。这家公司处理几项关键的任务,部署超级计算机用于处理计算密集型任务。这些超级计算机运行在Linux上。Scott说:“我们的解决方案旨在运行功能强大的商业智能和实时决策应用系统,包括欺诈检测和预防、客户细分、人力资源和趋势预测。我们的解决方案运行在Novell公司的SUSE Linux企业级服务器上。归功于极高的可扩展性、可靠性、灵活性和易用性,这款操作系统是最适合我们客户业务环境的Linux操作系统。我们之所以选择Novell和SUSE Linux企业级平台,是因为它拥有一整套行业领先的Linux服务,可以支持大规模关键任务型企业环境。”
负责沃森超级计算机系统管理的Eddie Epstein被问及他们为何选择Linux作为超级计算机操作系统时说,“这个项目一开始是基于x86架构的刀片系统,而负责管理的研究人员对Linux非常熟悉。”这表明Linux在研究人员当中已有知名度。
Alejandro Ramirez是开发世界上***台基于ARM芯片的超级计算机的巴塞罗那超级计算中心(BSC)的团队负责人。他提到选择Linux作为超级计算机的操作系统时说:“Linux操作系统得到广泛支持是基本要素之一。”他进而补充说:“ARM很好地支持Linux。”
Irene Qualters是SGI公司主管软件的高级副总裁。Irene提到选择Linux作为其超级计算机操作系统时说:“在SGI,我们关注的是高性能计算和出色的可扩展性,而SUSE Linux企业级服务器正是我们的许多Altix和Altix XE客户所选择的操作系统。”
早在2000年,新墨西哥大学建立了一台采用红帽Linux的虚拟超级计算机Los Lobos,当时的初始投入是150万美元。Frank Gilfeather博士当时被任命为新墨西哥大学的高性能计算执行董事。Gilfeather说:“我们有几个客户,将得益于基于Linux集群的高性能计算。我们认为,在将来,这对电子商务来说同样会很重要——因为越来越多的客户在部署中间件和消息队列系统,它们需要你在Linux集群中看到的那种强大功能:这表明Linux操作系统提供了高性能。”他进一步说:“大型Linux超级集群的出现归因于像PC这些大众化部件的急剧发展、Myrinet等高速商用现成技术(COTS)网络的发展以及开放软件运动的迅猛普及……因而,相对传统的超级计算机,就能够以极其合理的成本建立起真正的超级计算机。”
Stephen Scott是橡树岭国家实验室计算机学部门的一名研究科学家,也是Linux超级计算机的早期用户/研究人员之一。他说:“科学界会喜欢Linux,因为它非常酷似标准的Unix。”Scott补充说:“大多数高性能环境是Unix,但是所有免费的GNU工具都使得Linux部署起来极其容易、极其省钱。”
了解了专家们发表的一番观点后,不妨深入介绍让Linux成为超级计算机操作系统***选择的功能特性:
1. Linux的模块化特性
门外汉可能认为典型的Linux是由许多很小的基本组件即模块构成的。每个模块执行不同的专门功能。这些基本组件协同工作,让操作系统得以顺畅运行。Linux的这种模块化特性方便了所有人,无论他们是普通的Linux用户,还是超级计算机管理员——可以改动操作系统,以适合自己的需求。其他的操作系统都无法提供这种程度的定制性,尤其是Windows。因而,可以对Linux进行改动,以便用在超级计算机上,实现专门的目的,尤其是增强性能或提高能效等。如今,大多数超级计算机都采用了经过改动的Linux内核。
2. Linux内核的通用性
Linux内核具有尽可能强的通用性。这意味着,只要编写单一的源代码,既可以在大型超级计算机上运行,也可以在小型设备、甚至手持装置上运行。无论是在大型系统上还是在小型系统上,如何使用Linux,这完全取决于用户。也不需要为了可以在更大或更小的系统上运行而对内核进行根本性、重大的改变。通常来说,Linux内核既可以配置成2MB这么小,也可以配置成1GB或1TB这么大,不需要花很多的时间和很大的精力。
3. 可扩展性
按照定义,可扩展性是指服务器适应更庞大负载的能力。可以直接把可扩展性看成是衡量效率和性能的一个尺度。系统必须具有极高的可扩展性,那样添加新服务器应该不费吹灰之力。Linux具有极高的可扩展性,因为它能够相当轻松地适应新的、更大的负载。这就是为什么你能发现Linux在超级计算机上运行,而安卓(使用Linux内核)在手机、冰箱、甚至微波炉上运行!
4. 开源性
Linux是完全开源的自由软件,一整套源代码完全开放。这意味着,超级计算机管理员能够对这款操作系统随意进行定制。此外,万一超级计算机上出现性能故障或安全漏洞等,管理员可以随时改动代码,以获得***的性能和***的安全性(或实现其他任何目的),而不是等专有操作系统公司发布安全补丁。
超级计算机力求实现性能***化。通常,超级计算机被分配的任务要求以非常高的速度来处理计算任务。相比之下,Windows有众多没有必要的无关进程,只会拖累超级计算机的性能。不过,由于Windows是专有的操作系统,无法改动代码以消除没有必要的进程。至于Linux,完全可以改动代码,消除无必要的进程,因而为计算机提升性能。
5. 社区支持
作为开源操作系统,Linux得到了社区的大力支持,这是其他任何一款操作系统所无法比拟的。
6. 成本低
说到像超级计算机这样的庞大设备,成本可能是个大问题。在超级计算机上部署Linux具有成本效益,因为Linux完全不用支付特许使用费。
使用Linux作为操作系统的其他理由是,Linux的网络支持功能很好。添加或删除任何尝试性的网络设备都比较容易。不需要系统重启!Linux是一款稳定而可靠的操作系统,可以在成本高昂的大型服务器和计算机上运行,没必要担心太多的问题。***,Linux来得更安全。
你认为哪些因素使得Linux成为最适合超级计算机的操作系统?欢迎敬请留言!