Intel Fortran-Compiler - Intel Fortran Compiler

Intel Fortran Classic
Entwickler Intel
Stabile Version
2021.1.2 / 20. Dezember 2020 ; vor 6 Monaten ( 2020-12-20 )
Betriebssystem Linux , Windows , macOS
Art Compiler
Lizenz Freeware , Optionale Prioritätsunterstützung
Webseite software .intel .com /content /www /us /en /develop /tools /oneapi /components /fortran-compiler .html
Intel Fortran-Compiler (Beta)
Entwickler Intel
Vorschauversion
2021.1.2 / 20. Dezember 2020 ; vor 6 Monaten ( 2020-12-20 )
Betriebssystem Linux , Windows
Art Compiler
Lizenz Freeware , Optionale Prioritätsunterstützung
Webseite software .intel .com /content /www /us /en /develop /tools /oneapi /components /fortran-compiler .html

Intel Fortran Compiler ist eine Gruppe von Fortran- Compilern von Intel für Windows , macOS und Linux .

Überblick

Die Compiler generieren Code für IA-32- und Intel 64- Prozessoren und bestimmte nicht von Intel stammende, aber kompatible Prozessoren, wie beispielsweise bestimmte AMD- Prozessoren. Eine spezielle Version des Compilers (11.1) bleibt für die Entwicklung von Linux-basierten Anwendungen für IA-64- Prozessoren ( Itanium 2 ) verfügbar . Unter Windows ist es als Intel Visual Fortran bekannt. Unter macOS und Linux ist es als Intel Fortran bekannt. Im Jahr 2020 wurde der bestehende Compiler in „Intel Fortran Classic“ (ifort) umbenannt und ein neuer Intel Fortran Compiler (beta) (ifx) eingeführt, der GPU-Offload unterstützt.

Die Version 2021 des Classic-Compilers bietet volle Fortran-Unterstützung durch den 2018-Standard, vollständiges OpenMP* 4.5 und Initial Open MP 5.1 nur für CPU. Der Beta-Compiler 2021 konzentriert sich auf OpenMP für GPU Offload. Bei Verwendung mit dem Intel HPC-Toolkit (siehe "Beschreibung der Verpackung" unten) kann der Compiler auch automatisch Message Passing Interface- Aufrufe für verteilten Speicher-Multiprocessing aus OpenMP-Direktiven generieren .

Für weitere Informationen zu Fortran-Standards stehen eine Reihe oder Ressourcen zur Verfügung, z. B. der Wikipedia- Fortran- Eintrag oder die Fortran- Wiki-Seite. Bei Verwendung mit Intel-Cluster-Tools (siehe "Beschreibung der Verpackung" unten) kann der Compiler auch automatisch Message Passing Interface- Aufrufe für verteilten Speicher-Multiprocessing aus OpenMP-Direktiven generieren .

Optimierungen

Intel-Compiler sind für Computersysteme optimiert, die Prozessoren verwenden, die Intel-Architekturen unterstützen. Sie wurden entwickelt, um Blockierungen zu minimieren und Code zu erzeugen, der in möglichst wenigen Zyklen ausgeführt wird. Intel Fortran Compiler unterstützen drei separate High-Level-Techniken zur Optimierung des kompilierten Programms: Interprozedurale Optimierung (IPO), profilgesteuerte Optimierung (PGO) und andere High-Level-Optimierungen (HLO).

Die interprozedurale Optimierung wendet typische Compiler-Optimierungen an (z. B. konstante Weitergabe), verwendet jedoch einen breiteren Bereich, der mehrere Prozeduren, mehrere Dateien oder das gesamte Programm umfassen kann.

Bei der profilgesteuerten Optimierung generiert der Compiler aus der Nutzung der Anwendung mit repräsentativen Workloads einen Datensatz mit leistungsbezogenen Informationen, die er analysiert, um herauszufinden, welche Teile der Anwendung häufiger und seltener ausgeführt werden. Der Compiler verwendet diese Daten, um die Anwendungsausführung zu organisieren, um die Leistung basierend auf der tatsächlichen Verwendung der Anwendung zu optimieren. Dies steht im Gegensatz zu IPO, das Anwendungen gemäß dem logischen Fluss der Anwendung unabhängig von Workloads optimiert. Die beiden können kombiniert werden, um arbeitslastbasierte Optimierungen bereitzustellen, innerhalb derer der logische Fluss optimiert wird. Somit können alle Optimierungen von profilgeführtem Feedback profitieren, da sie bei Kompilierungsentscheidungen weniger auf Heuristiken angewiesen sind.

