为什么 Linux 通常被用作超级计算机的操作系统?

orf*_*ftz 42 linux high-performance

截至 2010 年 11 月,在 TOP500 的 500 台超级计算机中,有 459 台使用 Linux。通过 Internet Archive参考该表

在超级计算机领域大量使用 Linux 背后的原因是什么?

Cal*_*leb 40

  • Linux 广泛支持许多不同的硬件架构和平台,从微型嵌入式板卡到大型计算阵列。虽然有其他好的内核可用,但可用于 Linux 的硬件驱动程序的覆盖范围和质量远远超过任何其他平台。
  • Linux 内核源代码是开放的,可以轻松修改以在各种自定义平台上运行。对于任何创建新硬件的供应商来说,提供 Linux 驱动程序是使其可访问的最简单方法之一。他们不必从头开始工作,因为他们可以修改类似硬件的现有驱动程序并在其成功的基础上再接再厉。
  • 其他一些操作系统候选者收取每个 CPU 的许可费用。这些在超级计算机级别变得令人望而却步。
  • 由于以前这个领域的每个人都使用过 Linux,因此它具有最好的支持和最广泛的可用软件包和库选择。

  • 的说法是不言而喻的。[这是 IBM 关于在他们的 BlueGene 超级计算机上使用 Linux 的说法](http://www.zdnet.com.au/ibms-blue-gene-to-run-on-linux-120269420.htm),它至少支持内核的开放性原因。 (6认同)
  • Linux 还通过 MIPS 和 Itanium2 体系结构树集成了 SGI 的 NUMALink 技术,从而获得了许多超级计算机功能。最早使用 Linux 启动的大型多处理器系统之一是 32-cpu 的 Origin 2000。它后来在 128-cpu 的 Origin 2000 上启动,并保持了两年多的记录。[来源](http://www.linux-mips.org/wiki/IP27)。 (2认同)

i_g*_*rok 20

我在 HPC 行业工作。

如果您要问为什么今天大多数人在他们的集群上使用 Linux,这就是您在问题中列出的:超过 90% 的最大集群运行 Linux。这是事实上的标准——几乎任何集群库、工具或应用程序都可以在 Linux 上运行。使用任何其他操作系统设置集群的工作量更大。

如果你问 Linux 如何成为事实上的标准,那么 Caleb 有答案;)


Jim*_*nis 14

对于几乎所有形式的问题:“为什么 x 是 y 细分市场中的主要选择?” 答案集中在两个因素上。

在该细分市场或利基市场出现和增长的某个关键时刻,所讨论的产品在成本和功能方面具有一些优势,从而鼓励了大量采用。一旦达到临界质量,该细分市场的所有辅助产品都将支持它,并且该行业/细分市场中的所有关键人员都将熟悉它作为首选。

在 90 年代的某个时候,唐纳德·贝克尔 (Donald Becker) 发布了一些有关他和托马斯·斯特林 (Thomas Sterling) 为 NASA 的项目构建的 Beowulf 集群的代码和信息。这使用了商用硬件,运行 Linux,并结合了 MPI(消息传递接口)和 PVM(并行虚拟机)库,用于跨节点网络分发计算任务。

当时,替代方案需要更昂贵的硬件(主要是 Sun 工作站),拥有按每个节点或每个 CPU 成本的专有软件许可,并且通常是封闭源代码或具有重要的封闭源代码组件。

因此,Linux 在这三个方面都具有优势。Becker 发布了一些代码和文档(并以一个很酷的名字发布)极大地提升了 Linux 对此类超级计算应用程序的可信度。(它被 NASA 的一个项目使用也极大地提高了它的可信度)。

从那里,学院和大学为自己的实验室采用了这种方法。在那之后的几年内,整整一代科学家都熟悉 Beowulf 集群,并且可以随时使用各种工具来支持跨它们的许多应用程序。


lio*_*ori 6

还有一个原因。在过去的严肃工作中,没有 Linux,没有 Windows,只有 UNIX 和 VMS(MSDOS 和类似的不是竞争者,它们缺乏太多功能),也许还有一些鲜为人知的东西,比如 lisp 机器......

其中,只有 UNIX 派生的平台幸存下来。Linux 是类 UNIX 操作系统的廉价替代品:或多或少兼容、开源和免费。这使得重用在 Linux 之前编写的科学软件成为可能。