为什么Apple Silicon需要开源Fortran编译器

2020-11-15 22:54:49

本周早些时候,苹果在一次巧妙的营销活动中向世界发布了他们新的基于ARM的“Apple Silicon”机器,我们中的许多人都掏出了信用卡。与此同时,数值算法小组宣布,他们已经将他们的Fortran编译器移植到了新的平台上。在撰写本文时,这是Apple Silicon唯一公开可用的Fortran编译器,不过随着开源Fortran编译器的更新,这种情况很可能很快就会改变。

在您的Mac上安装Fortran!@NAGTalk在@Apple活动之前发布了第一个用于Apple Silicon Mac的Fortran编译器#OneMoreThing-了解更多https://t.co/pcCuTs2vET#AppleEvent#Apple#Apple#AppleSiliconMac#Fortran#编译器#sc20@arm pic.twitter.com/d03WsGVrUN。

Fortran已有60多年的历史,是目前仍在积极开发和使用的最古老的编程语言之一(最新的语言规范是Fortran 2018)。Fortran经常被软件工程师嘲笑为老生常谈(包括十多年前建议不应该教给本科生的我),Fortran是每个人在星巴克(Starbucks)喝着纯白咖啡,在闪亮的Macbook Air上不停地玩MATLAB、R或Python时被忽视的语言。

因此,当你发现我们最喜欢的许多数据科学工具根本不能在没有Fortran编译器的任何系统上本机运行时,可能会非常震惊!

我们今天经常使用的许多数字功能是几十年前开发的,并在Fortran中发布。更现代的系统(如R)直接利用了大量这类代码,因为它具有很高的性能,或许更重要的是,它已经在生产中经过了数十年的战斗测试。数值计算很难(即使你所有的直觉都表明不是这样),当有人明显做得对的时候,重用而不是重新发明是很有意义的。

巨蟒用户也无法幸免。以下是截至今天Scipy的GitHub统计数据。

当然,没有Scipy意味着你也不能拥有任何依赖Scipy的东西,包括Kera或Scikit-Learn。此外,如果你想要良好的线性代数运算的性能(这是大量数据科学和ML算法的基础),那么你需要一个好的BLAS实现。很多项目都使用OpenBLAS(例如,这是在Numpy中很受欢迎的选项),…。你猜对了,…。几乎是49%的Fortran。

NAG的Fortran编译器非常优秀(例如,它在检查和Fortran标准合规性方面经常位居独立排行榜榜首),但它是商业的。如果数据科学家想要实现苹果新硬件的全部潜力,社区需要并将要求开源(或至少是免费)Fortran编译器,我毫不怀疑这些都在发展中。其他主要的芯片提供商(例如Intel、AMD、NEC和NVIDIA/PGI)都有自己的Fortran编译器,与之共存

在这个问题得到解决之前,我们中的大多数人将依赖于Rosetta2仿真…。谢天谢地,这显然是相当不错的!