Překladač Intel Fortran - Intel Fortran Compiler

Překladač Intel Fortran
VývojářiIntel
Stabilní uvolnění
19.1.3 (XE 2020) / 20. října 2020; Před 34 dny (2020-10-20)[1]
Operační systémLinux, Okna, OS X
TypPřekladač
LicenceProprietární, Freeware[2]
webová stránkasoftware.intel.com/ en-us/ Intel-kompilátory

Překladač Intel Fortran, také známý jako IFORT, je skupina Fortran překladače z Intel pro Okna, OS X, a Linux.

Přehled

Překladače generují kód pro IA-32 a Intel 64 procesory a některé jiné než Intel, ale kompatibilní procesory, například některé AMD procesory. Specifická verze kompilátoru (11.1) zůstává k dispozici pro vývoj aplikací založených na Linuxu pro IA-64 (Itanium 2 ) procesory. Ve Windows je známý jako Intel Visual Fortran.[3] V OS X a Linux je známý jako Intel Fortran.

Nejnovější verze kompilátoru nadále podporuje Koprocesor Intel Xeon Phi a schopnosti sady instrukcí Intel Architecture pomocí automatická vektorizace, což umožňuje používání aplikací SSE, SSE2, SSE3, SSSE3, SSE4 a AVX SIMD instrukce. Použití těchto pokynů prostřednictvím kompilátoru může vést ke zlepšení výkonu aplikací v některých aplikacích spuštěných na architekturách IA-32 a Intel 64 ve srovnání s aplikacemi vytvořenými pomocí kompilátorů, které tyto pokyny nepodporují.

Intel Fortran také pokračuje v podpoře pro OpenMP 4.0,[4] automatická paralelizace pro symetrické více procesů, téměř celý standard Fortran 2003 a velká část standardu Fortran 2008[5] počítaje v to Coarray Fortran, uživatelem definované I / O, BLOCK a submoduly. Pro více informací o standardech Fortran je k dispozici řada zdrojů, například Wikipedia Fortran vstup nebo Fortran wiki stránka. Při použití s ​​klastrovými nástroji Intel (viz „Popis balení“ níže) může kompilátor také automaticky generovat Rozhraní pro předávání zpráv vyzývá k multiprocesing distribuované paměti ze směrnic OpenMP.

Optimalizace

Překladače Intel jsou optimalizovány[6] do počítačových systémů využívajících procesory podporující architektury Intel. Jsou navrženy tak, aby minimalizovaly stánky a produkovaly kód, který se spustí v co nejmenším počtu cyklů. Překladače Intel Fortran podporují tři samostatné techniky na vysoké úrovni pro optimalizaci kompilovaného programu: meziprocedurální optimalizace (IPO), profilová optimalizace (PGO) a další optimalizace na vysoké úrovni (HLO). Podporují také direktivní přístup k vykládání aplikací na koprocesory Intel, jako je Intel Xeon Phi koprocesor.

Interprocedurální optimalizace aplikuje typické optimalizace kompilátoru (například konstantní šíření), ale používá širší rozsah, který může zahrnovat více procedur, více souborů nebo celý program.[7]

Ohledně profilová optimalizace, kompilátor vygeneruje datovou sadu informací souvisejících s výkonem z používání aplikace s reprezentativními pracovními zátěžemi, kterou poté analyzuje a zjistí, které části aplikace se provádějí stále méně často. Kompilátor používá tato data k organizaci spuštění aplikace k optimalizaci výkonu na základě toho, jak se aplikace ve skutečnosti používá. To je na rozdíl od IPO, které optimalizuje aplikace podle logického toku aplikace nezávisle na pracovní zátěži. Tyto dva lze kombinovat, aby poskytly optimalizace založené na pracovní zátěži, ve které je optimalizován logický tok. Všechny optimalizace tedy mohou těžit ze zpětné vazby podle profilu, protože jsou méně závislé na heuristice při rozhodování o kompilaci.

