Компилятор Intel Fortran - Intel Fortran Compiler

Компилятор Intel Fortran
Разработчики)Intel
Стабильный выпуск
19.1.3 (XE 2020) / 20 октября 2020 г.; 34 дней назад (2020-10-20)[1]
Операционная системаLinux, Windows, OS X
ТипКомпилятор
ЛицензияПроприетарный, Бесплатное ПО[2]
Интернет сайтпрограммного обеспечения.intel.com/ en-us/ Intel-компиляторы

Компилятор Intel Fortran, также известный как IFORT, это группа Фортран компиляторы из Intel за Windows, OS X, и Linux.

Обзор

Компиляторы генерируют код для IA-32 и Intel 64 процессоры и некоторые не-Intel, но совместимые процессоры, например, некоторые AMD процессоры. Конкретный выпуск компилятора (11.1) остается доступным для разработки приложений на базе Linux для IA-64 (Itanium 2 ) процессоры. В Windows он известен как Intel Visual Fortran.[3] В OS X и Linux он известен как Intel Fortran.

Последний выпуск компилятора продолжает поддерживать Сопроцессор Intel Xeon Phi и возможности набора команд архитектуры Intel с помощью автоматическая векторизация, который может позволить приложениям использовать SSE, SSE2, SSE3, SSSE3, SSE4 и AVX SIMD инструкции. Использование таких инструкций через компилятор может привести к повышению производительности некоторых приложений, работающих на архитектурах IA-32 и Intel 64, по сравнению с приложениями, созданными с помощью компиляторов, которые не поддерживают эти инструкции.

Intel Fortran также продолжает поддерживать OpenMP 4.0,[4] автоматическое распараллеливание за симметричная многопроцессорная обработка, почти весь стандарт Fortran 2003 и большая часть стандарта Fortran 2008[5] в том числе Coarray Fortran, определяемые пользователем вводы / выводы, БЛОК и подмодули. Для получения дополнительной информации о стандартах Fortran доступны ряд ресурсов или ресурсы, такие как Википедия. Фортран запись или Фортран вики-страница. При использовании с инструментами кластера Intel (см. «Описание упаковки» ниже) компилятор также может автоматически генерировать Интерфейс передачи сообщений призывает для многопроцессорность с распределенной памятью из директив OpenMP.

Оптимизация

Компиляторы Intel оптимизированы[6] к компьютерным системам, использующим процессоры, поддерживающие архитектуры Intel. Они предназначены для минимизации простоев и создания кода, который выполняется за минимально возможное количество циклов. Компиляторы Intel Fortran поддерживают три отдельных высокоуровневых метода оптимизации скомпилированной программы: межпроцедурная оптимизация (IPO), профильная оптимизация (PGO) и другие оптимизация высокого уровня (HLO). Они также поддерживают основанный на директивах подход к выгрузке приложений на сопроцессоры Intel, такие как Intel Xeon Phi сопроцессор.

Межпроцедурная оптимизация применяет типичные оптимизации компилятора (например, распространение констант), но использует более широкую область действия, которая может включать несколько процедур, несколько файлов или всю программу.[7]

Что касается профильная оптимизация, компилятор генерирует набор данных, связанных с производительностью, при использовании приложения с репрезентативными рабочими нагрузками, который затем анализирует, чтобы определить, какие части приложения выполняются чаще и реже. Компилятор использует эти данные для организации выполнения приложения для оптимизации производительности в зависимости от фактического использования приложения. В этом отличие от IPO, которое оптимизирует приложения в соответствии с логическим потоком приложения независимо от рабочих нагрузок. Их можно объединить, чтобы обеспечить оптимизацию на основе рабочей нагрузки, в рамках которой оптимизируется логический поток. Таким образом, любая оптимизация может извлечь выгоду из обратной связи на основе профиля, поскольку они меньше зависят от эвристики при принятии решений о компиляции.

