Fortran Compilers
Fortran has over a dozen open source and commercial compilers.
编译器#
Open source compilers
GNU Fortran Compiler
GNU Fortran 编译器(gfortran) 是一个成熟的免费开源编译器,属于 GNU Compiler Collection 的一部分。
OpenCoarrays 是一个围绕 gfortran 的库和编译器包装器,它启用了 Fortran 2018 与 gfortran 的并行编程功能。
LLVM Flang
Flang 是最近添加到 LLVM 的 Fortran 2018 新前端。它是用现代 C++ 实现的,并使用面向 Fortran 的 MLIR 方言来降低到 LLVM IR。该项目正在积极开发中。
Current Flang
Flang 是基于 NVIDIA/PGI 商业编译器的开源编译器。
LFortran
LFortran 是一种现代的、交互式的、基于 LLVM 的 Fortran 编译器。也可以在线(dev.lfortran.org) 使用静态服务的、基于 WASM 的 LFortran 编译器在浏览器中运行代码。
Commercial compilers
Intel oneAPI
英特尔 oneAPI 是英特尔针对 Fortran、C、 C++ 和 Python。 Intel oneAPI HPC Toolkit 提供两个 Fortran 编译器:
Intel Fortran Compiler (
ifx
), a new, LLVM-based compiler that comes with full Fortran 2018 support. It also supports the majority of OpenMP 5.0/5.1 including offload to Intel GPUs. ifx can also offloaddo concurrent
to Intel GPUs.Intel Fortran Compiler Classic (
ifort
), a mature compiler with full Fortran 2018 support, for CPUs only.
The current version of Intel oneAPI is available for free, and support can be purchased. Currently the ifx compiler supports Linux and Windows platforms for x86-64 architectures. ifort supports Linux, Windows, and macOS. Community support is available for the free version at the Intel Developer forum. Optionally, you can purchase Priority Support with additional benefits including access to previous versions of ifort and ifx.
NAG
最新的 NAG Fortran 编译器 版本 (7.0) 广泛支持传统和现代 Fortran 功能,包括使用 coarray 进行并行编程,以及对使用 OpenMP 进行编程的额外支持。
该编译器还为 Fortran 2018(原子操作、事件和任务,以及其它较小的功能)、几乎所有 Fortran 2008、完全覆盖 Fortran 2003 和所有 OpenMP 3.1 提供重要支持。所有平台都包括用于软件开发的支持工具:源文件抛光器、模块和包含文件的依赖项生成器、调用图生成器、接口构建器和精度统一器。
NVIDIA
NVIDIA HPC SDK C、C++ 和 Fortran 编译器,以前的 PGI 编译器,支持使用标准 C++ 和 Fortran、OpenACC® 指令和 CUDA® 对 HPC 建模和仿真应用程序进行 GPU 加速。 GPU 加速的数学库最大限度地提高了常见 HPC 算法的性能,优化的通信库支持基于标准的多 GPU 和可扩展系统编程。
NVHPC 编译器是被免费提供的,目前编译器支持 Linux 平台和 x86_64、ppc64le 和 aarch64 架构, HPC 编译器论坛 提供社区支持。
HPE / Cray
The Cray Compiling Environment (CCE) is the cornerstone innovation of Cray’s adaptive computing paradigm. CCE builds on a well-developed and sophisticated Cray technology base that identifies regions of computation that are either sequential scalar, vector parallel or highly multithreaded. It includes optimizing compilers that automatically exploit the scalar, vector and multithreading hardware capabilities of the Cray system. CCE supports Fortran, C and C++.
IBM
IBM® XL Fortran for Linux 是一种基于行业标准的编程工具,用于开发大型和复杂的应用程序在 Fortran 编程语言中。它生成的代码利用了最新的 POWER9 架构的功能并最大限度地提高了硬件利用率。 IBM XL Fortran for Linux 优化了 IBM Power Systems™ 上的基础架构,以支持广泛的数值、科学和高性能计算。
IBM XL 编译器的社区版是被免费提供的,编译器支持 Linux 和 AIX 平台以及 ppc64le 体系结构。
AMD
AMD Optimizing C/C++ Compiler (AOCC) 编译器系统是一个高性能、生产质量的代码生成工具。在构建和优化面向 32 位和 64 位 Linux® 平台的 C、C++ 和 Fortran 应用程序时,AOCC 环境为开发人员提供了各种选项。 AOCC 编译器系统提供高级优化、多线程和处理器支持,包括全局优化、矢量化、过程间分析、循环转换和代码生成。 AMD 还提供高度优化的库,可在使用时从每个 x86 处理器内核中提取最佳性能。 AOCC 编译器套件简化并加速了 x86 应用程序的开发和调整。
AOCC 编译器被免费提供,支持 x86_64 架构的 Linux 平台。
ARM
Linux 用户空间 Fortran 编译器。专为 HPC 和科学代码量身定制,支持流行的 Fortran 和 OpenMP 标准,并针对领先的基于 Arm 的服务器级平台进行了调整。建立在开源 Flang 前端,以及基于 LLVM 的优化和代码生成后端。作为 Arm Compiler for Linux 软件包的一部分提供。
Oracle / Sun
Oracle C、C++、Fortran 编译器 针对 Oracle 系统、本地和云端进行了高度优化
适用于最新 Oracle SPARC 和基于 x86 的系统的高级代码生成技术
支持最新的行业标准,包括 C++14、C++11、C11 和 OpenMP 4.0 以及广泛的 GCC 兼容性功能
编译期间的自动代码分析和应用程序运行时的自动堆栈溢出保护
Silverfrost FTN95
Silverfrost FTN95 是一个完全符合 Fortran 95 标准的编译器,能够为 Win32 和 Microsoft .NET 生成快速的可执行文件。 FTN95 附带世界上最好的运行时检查和大量的支持软件。支持所有标准和许多特定于供应商的遗留语言功能,因此 Fortran 项目可以是 Fortran 77、Fortran 90 和 Fortran 95 的任意组合。已经 添加了 Fortran 2003 和 2008 的一些功能。 Silverfrost Fortran 在 Windows / x86_64 上运行,有一个免费的个人版。
NEC
Fortran 编译器 符合 Fortran-2003 标准 (ISO/IEC 1539-1:2004) 并支持许多Fortran-2008 (ISO/IEC 1539-1:2010) 的功能。
LCC
MCST C、C++、Fortran 编译器 完全支持 Fortran-95 (ISO/IEC 1539:1997) 并部分支持 Fortran-2003 (ISO/IEC 1539:2004), Fortran-2008 (ISO/IEC 1539:2010) 和 Fortran-2018 (ISO/IEC 1539:2018)。用于俄罗斯处理器架构 Elbrus (e2k) 和 SPARC (MCST-R),还提供用于 x86_64 架构的交叉编译器。
Discontinued
以下是似乎已停产的 Fortran 编译器列表,因此我们不在上面列出:
Absoft
Apogee
爱丁堡便携式编译器
惠普
Lahey
Watcom
PathScale
G95
Open64
Unisys
Note
请让我们知道是否有任何未列出的编译器,或者我们是否在“停产”部分列出了一个编译器,并且它实际上正在积极维护。