Optimalizace na vysoké úrovni jsou optimalizace prováděné na verzi programu, která více odpovídá zdrojovému kódu. To zahrnuje výměna smyčky, smyčková fúze, odvíjení smyčky, distribuce smyčky, předběžné načítání dat a další.[8]

Podpora standardů

Kompilátor Intel Fortran podporuje všechny funkce standardů Fortran 90, Fortran 95, Fortran 2003 a většinu Fortranu 2008. Podporuje také některé funkce konceptu Fortran 2018. Kromě toho podporuje různá rozšíření nalezená ve VAX Fortran a Compaq Visual Fortran.

Částečný seznam položek ze standardu Fortran 2003 podporovaných Intel Fortran:

  • Parametrizované odvozené typy
  • Uživatelem definovaný odvozený typ I / O
  • Enumerátoři
  • Rozšíření typu a postupy vázané na typ
  • ZÁVĚREČNÉ rutiny a přetížení GENERIC, OPERATOR a ASSIGNMENT v procedurách vázaných na typ
  • Polymorfní data a CLASS deklarace
  • Přidělitelné skalární proměnné (není znak s odloženou délkou)
  • SOURCE = klíčové slovo pro ALLOCATE
  • Vnitřní moduly IEEE_EXCEPTIONS, IEEE_ARITHMETIC a IEEE_FEATURES
  • PŘIDRUŽIT konstrukt
  • DO CONCURRENT konstrukce
  • Ukazatele PROCESU a ukazatele postupu
  • CONTIGUOUS atribut
  • Konstruktory struktury s názvy komponent a výchozí inicializací
  • Konstruktory polí se specifikacemi typu a délky znaků
  • Klíčová slova I / O BLANK, DECIMAL, DELIM, ENCODING, IOMSG, PAD, ROUND, SIGN a SIZE
  • VEŘEJNÉ typy s SOUKROMÝMI komponenty a SOUKROMÉ typy s VEŘEJNÝMI komponenty
  • Pro přístup ke streamu lze otevřít soubor (ACCESS = 'STREAM')
  • Atribut BIND a vnitřní modul ISO_C_BINDING
  • Atribut ASYNCHRONOUS
  • Atribut VALUE
  • Prohlášení FLUSH
  • ČEKEJTE prohlášení
  • Prohlášení IMPORT
  • Přidělitelné komponenty odvozených typů, přidělitelné fiktivní argumenty a přidělitelné výsledky funkce
  • Atribut VOLATILE[9]
  • Názvy o délce až 63 znaků
  • Výpisy až 256 řádků

Částečný seznam položek ze standardu Fortran 2008 podporovaných Intel Fortran:

  • Coarrays
  • Dílčí moduly
  • Konstrukce BLOCK umožňující dynamický rozsah
  • KRITICKÝ konstrukt
  • Standard Fortran 2008 specifikuje maximální hodnocení 15; maximální pozice pole byla v Intel Fortran zvýšena na 31 rozměrů
  • Obecné rozhraní může mít stejný název jako odvozený typ
  • Specifikace mezí a seznam přemapování mezí na přiřazení ukazatele
  • NEWUNIT = specifikátor v OPEN
  • Sekce OBSAH může být prázdná
  • Coarrays lze zadat v příkazech ALLOCATABLE, ALLOCATE a TARGET
  • Klíčové slovo MOLD v ALLOCATE
  • Prohlášení DO CONCURRENT
  • Příkaz ERROR STOP

Fortran 2018, aktuálně ve verzi konceptu, zahrnuje další interoperabilitu mezi Fortranem a C. Intel Fortran podporuje koncept Fortran 2018 od verze 16.0.

Architektury

Popis balení