Оптимизация высокого уровня - это оптимизация, выполняемая в версии программы, которая более точно представляет исходный код. Это включает в себя петля обмена, петля слияния, разворачивание петли, распределение петель, предварительная выборка данных и многое другое.[8]

Поддержка стандартов

Компилятор Intel Fortran поддерживает все функции стандартов Fortran 90, Fortran 95, Fortran 2003 и большую часть Fortran 2008. Он также поддерживает некоторые черновые возможности Fortran 2018. Кроме того, он поддерживает различные расширения, имеющиеся в VAX Fortran и Compaq Visual Fortran.

Неполный список элементов из стандарта Fortran 2003, поддерживаемого Intel Fortran:

  • Параметризованные производные tpes
  • Ввод-вывод определяемого пользователем производного типа
  • Счетчики
  • Расширение типа и процедуры с привязкой к типу
  • FINAL процедуры и перегрузка GENERIC, OPERATOR и ASSIGNMENT в процедурах с привязкой к типу
  • Полиморфные данные и объявление CLASS
  • Распределяемые скалярные переменные (не символ отложенной длины)
  • SOURCE = ключевое слово для ALLOCATE
  • Внутренние модули IEEE_EXCEPTIONS, IEEE_ARITHMETIC и IEEE_FEATURES
  • ASSOCIATE конструкция
  • DO CONCURRENT конструкция
  • Объявление PROCEDURE и указатели процедур
  • Атрибут CONTIGUOUS
  • Конструкторы структур с именами компонентов и инициализацией по умолчанию
  • Конструкторы массивов со спецификациями типа и длины символа
  • Ключевые слова ввода-вывода BLANK, DECIMAL, DELIM, ENCODING, IOMSG, PAD, ROUND, SIGN и SIZE
  • Типы PUBLIC с компонентами PRIVATE и типы PRIVATE с компонентами PUBLIC
  • Файл можно открыть для потокового доступа (ACCESS = 'STREAM')
  • Атрибут BIND и встроенный модуль ISO_C_BINDING
  • АСИНХРОННЫЙ атрибут
  • Атрибут VALUE
  • Заявление FLUSH
  • Заявление WAIT
  • Заявление IMPORT
  • Распределяемые компоненты производных типов, размещаемые фиктивные аргументы и результаты назначаемых функций
  • VOLATILE атрибут[9]
  • Имена длиной до 63 символов
  • Выписки до 256 строк

Неполный список элементов из стандарта Fortran 2008, поддерживаемого Intel Fortran:

  • Coarrays
  • Подмодули
  • Конструкция BLOCK для динамического определения области видимости
  • КРИТИЧЕСКАЯ конструкция
  • Стандарт Fortran 2008 определяет максимальный ранг 15; максимальный ранг массива увеличен до 31 измерения в Intel Fortran
  • Универсальный интерфейс может иметь то же имя, что и производный тип.
  • Спецификация границ и список переназначения границ при назначении указателя
  • NEWUNIT = спецификатор в OPEN
  • Раздел CONTAINS может быть пустым
  • Coarrays можно указать в операторах ALLOCATABLE, ALLOCATE и TARGET.
  • Ключевое слово MOLD в ALLOCATE
  • DO CONCURRENT заявление
  • Сообщение ERROR STOP

Фортран 2018, в настоящее время это черновая версия, включает в себя дальнейшую совместимость между Фортраном и С. Intel Fortran поддерживает черновой вариант Фортрана 2018 начиная с версии 16.0.

Архитектура

Описание упаковки

