Mac OS 在科学计算和 HPC 中的现状

计算科学 软件 高性能计算
2021-12-09 22:04:15

回到 OS X 的黎明,似乎有很多喧嚣,至少在 Mac 世界(当时我离科学计算还很远)关于 Mac OS 作为科学计算和 HPC 应用程序的平台。

XGrid 开箱即用,弗吉尼亚理工大学有他们花哨的基于 Mac 的计算集群,斯坦福大学正在做一些很酷的事情,等等。

然而,最近,事情一直很平静。Macresearch.org 网站本质上是一个充满垃圾邮件僵尸的鬼城,XServe 已死,而且大量营销文献等似乎甚至来自英特尔之前的处理器领域。但是 XGrid 仍然存在,整个 *nix OS 基础都在那里,而且该平台似乎在 Python、R 和一些较新的语言中得到了不错的支持。

那么,从比我了解更多的人那里... OS X 怎么样?它们是用于科学计算的可行的客户端计算机吗?将它们用作服务器/集群/等。通过 XGrid 或类似的东西只是一个新奇的应用程序?

4个回答

@Geoff 给出了一个很好的答案,但我认为值得提供另一种观点。

我在 Mac 上做所有事情——在 OS X 上,而不是在 Linux VM 上——包括大量的科学代码开发。我主要使用 Fortran 和 Python 工作。对我来说,方便

  • 能够在一个操作系统中完成我的所有工作,并且
  • 几乎从不处理硬件故障或驱动程序问题

值得为 Mac 特定的头痛付出代价。

三个主要的头痛是:

  1. 缺少操作系统标准的包管理器。曾几何时,我使用过 Fink,但最终它导致了更多的头痛,现在它已经过时了。我听说过有关 Macports 和 Homebrew 的好消息,但我对 Fink 的体验使我相信“​​自己动手”。

  2. 一些内置软件非常过时。特别是 Python 和 gcc。这意味着您需要安装自己的更新版本,这可能很麻烦。

  3. Apple 不包含 Fortran 编译器!

在我看来,Apple 对基于 Unix 的高级用户的关注越来越少。同时,Linux 也在不断改进。最终我可能会被推回 Linux。但我会保留我的 Macbook,直到其他人学会如何制造像样的电池。

我无法评论服务器端的事情。

在客户端,在我每年参加的一次计算科学会议上,Mac 用户的比例似乎有所增加。我转而使用 Mac,因为我厌倦了处理学校提供的戴尔笔记本电脑一时失灵。我主要是因为《消费者报告》在耐用性方面对它们的评价很高,所以我改用 Mac 来购买硬件。我不认为 Mac 对科学计算有好处,除非你在它们上运行 Linux。Linux 对硬件的支持往往滞后;通常,它是不支持的无线网卡(每当他们在新型号中更改它时)。如果您愿意接受运行虚拟机带来的资源损失,这是一个有吸引力的选择(也是我个人使用的选择)。

Mac 要求您安装大量库和软件包,然后才能进行严肃的科学计算。任何具有 Mac 安装程序的东西都易于管理,因此如果您使用 Matlab、Mathematica、Maple、Python 等进行大部分开发工作,则可以轻松地在 OS X 上本地安装和运行该软件。很难找到具有 Mac 安装程序的硬核数字软件(想想 PETSc 或 CLAWPACK 之类的东西)。包管理器,如MacPortsFink如果您只想使用 OS X,可以帮助解决这种情况。您还必须从源代码编译很多包。如果您想在其他任何地方运行代码,则必须注意兼容性问题。由于 Linux 在科学计算中广泛使用,从可移植性的角度来看,在 Linux 中开发代码更容易。

我从自以为是的朋友那里听说过,在 Mac 上设置开发环境是一件非常痛苦的事情,其他人说这还不错。你的旅费可能会改变。