High-Level-Optimierungen sind Optimierungen, die an einer Version des Programms durchgeführt werden, die den Quellcode genauer repräsentiert. Dazu gehören Loop Interchange , Loop Fusion , Loop Unrolling , Loop Distribution , Data Prefetch und mehr.

Unterstützung von Standards

Der Intel Fortran Compiler Classic unterstützt Fortran bis zum Standard 2018 vollständig. Der Intel Fortran Compiler (Beta) unterstützt Fortran 77/90/95 vollständig und unterstützt teilweise den Fortran 2003-Standard.

Architekturen

Beschreibung der Verpackung

Die Compiler sind eigenständig von Intel und von APT- und Yum-Repositorys erhältlich. Sie sind auch im Intel oneAPI HPC Toolkit verfügbar, das andere Build-Tools wie Bibliotheken und Analysetools zur Fehlerprüfung und Leistungsanalyse enthält. Container mit den Compilern befinden sich auf Docker Hub.

Geschichte seit 2003

Compiler-Version Veröffentlichungsdatum Wichtige neue Funktionen
Intel Fortran-Compiler 8.0 15. Dezember 2003 Vorkompilierte Header, Code-Coverage-Tools.
Intel Fortran-Compiler 8.1 September 2004 AMD64- Architektur (für Linux).
Intel Fortran-Compiler 9.0 14. Juni 2005 AMD64- Architektur (für Windows), softwarebasierte spekulative Pre-Computation (SSP)-Optimierung, verbesserte Schleifenoptimierungsberichte.
Intel Fortran-Compiler 10.0 5. Juni 2007 Verbesserter Parallelisierer und Vektorisierer, Streaming SIMD Extensions 4 ( SSE4 ), neue und verbesserte Optimierungsberichte für erweiterte Schleifentransformationen, neue optimierte Implementierung der Ausnahmebehandlung.
Intel Fortran-Compiler 10.1 7. November 2007 Neue OpenMP*-kompatible Laufzeitbibliothek. Um die neuen Bibliotheken zu verwenden, müssen Sie die neue Option "-Qopenmp /Qopenmp-lib:compat" unter Windows und "-openmp -openmp-lib:compat" unter Linux verwenden. Diese Version des Intel-Compilers unterstützt mehr systeminterne Funktionen von Microsoft Visual Studio 2005. VS2008-Unterstützung – nur Befehlszeile in dieser Version.
Intel Fortran-Compiler 11.0 November 2008 Mehr Fortran 2003-Unterstützung. Unterstützung für OpenMP 3.0. Source Checker für statischen Speicher/parallele Diagnose. Kommerzielle Lizenzen für die Windows-Version umfassen Microsoft Visual Studio 2005 Premier Partner Edition.
Intel Fortran-Compiler 11.1 23. Juni 2009 Unterstützung für die neuesten Intel SSE-, AVX- und AES-Anweisungen. Mehr Fortran 2003-Unterstützung. Unterstützung für die neueste Intel MKL-Version (in Compiler-Produkten enthalten). Kommerzielle Lizenzen für die Windows-Version umfassen Microsoft Visual Studio 2008 Shell und Bibliotheken.
Intel Fortran Composer XE 2011 bis Update 5 (Compiler 12.0) 7. November 2010 Coarray Fortran, zusätzlich 2003 (FINAL-Subroutinen, Schlüsselwort GENERIC) und 2008 (Coarrays, CODIMENSION, SYNC ALL, SYNC IMAGES, SYNC MEMORY, CRITICAL, LOCK, ERROR STOP, ALLOCATE/DEALLOCATE)
Intel Fortran Composer XE 2011 Update 6 und höher (Compiler 12.1) 8. September 2011 OpenMP 3.1, zusätzlich 2003 (ALLOCATE mit SOURCE=, polymorpher Quellcode) und 2008-Standardunterstützung, Windows-Version wird mit Visual Studio 2010 Shell geliefert.
Intel Fortran Composer XE 2013 (Compiler 13.0) 5. September 2012 Linux-basierte Unterstützung für Intel Xeon Phi-Coprozessoren, Unterstützung für Microsoft Visual Studio 12 (Desktop), Unterstützung für gcc 4.7, Unterstützung für Intel AVX 2-Anweisungen, Aktualisierungen vorhandener Funktionen, die auf eine verbesserte Anwendungsleistung ausgerichtet sind. Fortgesetzte Verfügbarkeit der Visual Studio 2010-Shell für Windows-Versionen.
Intel Fortran Composer XE 2013 SP1 (Compiler 14.0) 31. Juli 2013 Benutzerdefinierter abgeleiteter Typ-E/A; OpenMP-Direktiven, -Klauseln und -Verfahren; grobkörniger; Unterstützung für parallele Builds von Microsoft Visual Studio
Intel Fortran Composer XE 2013 SP1 Update 1 (Compiler 14.0.1) 18. Oktober 2013 Japanische Lokalisierung von 14.0; Unterstützung für Windows 8.1 und Xcode 5.0
Intel Fortran Composer XE 2015 (Compiler 15.0) 5. August 2014 Volle Unterstützung für Fortran 2003; BLOCK von Fortran 2008; EXECUTE_COMMAND_LINE von Fortran 2008; Neuer Optimierungsbericht mit Anmerkungen zur Quelle aus Visual Studio
Intel Fortran Composer XE 2015 Update 1 (Compiler 15.0.1) 30. Oktober 2014 AVX-512- Unterstützung; Japanische Lokalisierung; MIN/MAX-Reduzierungen in der SIMD-Schleifenrichtlinie
Intel Fortran Compiler 16.0, Teil von Intel Parallel Studio XE 2016 25. August 2015 Submodule von Fortran 2008, verbesserte Interoperabilität von Fortran mit C aus dem Entwurf von Fortran 2018, OpenMP 4.1-Erweiterungen
Intel Fortran-Compiler 17.0 4. März 2016 OpenMP 4.5-Erweiterungen
Intel Fortran-Compiler 18.0 17. Januar 2017 Voller Fortran 2008-Support
Intel Fortran-Compiler 19.0 12. September 2018 Einige Fortran 2018-Funktionen
Intel Fortran Compiler Classic 2021.1.1 8. Dezember 2020 Vollständige Unterstützung von Fortran 2018, OpenMP 4.5 und anfängliches Open MP 5.1 nur für CPU
Intel Fortran-Compiler (Beta) 2021.1.1 8. Dezember 2020 OpenMP* 4.5 und anfängliche OpenMP-Unterstützung für CPU- und GPU-Offload