Компилятор Intel Fortran доступен как часть Intel Parallel Studio Пакет XE 2016, ориентированный на разработку моделей параллелизма в прикладном программном обеспечении. Он также включает Intel C ++, Intel Math Kernel Library, Intel Integrated Performance Primitives, Intel Data Analytics Acceleration Library и инструменты анализа производительности, такие как Intel VTune Amplifier и Intel Inspector. Существует три формы Parallel Studio XE: Composer, Professional и Cluster. Composer Edition включает компиляторы C ++ и / или Fortran, библиотеки производительности и поддержку параллельных моделей. В Professional Edition добавлены инструменты анализа, которые помогают в отладке и настройке параллельных приложений. Cluster Edition добавляет поддержку разработки программного обеспечения для компьютерные кластеры. Он включает в себя все вышеперечисленное, а также основанный на стандартах MPI Библиотека, инструмент профилирования и анализа коммуникаций MPI, инструменты проверки и настройки MPI, а также проверка кластера.

История с 2003 года

Версия компилятораДата выходаОсновные новые функции
Компилятор Intel Fortran 8.015 декабря 2003 г.Предварительно скомпилированные заголовки, инструменты покрытия кода.
Компилятор Intel Fortran 8.1Сентябрь 2004 г.AMD64 архитектура (для Linux).
Компилятор Intel Fortran 9.014 июня 2005 г.AMD64 архитектура (для Windows), оптимизация спекулятивных предварительных вычислений (SSP) на основе программного обеспечения, улучшенные отчеты по оптимизации цикла.
Компилятор Intel Fortran 10.05 июня 2007 г.Улучшенный распараллеливатель и векторизатор, Streaming SIMD Extensions 4 (SSE4 ), новые и улучшенные отчеты по оптимизации для расширенных преобразований циклов, новая оптимизированная реализация обработки исключений.
Компилятор Intel Fortran 10.17 ноября 2007 г.Новая библиотека времени выполнения, совместимая с OpenMP *. Чтобы использовать новые библиотеки, вам необходимо использовать новую опцию «-Qopenmp / Qopenmp-lib: compat» в Windows и «-openmp -openmp-lib: compat» в Linux. Эта версия компилятора Intel поддерживает больше встроенных функций от Microsoft Visual Studio 2005. Поддержка VS2008 - командная строка только в этом выпуске.
Компилятор Intel Fortran 11.0Ноябрь 2008 г.Дополнительная поддержка Fortran 2003. Поддержка OpenMP 3.0. Source Checker для статической памяти / параллельной диагностики. Коммерческие лицензии для версии Windows включают Microsoft Visual Studio Профессиональное партнерское издание 2005 г.
Компилятор Intel Fortran 11.123 июня 2009 г.Поддержка последних инструкций Intel SSE, AVX и AES. Дополнительная поддержка Fortran 2003. Поддержка последней версии Intel MKL (входит в состав компиляторов). Коммерческие лицензии для версии Windows включают Microsoft Visual Studio 2008 Оболочка и библиотеки.
Intel Fortran Composer XE 2011 до обновления 5 (компилятор 12.0)7 ноября 2010 г.Coarray Fortran, дополнительные 2003 (подпрограммы FINAL, ключевое слово GENERIC) и 2008 (Coarrays, CODIMENSION, SYNC ALL, SYNC IMAGES, SYNC MEMORY, CRITICAL, LOCK, ERROR STOP, ALLOCATE / DEALLOCATE)
Intel Fortran Composer XE 2011 Update 6 и выше (компилятор 12.1)8 сентября 2011 г.OpenMP 3.1, дополнительная поддержка стандартов 2003 (ALLOCATE с SOURCE =, полиморфный источник) и 2008, версия для Windows поставляется с Visual Studio 2010 Shell.
Intel Fortran Composer XE 2013 (компилятор 13.0)5 сентября 2012 г.Поддержка сопроцессоров Intel Xeon Phi на базе Linux, поддержка Microsoft Visual Studio 12 (Desktop), поддержка gcc 4.7, поддержка инструкций Intel AVX 2, обновления существующей функциональности, направленные на повышение производительности приложений. Постоянная доступность оболочки Visual Studio 2010 для версий Windows.
Intel Fortran Composer XE 2013 SP1 (компилятор 14.0)31 июля 2013 г.Ввод-вывод производного типа, определяемый пользователем; Директивы, пункты и процедуры OpenMP; крупы; Поддержка параллельной сборки Microsoft Visual Studio
Intel Fortran Composer XE 2013 SP1 Update 1 (компилятор 14.0.1)18 октября 2013 г.Японская локализация 14.0; Поддержка Windows 8.1 и Xcode 5.0
Intel Fortran Composer XE 2015 (компилятор 15.0)5 августа 2014 г.Полная поддержка Fortran 2003; БЛОК из Fortran 2008; EXECUTE_COMMAND_LINE из Fortran 2008; Новый отчет по оптимизации содержит аннотации к источнику из Visual Studio[10]
Intel Fortran Composer XE 2015 Update 1 (компилятор 15.0.1)30 октября 2014 г.AVX-512 поддержка; Японская локализация; Минимальные / максимальные сокращения в директиве SIMD-цикла
Компилятор Intel Fortran 16.0, часть Intel Parallel Studio XE 201625 августа 2015 г.Подмодули из Fortran 2008, улучшенная совместимость Fortran с C из проекта Fortran 2018, расширения OpenMP 4.1
Компилятор Intel Fortran 17.04 марта 2016 г.Расширения OpenMP 4.5
Компилятор Intel Fortran 18.017 января 2017 г.Полная поддержка Fortran 2008
Компилятор Intel Fortran 19.012 сентября 2018 г.Некоторые особенности Fortran 2018

