Recent from talks
Nothing was collected or created yet.
Intel Fortran Compiler
View on Wikipedia| Intel Fortran Compiler | |
|---|---|
| Other names |
|
| Developer | Intel |
| Preview release | 2023.2.1[1]
/ July 28, 2023 |
| Operating system | Linux, Windows |
| Type | Compiler |
| License | Freeware, Optional priority support |
| Website | software |
| Intel Fortran Compiler Classic | |
|---|---|
| Other names |
|
| Developer | Intel |
| Stable release | 2021.10.0 Build 20230609_000000[1]
/ July 28, 2023 |
| Operating system | Linux, Windows, macOS |
| Type | Compiler |
| License | Freeware, Optional priority support |
| Website | software |
Intel Fortran Compiler, as part of Intel OneAPI HPC toolkit, is a group of Fortran compilers from Intel for Windows, macOS, and Linux.
Overview
[edit]The compilers generate code for IA-32 and Intel 64 processors and certain non-Intel but compatible processors, such as certain AMD processors. A specific release of the compiler (11.1) remains available for development of Linux-based applications for IA-64 (Itanium 2) processors. On Windows, it is known as Intel Visual Fortran.[2] On macOS and Linux, it is known as Intel Fortran. In 2020 the existing compiler was renamed “Intel Fortran Compiler Classic” (ifort) and a new Intel Fortran Compiler for oneAPI (ifx) supporting GPU offload was introduced.
The 2021 release of the Classic compiler adds full Fortran support through the 2018 standard, full OpenMP* 4.5, and Initial Open MP 5.1 for CPU only. The 2021 beta compiler focuses on OpenMP for GPU Offload. When used with the Intel OneAPI HPC toolkit (see the "Description of Packaging" below) the compiler can also automatically generate Message Passing Interface calls for distributed memory multiprocessing from OpenMP directives.
For more information on Fortran standards, a number or resources are available, such as the Wikipedia Fortran entry or the Fortran wiki page.
The Intel Fortran package included the Intel Array Visualizer, a visualization tool for scientific formats such as FITS and netCDF, which can produce x-y plots, contour plots, and image plots, and save them to other formats.[3][4]
Optimizations
[edit]Intel compilers are optimized[5] for computer systems using processors that support Intel architectures. They are designed to minimize stalls and to produce code that executes in the fewest possible number of cycles. Intel Fortran Compilers support three separate high-level techniques for optimizing the compiled program: interprocedural optimization (IPO), profile-guided optimization (PGO), and other high-level optimizations (HLO).
Interprocedural optimization applies typical compiler optimizations (such as constant propagation) but uses a broader scope that may include multiple procedures, multiple files, or the entire program.[6]
Regarding profile-guided optimization, the compiler generates a dataset of performance-related information from using the application with representative workloads, which it then analyzes to find which parts of the application are executed more and less frequently. The compiler uses these data to organize application execution to optimize performance based on how the application is actually used. This is in contrast to IPO which optimizes applications according to the logical flow of the application independent of workloads. The two can be combined to provide workload-based optimizations within which the logical-flow is optimized. Thus, all optimizations can benefit from profile-guided feedback because they are less reliant on heuristics when making compilation decisions.
High-level optimizations are optimizations performed on a version of the program that more closely represents the source code. This includes loop interchange, loop fusion, loop unrolling, loop distribution, data prefetch, and more.[7]
Standards support
[edit]The Intel Fortran Compiler Classic fully supports Fortran through the 2018 standard. The Intel Fortran Compiler (Beta) supports full Fortran 77/90/95 and has partial support of the Fortran 2003 standard.
Architectures
[edit]- IA-32
- x86-64 (Intel 64 and AMD64)
- Intel Xeon Phi coprocessor
- IA-64 (Itanium 2)
- Xe architecture
Description of packaging
[edit]The compilers are available standalone from Intel and from APT and Yum repositories. They are also available in the Intel oneAPI HPC Toolkit which includes other build tools, such as libraries, and analysis tools for error checking and performance analysis. Containers with the compilers are on Docker Hub.
History since 2003
[edit]| Compiler version | Release date | Major new features |
|---|---|---|
| Intel Fortran Compiler 8.0 | December 15, 2003 | Precompiled headers, code-coverage tools. |
| Intel Fortran Compiler 8.1 | September, 2004 | AMD64 architecture (for Linux). |
| Intel Fortran Compiler 9.0 | June 14, 2005 | AMD64 architecture (for Windows), software-based speculative pre-computation (SSP) optimization, improved loop optimization reports. |
| Intel Fortran Compiler 10.0 | June 5, 2007 | Improved parallelizer and vectorizer, Streaming SIMD Extensions 4 (SSE4), new and enhanced optimization reports for advanced loop transformations, new optimized exception handling implementation. |
| Intel Fortran Compiler 10.1 | November 7, 2007 | New OpenMP* compatibility runtime library. To use the new libraries, you need to use the new option "-Qopenmp /Qopenmp-lib:compat" on Windows, and "-openmp -openmp-lib:compat" on Linux. This version of the Intel compiler supports more intrinsics from Microsoft Visual Studio 2005. VS2008 support - command line only in this release. |
| Intel Fortran Compiler 11.0 | November 2008 | More Fortran 2003 support. Support for OpenMP 3.0. Source Checker for static memory/parallel diagnostics. Commercial licenses for Windows version include Microsoft Visual Studio 2005 Premier Partner Edition. |
| Intel Fortran Compiler 11.1 | June 23, 2009 | Support for latest Intel SSE, AVX and AES instructions. More Fortran 2003 support. Support for latest Intel MKL release (included in compiler products). Commercial licenses for Windows version include Microsoft Visual Studio 2008 Shell and libraries. |
| Intel Fortran Composer XE 2011 up to Update 5 (compiler 12.0) | November 7, 2010 | Coarray Fortran, additional 2003 (FINAL subroutines, GENERIC keyword,) and 2008 (Coarrays, CODIMENSION, SYNC ALL, SYNC IMAGES, SYNC MEMORY, CRITICAL, LOCK, ERROR STOP, ALLOCATE/DEALLOCATE) |
| Intel Fortran Composer XE 2011 Update 6 and above (compiler 12.1) | September 8, 2011 | OpenMP 3.1, additional 2003 (ALLOCATE with SOURCE=, polymorphic source) and 2008 standards support, Windows version ships with Visual Studio 2010 Shell. |
| Intel Fortran Composer XE 2013 (compiler 13.0) | September 5, 2012 | Linux-based support for Intel Xeon Phi coprocessors, support for Microsoft Visual Studio 12 (Desktop), support for gcc 4.7, support for Intel AVX 2 instructions, updates to existing functionality focused on delivering improved application performance. Continued availability of the Visual Studio 2010 Shell for Windows versions. |
| Intel Fortran Composer XE 2013 SP1 (compiler 14.0) | July 31, 2013 | User-Defined Derived Type I/O; OpenMP directives, clauses and procedures; coarrays ; Microsoft Visual Studio parallel build support |
| Intel Fortran Composer XE 2013 SP1 Update 1 (compiler 14.0.1) | October 18, 2013 | Japanese localization of 14.0; Windows 8.1 and Xcode 5.0 support |
| Intel Fortran Composer XE 2015 (compiler 15.0) | August 5, 2014 | Full support for Fortran 2003; BLOCK from Fortran 2008; EXECUTE_COMMAND_LINE from Fortran 2008; New optimization report annotates the source from within Visual Studio[8] |
| Intel Fortran Composer XE 2015 Update 1 (compiler 15.0.1) | October 30, 2014 | AVX-512 support; Japanese localization; MIN/MAX Reductions in SIMD Loop Directive |
| Intel Fortran Compiler 16.0, part of Intel Parallel Studio XE 2016 | August 25, 2015 | Submodules from Fortran 2008, enhanced interoperability of Fortran with C from draft Fortran 2018, OpenMP 4.1 extensions |
| Intel Fortran Compiler 17.0 | March 4, 2016 | OpenMP 4.5 extensions |
| Intel Fortran Compiler 18.0 | January 17, 2017 | Full Fortran 2008 support |
| Intel Fortran Compiler 19.0 | September 12, 2018 | Some Fortran 2018 features |
| Intel Fortran Compiler Classic 2021.1.1 | December 8, 2020 | Full Fortran 2018 support, OpenMP 4.5 and initial Open MP 5.1 for CPU only |
| Intel Fortran Compiler (Beta) 2021.1.1 | December 8, 2020 | OpenMP* 4.5 and initial OpenMP support for CPU and GPU Offload |
| Intel Fortran Compiler Classic 2021.5.0 | December 6, 2021 | Fortran language fixes and security updates |
| Intel Fortran Compiler oneAPI 2022.0.0 | December 6, 2021 |
|
| Intel Fortran Compiler oneAPI 2023.0.0 | December 21, 2022 |
|
| Intel Fortran Compiler oneAPI 2024.0.0 | November 20, 2023 |
|
Debugging
[edit]The Intel compiler provides debugging information that is standard for the common debuggers (DWARF 2 on Linux, similar to gdb, and COFF for Windows). The flags to compile with debugging information are /Zi on Windows and -g on Linux. Debugging is done on Windows using the Visual Studio debugger, and on Linux using gdb.
While the Intel compiler can generate a gprof-compatible profiling output, Intel also provides a kernel-level, system-wide statistical profiler as a separate product called VTune. VTune features an easy-to-use GUI (integrated into Visual Studio for Windows, Eclipse for Linux) as well as a command-line interface. In addition to the VTune profiler, there is Intel Advisor that specializes in vectorization optimization and tools for threading design and prototyping.
Intel also offers a tool for memory and threading error detection called Intel Inspector XE. Regarding memory errors, it helps detect memory leaks, memory corruption, allocation/de-allocation of API mismatches and inconsistent memory API usage. Regarding threading errors, it helps detect data races (both heap and stack), deadlocks and thread and synch API errors.
See also
[edit]- Intel Integrated Performance Primitives (IPP)
- oneAPI Data Analytics Library (oneDAL)
- Intel oneAPI Math Kernel Library (oneMKL)
- oneAPI Threading Building Blocks (oneTBB)
- VTune Profiler
- Intel C++ Compiler
- Intel Developer Zone (Intel DZ; support and discussion)
- Intel Parallel Studio XE
References
[edit]- ^ a b "Intel® Fortran Compiler for oneAPI Release Notes". Intel. Retrieved 2020-12-28.
- ^ "Intel Visual Fortran Compiler Professional Edition for Windows". cnet.com.
- ^ Readey, John (October 27, 2004). Intel Array Visualizer. HDF Workshop VIII. Retrieved 6 May 2023.
- ^ "Intel Array Visualizer". Intel Developer Zone. 7 March 2016. Archived from the original on March 7, 2016. Retrieved 6 May 2023.
- ^ "Intel (Fortran, C, and C++)". NERSC.gov.
- ^ Intel compiler documentation. Select the Fortran compiler of choice and search for Profile-Guided Optimization. http://software.intel.com/en-us/intel-software-technical-documentation
- ^ The Software Optimization Cookbook, High-Performance Recipes for IA-32 Platforms, Richard Gerber, Aart J.C. Bik, Kevin B. Smith, and Xinmin Tian, Intel Press, 2006
- ^ "Intel Visual Fortran 15 now available".
- ^ "Fortran Language and OpenMP* Features Implemented in Intel® Fortran Compiler". Intel® Fortran Compiler. Intel. Retrieved 2021-12-27.
- ^ "The Next Chapter for the Intel® Fortran Compiler 2023". community.intel.com. 2022-12-21. Retrieved 2023-02-13.
- ^ "AVAILABLE NOW! Intel Software Developer Tools 2024.0". community.intel.com. 2022-12-21. Retrieved 2024-09-10.
External links
[edit]Intel Fortran Compiler
View on GrokipediaIntroduction and History
Overview
The Intel Fortran Compiler is a proprietary compiler suite developed by Intel for the Fortran programming language, designed to generate highly optimized code for Intel processors. It previously comprised two main variants: the Intel Fortran Compiler Classic (ifort), a proprietary backend now discontinued in October 2024, and the current Intel Fortran Compiler (ifx), which employs an LLVM-based backend and was introduced in 2021 as its replacement.[8][9] The suite supports the compilation of Fortran code across various standards, enabling developers to target Intel architectures efficiently. Primarily utilized in scientific computing, high-performance computing (HPC), engineering simulations, and the modernization of legacy Fortran applications, the compiler addresses demands in fields requiring numerical computations and large-scale data processing. It integrates seamlessly within the Intel oneAPI HPC Toolkit, providing a unified environment for developing applications that span CPU, GPU, and AI workloads, thus facilitating cross-architecture portability and scalability.[8][1] Key benefits include advanced code optimizations tailored for Intel hardware, such as auto-vectorization and exploitation of multi-core processors, alongside robust support for parallel programming models including OpenMP and MPI. As of 2025, the latest release (2025.x) enhances conformance to the Fortran 2023 standard and improves vectorization capabilities, ensuring continued relevance for performance-critical applications.[2][8]Historical Development
The Intel Fortran Compiler traces its origins to the Fortran development efforts at Digital Equipment Corporation (DEC), where work on advanced Fortran compilers began in the late 1970s with the VAX-11 FORTRAN-IV-PLUS, derived from compilers for PDP-11 systems, evolving into full Fortran 77 support by 1980 and the release of DEC Fortran 90 in 1993 for VAX and Alpha processors.[10] Following DEC's acquisition by Compaq in 1998, the compiler was rebranded as Compaq Visual Fortran, maintaining robust support for Windows environments and integrating with Microsoft Visual Studio.[6] In August 2001, Intel acquired the Compaq Fortran development team, marking the compiler's integration into Intel's ecosystem and shifting focus toward optimizing for Intel architectures like IA-32 and IA-64 (Itanium).[6] This acquisition enabled Intel to leverage the established front-end for language parsing while pairing it with Intel's proprietary back-end for code generation, initially supporting Linux and Windows platforms by 2003.[6] Early development under Intel emphasized standards conformance and performance tuning for emerging multi-core processors. Version 8.0, released in 2004, achieved full Fortran 95 support, including modules, allocatable arrays, and pointers, while introducing features like precompiled headers and code-coverage tools to enhance development workflows.[6] By version 11.0 in 2007, the compiler incorporated advanced vectorization capabilities aligned with Intel's SSE4 instructions, supporting the growing emphasis on parallel processing in high-performance computing (HPC) applications post-2005. Support for Itanium processors, prominent in early versions for enterprise servers, was eventually phased out as Intel shifted resources to x86 architectures.[11] Subsequent releases focused on modern language standards and hardware advancements. Version 18.0 in 2017 provided full conformance to the Fortran 2008 standard, encompassing object-oriented features, parallel constructs via DO CONCURRENT, and submodules for improved modularity.[12] Version 19.0 in 2018 introduced partial support for Fortran 2018, including initial implementations of assumed-type arguments and team-based parallelism. A significant architectural shift occurred in 2021 with the introduction of the Intel Fortran Compiler (ifx) as part of the oneAPI toolkit, adopting an LLVM-based backend for greater modularity, cross-platform compatibility, and alignment with open-source ecosystems, while retaining the classic ifort front-end for backward compatibility.[13] In 2025, the compiler advanced toward Fortran 2023 conformance, implementing key features such as the RANK intrinsic for dynamic array handling and enhanced team parallelism for distributed-memory models, alongside optimizations within the oneAPI framework to improve performance on Intel's latest multi-core and vector processors. The Intel Fortran Compiler Classic (ifort) was deprecated and discontinued after the 2024.2 release in October 2024, with ifx established as the sole ongoing variant. This evolution reflects Intel's ongoing commitment to HPC standards, transitioning from proprietary optimizations to models centered on the new backend.[2][14]Core Features
Standards Conformance
The Intel Fortran Compiler (ifx) achieves full conformance to the Fortran language standards from Fortran 77 (ISO/IEC 1539-1:1978) through Fortran 2018 (ISO/IEC 1539-1:2018), encompassing all core features, deprecated elements, and deleted features from prior revisions.[15] This includes complete support for Fortran 90, 95, 2003, and 2008 in the LLVM-based ifx compiler, the current and sole supported variant following the discontinuation of the classic ifort compiler.[2] Support for Fortran 2023 (ISO/IEC 1539-1:2023) is partial as of the 2025.1 release, with implementation of select features including enhancements like arrays of coarrays, the AT format descriptor in I/O statements, new IEEE_ARITHMETIC intrinsic functions, and extended line length limits to 10,000 characters per line in free-form mode and statements up to 1,000,000 characters.[16][17] Advanced coarray features, such as full teams synchronization and notify operations, remain incomplete, with ongoing development prioritized for future updates.[16] The compiler incorporates Intel-specific extensions beyond strict standard conformance, including enhanced interprocedural optimizations (IPO) that leverage standard constructs for performance, full realization of advanced data types like unlimited polymorphic entities from Fortran 2003, and seamless integration with C/C++ via the ISO_C_BINDING module for mixed-language development. Compatibility options enable strict adherence to specific standards through flags such as -standard-semantics for floating-point behavior and source-form controls (-free or -fixed), while providing backward compatibility modes for legacy codebases, including dialects from VAX Fortran, DEC Fortran 90, and Compaq Visual Fortran.[15] The ifx compiler benefits from its LLVM backend for superior handling of modern Fortran 2018 constructs like submodules and polymorphic operations.[18] Users migrating from the legacy ifort are encouraged to transition to ifx for continued standards evolution.[18] Conformance is validated against ISO/IEC requirements, with Intel ensuring compliance through internal testing aligned with standard interpretations; the compiler passes core feature tests from suites like NIST Fortran validation and Polyhedron benchmarks for language fidelity, achieving reported full pass rates for Fortran 2018 essentials.[15]Optimization Capabilities
The Intel Fortran Compiler employs a range of advanced optimization techniques to enhance code performance, particularly for high-performance computing (HPC) applications on Intel architectures. These capabilities include automatic vectorization, interprocedural analysis, parallelization support, and profile-guided optimization, enabling developers to achieve efficient execution without extensive manual intervention. By leveraging hardware-specific instructions and whole-program analysis, the compiler generates code that exploits features like SIMD extensions and multi-core processing, resulting in substantial runtime improvements for numerical and scientific workloads.[19] Auto-vectorization is a core feature, where the compiler automatically transforms scalar loops into vectorized code using SIMD instructions such as AVX-512 and AMX for matrix operations on compatible Intel processors. Developers can guide this process with pragmas like!DIR$ IVDEP to indicate independent loop iterations, bypassing dependency checks and enabling more aggressive vectorization. This technique is particularly effective for array-heavy Fortran code, reducing iteration counts and improving throughput on Intel Xeon processors.[19][20]
Interprocedural analysis (IPA) and link-time optimization (LTO) facilitate whole-program optimization by analyzing code across multiple source files and libraries during the linking phase. Using options like -Qipo, the compiler performs inlining, constant propagation, and dead code elimination, which reduce function call overhead and enable better register allocation. The object reader method emulates the linker to resolve all references, while the table method uses call graphs for efficient analysis, leading to more compact and faster executables.[21]
Parallelization support includes near-complete conformance to OpenMP 5.2 as of the 2025.1 release, allowing offloading of computational kernels to Intel GPUs via directives for target regions and data mapping. The compiler also offers auto-parallelization for DO loops using the -parallel option, automatically inserting OpenMP pragmas where dependencies permit, to exploit multi-core CPUs. Integration with SYCL through the oneAPI ecosystem enables heterogeneous execution, though Fortran primarily relies on OpenMP for GPU offload.[1][22][2]
Profile-guided optimization (PGO) refines code based on runtime profiles collected during instrumented execution. Compilation with -prof-gen generates profile data from representative runs, which is then applied via -prof-use to optimize branch prediction, loop alignment, and function ordering. This feedback loop can yield up to 2x performance gains in HPC benchmarks on Intel Xeon systems by aligning hot paths with cache hierarchies.[19]
Additional techniques encompass loop unrolling to minimize overhead in short iterations, software prefetching to anticipate data access patterns, and loop fusion to combine adjacent loops for reduced memory traffic. The compiler integrates intrinsics from the Intel oneAPI Math Kernel Library (oneMKL) to accelerate BLAS and LAPACK routines, invoking optimized assembly for linear algebra operations. These methods collectively enhance data locality and instruction-level parallelism.[19]
In Intel benchmarks for HPC workloads on Xeon processors, these optimizations deliver up to 2-3x speedups compared to unoptimized or open-source compiler baselines, particularly in vectorized and parallelized numerical simulations. The ifx variant excels in cross-module inlining and modern code generation.[8]
Debugging and Profiling Tools
The Intel Fortran Compiler provides robust support for source-level debugging through integration with standard tools such as GDB and LLDB on Linux systems, as well as the Microsoft Visual Studio debugger on Windows. The-g option generates symbolic debug information, allowing developers to inspect variables, set breakpoints, and trace execution flow during runtime. Complementing this, the -traceback flag enables the generation of a traceback table, which displays detailed stack traces upon encountering runtime errors, facilitating quicker identification of issues like segmentation faults or invalid operations.[23]
To aid in error detection during execution, the compiler includes runtime checking options that enforce safety without altering source code. The -check bounds option performs array bounds verification at runtime, halting execution and reporting violations to prevent buffer overflows. Similarly, -check uninit scans for accesses to uninitialized variables, issuing warnings or stops to catch potential data corruption early. For numerical stability, the -fpe:0 option (equivalent to -fpe0 in some contexts) traps all floating-point exceptions, such as overflows or divisions by zero, enabling precise handling of mathematical errors in scientific computations.[24]
Advanced analysis tools extend the compiler's capabilities for complex applications. Intel Inspector performs dynamic analysis to detect memory-related errors, including leaks, invalid accesses, and uninitialized memory reads in Fortran code, while also identifying threading data races in parallel programs. For performance tuning, Intel VTune Profiler conducts hotspot analysis on Fortran executables, using user-mode sampling or hardware event-based sampling to pinpoint CPU-intensive functions; it leverages hardware performance counters to quantify events like cache misses, guiding optimizations for better throughput. In parallel environments, Intel Trace Analyzer and Collector traces MPI communications and OpenMP regions in Fortran applications, visualizing imbalances in load or synchronization to improve scalability.[25][26][27]
Support for Fortran 2008 coarrays includes specialized debugging techniques for multi-image executions. Developers can insert a volatile stall loop (e.g., DO WHILE (WAIT_FOR_DEBUGGER) ) before critical sections and compile with -g to enable symbols; on Linux, attach GDB instances to each image's process ID via multiple terminals, then resume by setting the flag to false for synchronized inspection across images. On Windows, similar attachment uses the Visual Studio debugger, though multi-process handling requires manual PID identification.[28]
The ifx compiler, leveraging an LLVM backend, generates enhanced debug information compatible with modern IDEs like Visual Studio, supporting full symbol resolution and expression evaluation for derived types during sessions. For users migrating from legacy ifort, note that ifx provides updated diagnostics while maintaining compatibility for most code. An example workflow for optimized debugging involves compiling with -debug inline-debug-info alongside optimization flags, embedding symbols directly in object files to retain traceability without separate unoptimized builds, though this may increase binary size.[18][29][23]
Debugging effectiveness diminishes at aggressive optimization levels, such as -O3, where transformations like inlining, loop unrolling, or dead code elimination can relocate or eliminate source lines, leading to inaccurate variable views or skipped breakpoints. In such cases, developers often maintain distinct debug configurations at -O0 or -O1 to preserve fidelity, balancing analysis needs with performance goals.[30]
Platform Support
Target Architectures
The Intel Fortran Compiler primarily targets the Intel 64 architecture (x86-64), encompassing a range of processors including the Intel Core i-series, Xeon Scalable family, and architectures such as Meteor Lake and Arrow Lake, which incorporate support for Advanced Matrix Extensions (AMX) to enhance matrix computations in high-performance computing (HPC) and AI workloads.[3][2] This focus enables optimized code generation tailored to Intel's vector processing capabilities, ensuring compatibility as both host and target platforms for these systems.[3] Support for the Itanium (IA-64) architecture was discontinued after the 2021 version, reflecting Intel's shift away from this platform in favor of x86-64 dominance.[3] Native GPU compilation is not provided, though the oneAPI ecosystem facilitates offload to Intel Data Center GPU Max series using OpenMP directives, allowing Fortran code to leverage GPU acceleration for parallel tasks.[31] The compiler fully exploits advanced instruction sets such as AVX2 and AVX-512, with compiler flags like -xCORE-AVX2 for auto-detection and generation of vectorized code, and -mtune=skylake (or equivalents for newer CPUs) to fine-tune performance for specific processor microarchitectures.[2] These features prioritize vector unit utilization in HPC applications, where benchmarks demonstrate efficiencies approaching or exceeding 90% of theoretical peak FLOPS on compatible Intel hardware, particularly in linear algebra and simulation workloads.[32] Key differences exist between the classic ifort and the modern ifx compilers: ifort, now discontinued as of 2025, excels in optimizations for older Intel CPUs with established x86 pipelines, while ifx, built on LLVM technology, targets contemporary and heterogeneous systems, including better integration with oneAPI for multi-architecture offload.[8][2]Operating System Compatibility
The Intel Fortran Compiler provides full support for various Linux distributions, including Red Hat Enterprise Linux 9.x and 10.x, Ubuntu 22.04 and 24.04, Fedora 41 and 42, and SUSE Linux Enterprise Server 15 SP7, with installation available via RPM and DEB packages as part of the Intel oneAPI HPC Toolkit.[3] Windows support encompasses Windows 10 and 11 (Pro and Enterprise editions) as well as Windows Server 2022 and 2025, integrating seamlessly with Microsoft Visual Studio 2019 and 2022 or standalone Build Tools for compilation.[3] macOS support has been discontinued for both the Intel Fortran Compiler Classic (ifort) and the modern Intel Fortran Compiler (ifx) starting with the oneAPI 2024.0 release; ifx was never available for macOS, while ifort was supported up to version 2023 on macOS 13 (x86-64 only).[3][33][34][35] The compiler integrates with standard build tools across supported platforms, including GNU Make and CMake on Linux (requiring compatible GNU Compiler Collection versions), and command-line drivers for both ifort and ifx; on Windows, it leverages the MSVC toolchain, while legacy Xcode integration was available for macOS up to oneAPI 2023.2.[3][36] Cross-compilation is facilitated via Windows Subsystem for Linux (WSL 2), enabling Linux-hosted builds targeting Windows environments, though native targeting for Android or iOS is not supported.[3] In 2025 updates (oneAPI 2025.3), support has been extended to newer OS versions such as RHEL 10.x, Ubuntu 24.04, Fedora 42, and Windows Server 2025, with enhanced containerization for high-performance computing (HPC) workflows using Docker and Podman through official Intel oneAPI HPC Toolkit images.[3][37][38] Key limitations include the absence of support for real-time operating systems and the requirement for the Intel oneAPI Base Toolkit to access full runtime libraries and dependencies.[3]Distribution and Integration
Packaging Options
The Intel Fortran Compiler is primarily distributed as part of the Intel oneAPI HPC Toolkit, a free downloadable bundle that integrates the compiler with C++ and DPC++ compilers, as well as performance libraries such as the Intel oneAPI Math Kernel Library (oneMKL).[39] The toolkit installer is approximately 2.6 GB in size, with the full installation requiring up to 14 GB of disk space depending on selected components, enabling high-performance computing (HPC) workflows.[37][3] Standalone options include the Intel Fortran Essentials bundle, which provides a focused subset for Fortran development, including the compiler, debugger, and key libraries without the broader HPC tools.[40] A stand-alone download of the Intel Fortran Compiler is also available directly from Intel or preferred repositories for greater flexibility.[41] The compiler can be installed as a modular component within the Intel oneAPI Base Toolkit using command-line options such as--components=intel.oneapi.compilers.fortran during installation, allowing users to select only the Fortran-related elements.[42] Legacy distributions, such as the Intel Parallel Studio XE bundles containing the classic ifort compiler, were discontinued after 2020, with Intel recommending migration to the oneAPI-based versions.[43]
Installation formats vary by platform: MSI executables for Windows, RPM and DEB packages for Linux distributions, and TAR archives for broader Linux compatibility; macOS support has been discontinued since the 2024.0 release.[3] The compiler binaries themselves occupy about 200 MB, though the complete toolkit footprint expands significantly with included libraries and tools.[44]
The compiler requires the Intel oneAPI runtime libraries for core functionality, particularly for integrating with optimized libraries like oneMKL, while optional add-ons such as the Intel MPI Library can be included for parallel computing support.[45] Version management supports side-by-side installations of the classic (ifort) and new (ifx) variants in separate directories, facilitated by environment scripts like setvars.sh (Linux/macOS) or setvars.bat (Windows) to configure paths without conflicts.[46]