Překladač Intel Fortran je k dispozici jako součást Intel Parallel Studio Sada XE 2016, která se zaměřuje na vývoj modelů paralelismu v aplikačním softwaru. Zahrnuje také Intel C ++, Intel Math Kernel Library, Intel Integrated Performance Primitives, Intel Data Analytics Acceleration Library a nástroje pro analýzu výkonu, jako je Intel VTune Amplifier a Intel Inspector. Existují tři formy Parallel Studio XE: Composer, Professional a Cluster. Edice Composer Edition obsahuje kompilátory C ++ a / nebo Fortran, knihovny výkonu a podporu paralelních modelů. Professional Edition přidává analytické nástroje, které pomáhají při ladění a ladění paralelních aplikací. Vydání Cluster Edition přidává podporu pro vývoj softwaru pro počítačové klastry. Zahrnuje všechny výše uvedené plus standardy MPI Knihovna, nástroj pro profilování a analýzu komunikace MPI, nástroje pro kontrolu a ladění chyb MPI a kontrola clusteru.

Historie od roku 2003

Verze kompilátoruDatum vydáníHlavní nové funkce
Intel Fortran Compiler 8.015. prosince 2003Předkompilované hlavičky, nástroje pro pokrytí kódu.
Intel Fortran Compiler 8.1Září 2004AMD64 architektura (pro Linux).
Intel Fortran Compiler 9.014. června 2005AMD64 architektura (pro Windows), softwarová spekulativní předvýpočetní optimalizace (SSP), vylepšené zprávy o optimalizaci smyček.
Intel Fortran Compiler 10.05. června 2007Vylepšený paralelizátor a vektorizér, Streaming SIMD Extensions 4 (SSE4 ), nové a vylepšené zprávy o optimalizaci pro pokročilé transformace smyček, nová optimalizovaná implementace zpracování výjimek.
Intel Fortran Compiler 10.17. listopadu 2007Nová knihovna runtime kompatibility s OpenMP *. Chcete-li používat nové knihovny, musíte použít novou možnost „-Qopenmp / Qopenmp-lib: compat“ v systému Windows a „-openmp -openmp-lib: compat“ v systému Linux. Tato verze kompilátoru Intel podporuje více vnitřních funkcí od Microsoft Visual Studio 2005. Podpora VS2008 - příkazový řádek pouze v této verzi.
Intel Fortran Compiler 11.0Listopadu 2008Více podpory pro Fortran 2003. Podpora OpenMP 3.0. Kontrola zdroje pro statickou paměť / paralelní diagnostiku. Mezi komerční licence pro verzi Windows patří Microsoft Visual Studio Vydání Premier Partner 2005.
Překladač Intel Fortran 11.123. června 2009Podpora nejnovějších pokynů Intel SSE, AVX a AES. Více podpory pro Fortran 2003. Podpora nejnovějšího vydání Intel MKL (zahrnuto v produktech kompilátoru). Mezi komerční licence pro verzi Windows patří Microsoft Visual Studio 2008 Shell a knihovny.
Intel Fortran Composer XE 2011 až Update 5 (kompilátor 12.0)7. listopadu 2010Coarray Fortran, dalších 2003 (FINÁLNÍ podprogramy, GENERICKÉ klíčové slovo) a 2008 (Coarrays, CODIMENSION, SYNC ALL, SYNC IMAGES, SYNC MEMORY, CRITICAL, LOCK, ERROR STOP, ALLOCATE / DEALLOCATE)
Aktualizace Intel Fortran Composer XE 2011 6 a vyšší (kompilátor 12.1)8. září 2011OpenMP 3.1, další podpora 2003 (ALLOCATE with SOURCE =, polymorphic source) a 2008, verze pro Windows je dodávána s prostředím Visual Studio 2010.
Intel Fortran Composer XE 2013 (kompilátor 13.0)5. září 2012Linuxová podpora pro koprocesory Intel Xeon Phi, podpora pro Microsoft Visual Studio 12 (Desktop), podpora pro gcc 4.7, podpora pro instrukce Intel AVX 2, aktualizace stávajících funkcí zaměřených na poskytování vylepšeného výkonu aplikací. Trvalá dostupnost prostředí Visual Studio 2010 Shell pro Windows.
Intel Fortran Composer XE 2013 SP1 (kompilátor 14.0)31. července 2013Uživatelem definovaný odvozený typ I / O; Směrnice, doložky a postupy OpenMP; jádra; Podpora paralelního sestavení Microsoft Visual Studio
Intel Fortran Composer XE 2013 SP1 Update 1 (kompilátor 14.0.1)18. října 2013Japonská lokalizace 14,0; Podpora Windows 8.1 a Xcode 5.0
Intel Fortran Composer XE 2015 (kompilátor 15.0)5. srpna 2014Plná podpora pro Fortran 2003; BLOCK z Fortranu 2008; EXECUTE_COMMAND_LINE z Fortranu 2008; Nová zpráva o optimalizaci anotuje zdroj ze sady Visual Studio[10]
Intel Fortran Composer XE 2015 Update 1 (kompilátor 15.0.1)30. října 2014AVX-512 Podpěra, podpora; Japonská lokalizace; MIN / MAX Snížení ve směrnici SIMD Loop
Intel Fortran Compiler 16.0, součást Intel Parallel Studio XE 201625. srpna 2015Submodules from Fortran 2008, enhanced interoperability of Fortran with C from draft Fortran 2018, OpenMP 4.1 extensions
Intel Fortran Compiler 17.04. března 2016Rozšíření OpenMP 4.5
Intel Fortran Compiler 18.017. ledna 2017Plná podpora Fortranu 2008
Intel Fortran Compiler 19.012. září 2018Některé funkce Fortranu 2018

