Intel Fortran Compiler
Create apps that are future-scalable by using code that is optimized for the Intel architecture. Utilising built-in technologies for Intel Xeon Scalable, Intel Xeon, Intel Core Ultra, and Intel Core processors, the Intel Fortran Compiler has a long history of producing optimized code that complies with industry standards. The compiler has added support for GPUs in order to remain in line with Intel’s varied and changing architectures.
Introduction to the Intel Fortran Compiler
Unless otherwise noted, assume that all supported architectures and operating systems are covered by the information in this document.
Architecture Support
The Intel 64 architecture is supported by the compiler.
OS Support
The following operating systems are compatible with compiler applications:
- Linux operating systems for platforms with an Intel 64 architecture.
- Windows operating systems for PCs with an Intel 64 architecture.
The compiler may be used in an Integrated Development Environment (IDE) that supports it or in the command line:
- Visual Studio by Microsoft (Windows only)
The Intel Fortran Compiler (ifx) is a new compiler that uses LLVM back-end technology and is based on the Intel Fortran Compiler Classic (ifort) front-end and runtime libraries. Fortran 2018 language extensions, the majority of OpenMP 5.2 and certain OpenMP Version 6.0 TR12 directives, and offloading capabilities are all supported by ifx.
Standards Support
Fortran 2018, some Fortran 2023, most of OpenMP 5.2, and some OpenMP 6.0 TR12 capabilities are among the most recent standards that the compiler utilizes.
Features
Cross-Architecture Compilation
- Increases development efficiency by using single-source code to target CPUs and GPUs and allowing for specific tuning.
- Completely complies with general Fortran language standards until 2018, along with a few Fortran 2023 language features.
- Includes the almost full OpenMP 5.0, 5.1, and 5.2 for CPU and GPU offload, industry standards compatibility for OpenMP 4.5, and a few new OpenMP 6.0 capabilities.
- Utilizes Intel’s legacy of compiler leadership and the well-proven LLVM compiler technology.
Built-In Performance
Utilizes OpenMP, automatic parallelism, coarrays, DO CONCURRENT, and multicore, Single Instruction Multiple Data (SIMD) vectorization, and multiprocessor systems for GPU offload.
uses an autonomous processor dispatch function to optimize code.
Development Environment Flexibility
Utilize a compatible IDE or the command line to run the compiler:
- Visual Studio by Microsoft (Windows only).
- Eclipse C/C++ Development Tools (only available on Linux and CDT).
Code Samples
Fortran and OpenMP Code Samples for CPU
Coarray Fortran
This code example offers practical experience with the Fortran coarray feature for parallel programming by showing how to create and execute a serial implementation of a Monte Carlo program before converting it to run in parallel using Fortran coarrays.
OpenMP Primes
The OpenMP Primes code example shows how to find prime numbers, including the count of particular prime kinds, using the OpenMP API and Intel Fortran Compiler. In order to improve code efficiency, two OpenMP directives are used, offering useful guidance on creating and executing Fortran OpenMP programs.
Fortran and OpenMP Offload
Matrix Multiply Fortran
The Matrix Multiply code example provides a step-by-step guidance on how to modify a simple Fortran program to use OpenMP directives with the Intel Fortran Compiler to offload calculations to an Intel GPU. To illustrate how to utilize OpenMP directives in Fortran for GPU offloading, it focusses on a straightforward matrix multiplication method.
OpenMP Offload Fortran Tutorials
This repository includes a Jupyter Notebook designed to demonstrate the fundamentals of OpenMP offloading. It focusses on the procedure of utilising OpenMP with the Intel Fortran Compiler to offload complex computations to a GPU, offering thorough insights into GPU offloading with OpenMP.
Intel Fortran Compiler Considerations
LLVM backend technology powers the new Intel Fortran Compiler (ifx), based on the ifort front end and runtime libraries. Currently, ifx supports the majority of OpenMP 5.0/5.1 directives and offloading capabilities, as well as aspects of the Fortran 95 language. Binaries and libraries created with ifort may be linked with binaries and libraries created with ifx, and.mod files created with one compiler can be used by the other. ifx is compatible with both binary (.o/.obj) and module (.mod) files. The ifort runtime libraries are used by both compilers.
With ifx and ifort, the -fp-model fast and -fp-model fast=2 options function differently. Since the code sequence created for them implies a comparing can entail a NaN, ifort allows floating point compares to occur as defined by the IEEE floating point standard. The check for NaN operands is not generated by ifx. When using -fp-model fast or -fp-model fast=2 with ifx and expecting NaN comparisons to match ifort’s behaviour, add the -assume nan_compare option to the command line.
Intel Fortran Compiler Processor Specifications
Category | Specifications |
---|---|
Processors | – Scalable processors from Intel Xeon |
– The Xeon processor series from Intel | |
– Processors with Intel Core Ultra | |
– CPUs with Intel Cores | |
– Atom CPUs from Intel | |
GPUs | – Intel Arc graphics |
– Intel Iris X graphics | |
– Intel UHD graphics for 11th generation Intel CPUs | |
– Flex Series of Intel Data Centre GPUs | |
– The Intel Data Centre GPU Max Series | |
FPGAs | – Intel Stratix 10 FPGA |
– Agilex FPGA from Intel | |
– Intel Arrie 10 GX FPGA-equipped Programmable Acceleration Card | |
Operating Systems | – Linux and Windows |
Fortran Language Support | – Full 77, 90, 95, 2003, 2008, 2018, and partial 2023 support |
(Refer to release notes for detailed version information) | |
Development Software | – Microsoft Visual Studio |
Threading Support | – Native threads using OpenMP |
– OpenMP versions: 4.5, 5.0, 5.1, 5.2, 6.0 |