Intel Fortran-Compiler - Intel Fortran Compiler
Entwickler | Intel |
---|---|
Stabile Version | 2021.1.2 / 20. Dezember 2020
|
Betriebssystem | Linux , Windows , macOS |
Art | Compiler |
Lizenz | Freeware , Optionale Prioritätsunterstützung |
Webseite | software |
Entwickler | Intel |
---|---|
Vorschauversion | 2021.1.2 / 20. Dezember 2020
|
Betriebssystem | Linux , Windows |
Art | Compiler |
Lizenz | Freeware , Optionale Prioritätsunterstützung |
Webseite | software |
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
- IA-32
- x86-64 ( Intel 64 und AMD64 )
- Intel Xeon Phi-Coprozessor
- IA-64 ( Itanium 2)
- X e- Architektur
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
- Intel Parallel Studio XE
- Intel Integrated Performance Primitives (IPP)
- Intel Data Analytics Acceleration Library (DAAL)
- Intel Math Kernel Library (MKL)
- Intel Threading-Bausteine (TBB)
- VTune- Verstärker
- Intel C++-Compiler
- Intel Developer Zone (Intel DZ; Support und Diskussion)