Отладка

Компилятор Intel предоставляет стандартную отладочную информацию для обычных отладчиков (DWARF 2 в Linux аналогично GDB, и COFF для Windows). Флаги для компиляции с отладочной информацией: / Zi в Windows и в Linux. Отладка выполняется в Windows с помощью отладчика Visual Studio и в Linux с помощью gdb.

Хотя компилятор Intel может генерировать gprof-совместимый профилирование вывода, Intel также предоставляет статистический профилировщик уровня ядра, общесистемный, как отдельный продукт, называемый VTune. VTune имеет простой в использовании графический интерфейс (интегрирован в Visual Studio для Windows, Затмение для Linux), а также интерфейс командной строки. Помимо профилировщика VTune есть Советник Intel который специализируется на оптимизации векторизации и инструментах для многопоточного проектирования и создания прототипов.

Intel также предлагает инструмент для обнаружения ошибок памяти и потоков, который называется Intel Inspector XE. Что касается ошибок памяти, это помогает обнаружить утечки памяти, повреждение памяти, распределение / освобождение несоответствий API и несогласованное использование API памяти. Что касается ошибок потоковой передачи, он помогает обнаруживать скачки данных (как в куче, так и в стеке), взаимоблокировки и ошибки API потоков и синхронизации.

Смотрите также

Рекомендации

  1. ^ «Примечания к выпуску компилятора Intel® Fortran и новые функции для Intel® Parallel Studio XE». software.intel.com.
  2. ^ «Бесплатные варианты для Intel Parallel Studio XE, поддерживайте себя, бесплатно». 19 марта 2020.
  3. ^ "Intel Visual Fortran Compiler Professional Edition для Windows". cnet.com.
  4. ^ П. Муруганандам (2017). «OpenMP GNU и Intel Fortran». Comput. Phys. Сообщество. 220: 503. arXiv:1709.04423. Дои:10.1016 / j.cpc.2017.07.013.
  5. ^ «Интел Фортран». 2016. ... ... значительная поддержка функций Fortran 2008, включая ...
  6. ^ «Intel (Fortran, C и C ++)». NERSC.gov.
  7. ^ Документация по компилятору Intel. Выберите предпочтительный компилятор Fortran и выполните поиск по запросу Profile-Guided Optimization. http://software.intel.com/en-us/intel-software-technical-documentation
  8. ^ 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 г.
  9. ^ "ВОЛАТИЛЬНЫЙ". Oracle.com.
  10. ^ «Intel Visual Fortran 15 уже доступен».

внешняя ссылка