我认为 Mac 对计算科学家来说是一个比计算科学更好的环境。我不想在商品计算环境中使用 Mac;相对而言,硬件太贵了。使软件环境与特定软件包所需的条件相匹配可能会很痛苦,但通常一旦你第一次弄明白,它比类似的 Windows 安装更容易维护。(而且,根据包管理器的不同,它可以像 Linux 一样简单。MacPorts 作为 OS X 的管理器做得相当好!)

但是,作为忙碌的计算科学家的工作平台,我相信 Mac 提供了额外的好处,即能够在单一的计算环境中工作和维护,而不是为了“严肃”的工作而必须维护一个 Linux 机器,并且仍然当在其他学科工作的同事向我发送(例如)需要标记的 Office 文件时,需要另一台机器,或者我必须填写一份大学表格,该表格只能作为 RTF 模板使用,无法使用 LibreOffice 正确格式化,并且将在 LaTeX 中重新创建颈部疼痛。(在以前的工作中,Linux 所有者几乎必须另外拥有一台非 Linux 机器,因为访问公司环境或多或少需要它。Mac 所有者实际上并不需要第二台机器。)

此外,还有许多仅适用于 Mac 的程序(如TextMateScrivenerPapersThingsOmniFocusBibDesk)使 Mac 成为比在 PC 或 Linux 上更愉快的工作环境。我发现自己花更多的时间专注于完成工作,而不是我需要做些什么来让软件环境做我想要(或需要!)它做的事情。

OS X 在 HPC 和科学计算中的使用率很低,这与 OS X 的优缺点有很大关系(Linux)

OS X 优点:

  • 抛光的用户界面;仍然 *nix
  • 桌面/设计应用程序,例如 MS Office、Adobe 程序得到很好的支持
  • 多媒体得到很好的支持
  • 有些人喜欢 Apple 生态系统(iPhone、iTunes 等)

OS X 缺点:

  • 在昂贵的硬件上运行,并不是每个人都喜欢 Macbook,尤其是习惯于 Thinkpad 的人(键盘+轨迹点)
  • 无法在桌面/集群上升级硬件(例如,如果您想通过 CUDA 应用尝试最新的 NVIDIA 卡)
  • 无法自定义的臃肿 GUI(在 Linux 中,您可以使用极简的窗口管理器)
  • 与 Linux (Debian) 发行版相比,Macports/Fink 中的软件包 mgmt 低于标准。大多数软件包甚至都没有得到积极维护或者是孤立的
  • 一些有用的工具/程序传统上没有运行或仍然无法在 OS X 上运行。例如......

    1. Sun Studio 仍然无法正常工作
    2. Valgrind 最近才开始工作,并非所有功能都受支持
    3. 英特尔编译器近年来也已上市
    4. Apple 甚至没有打包 Fortran 编译器,您必须依赖第 3 方(主要是个人)来构建仅适用于某些 OS X 版本(个人拥有)的二进制文件。在这种情况下,支持很少或不存在
    5. 商业科学应用程序(ABAQUS、ANSYS、FLUENT 以及石油/金融/工程等行业中的更多应用程序)不能(本机)在 OS X 上运行

Linux (Debian) 优点:

  • 一流的包管理,即编译器、大多数数字/科学库等的安装是一个命令
  • 与 Fink/Macports 不同,这些软件包得到更好的支持(在 Debian 中,您可以选择使用前沿/测试/稳定版本)
  • 大多数集群都运行某些版本的 Debian/Red Hat,因此移植代码的麻烦更少

Linux(Debian)缺点:

  • 没有标准的用户界面
  • 台式机/笔记本电脑上的 Linux 可能需要进行一些调整才能使一切(挂起/恢复、3D 视频加速、声音等)正常工作,但近年来这种情况有了很大改善

除了一些例外,大多数用户和集群/系统管理员发现 OS X 更容易提高桌面生产力,而不是科学计算(编译、使用、开发东西)。

OTOH 大多数 Linux 用户发现后者比前者更容易,这反映在整个 HPC/科学计算生态系统中。