Debugging

Der Intel-Compiler stellt Debugging-Informationen bereit, die für die gängigen Debugger ( DWARF 2 unter Linux, ähnlich gdb , und COFF für Windows) standardmäßig sind . Die Flags zum Kompilieren mit Debugging-Informationen sind /Zi unter Windows und -g unter Linux. Das Debuggen erfolgt unter Windows mit dem Visual Studio-Debugger und unter Linux mit gdb.

Während der Intel-Compiler eine gprof-kompatible Profilerstellungsausgabe generieren kann , bietet Intel auch einen systemweiten statistischen Profiler auf Kernelebene als separates Produkt namens VTune an . VTune bietet eine benutzerfreundliche GUI (integriert in Visual Studio für Windows, Eclipse für Linux) sowie eine Befehlszeilenschnittstelle. Neben dem VTune-Profiler gibt es Intel Advisor , der sich auf Vektorisierungsoptimierung und Tools für Threading-Design und Prototyping spezialisiert hat.

Intel bietet auch ein Tool zur Erkennung von Speicher- und Threading-Fehlern namens Intel Inspector XE an. In Bezug auf Speicherfehler hilft es bei der Erkennung von Speicherlecks , Speicherbeschädigungen, Zuordnung/Aufhebung der Zuordnung von API-Fehlanpassungen und inkonsistenter Speicher-API-Nutzung. In Bezug auf Threading-Fehler hilft es, Data Races (sowohl Heap als auch Stack), Deadlocks und Thread- und Synchronisations-API-Fehler zu erkennen.

Siehe auch

Verweise

Externe Links