Ladění

Kompilátor Intel poskytuje informace o ladění, které jsou standardní pro běžné debuggery (DWARF 2 na Linuxu, podobně jako gdb, a COFF pro Windows). Příznaky ke kompilaci s ladicími informacemi jsou / Zi ve Windows a -G v systému Linux. Ladění se provádí ve Windows pomocí ladicího programu Visual Studio a v Linuxu pomocí gdb.

Zatímco kompilátor Intel může generovat gprof kompatibilní profilování Intel také poskytuje statistický profiler na úrovni jádra a celého systému jako samostatný produkt s názvem VTune. VTune obsahuje snadno použitelné grafické uživatelské rozhraní (integrované do Vizuální studio pro Windows, Zatmění pro Linux) a také rozhraní příkazového řádku. Kromě profilovače VTune existuje Intel Advisor která se specializuje na optimalizaci vektorizace a nástroje pro návrh vláken a prototypování.

Intel také nabízí nástroj pro detekci chyb paměti a vláken s názvem Intel Inspector XE. Pokud jde o chyby paměti, pomáhá to detekovat úniky paměti, poškození paměti, alokace / de-alokace neshod API a nekonzistentní využití API v paměti. Pokud jde o chyby vláken, pomáhá detekovat rasy dat (haldy i hromady), zablokování a chyby podprocesů a synchronizace API.

Viz také

Reference

  1. ^ „Poznámky k verzi kompilátoru Intel® Fortran a nové funkce pro Intel® Parallel Studio XE“. software.intel.com.
  2. ^ „Žádné možnosti nákladů na Intel Parallel Studio XE, podpořte se, bez licenčních poplatků“. 19. března 2020.
  3. ^ „Intel Visual Fortran Compiler Professional Edition pro Windows“. cnet.com.
  4. ^ P. Muruganandam (2017). "OpenMP GNU a Intel Fortran". Comput. Phys. Commun. 220: 503. arXiv:1709.04423. doi:10.1016 / j.cpc.2017.07.013.
  5. ^ „Intel Fortran“. 2016. ... ... významná podpora funkcí Fortran 2008, včetně ...
  6. ^ „Intel (Fortran, C a C ++)“. NERSC.gov.
  7. ^ Dokumentace překladače Intel. Vyberte požadovaný kompilátor Fortran a vyhledejte optimalizaci podle profilu. http://software.intel.com/en-us/intel-software-technical-documentation
  8. ^ Cookbook pro optimalizaci softwaru, vysoce výkonné recepty pro platformy IA-32, Richard Gerber, Aart J.C.Bik, Kevin B. Smith a Xinmin Tian, ​​Intel Press, 2006
  9. ^ "NESTÁLÝ". Oracle.com.
  10. ^ „Intel Visual Fortran 15 je nyní k dispozici“.

externí odkazy