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

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

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

Содержание
  • 1 Обзор
  • 2 Оптимизация
  • 3 Поддержка стандартов
  • 4 Архитектура
  • 5 Описание упаковки
  • 6 История с 2003 г.
  • 7 Отладка
  • 8 См. Также
  • 9 Ссылки
  • 10 Внешние ссылки
Обзор

Компиляторы генерируют код для IA-32 и Intel 64 процессоры и некоторые не Intel, но совместимые процессоры, например, некоторые процессоры AMD . Конкретный выпуск компилятора (11.1) остается доступным для разработки приложений на базе Linux для процессоров IA-64 (Itanium 2 ). В Windows он известен как Intel Visual Fortran. В 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, автоматическое распараллеливание для симметричной многопроцессорной обработки, почти весь стандарт Fortran 2003 и большую часть Стандарт Fortran 2008, включающий Coarray Fortran, определяемый пользователем ввод / вывод, BLOCK и подмодули. Для получения дополнительной информации о стандартах Fortran доступен ряд ресурсов, например запись в Википедии Fortran или вики-страница Fortran. При использовании с инструментами кластера Intel (см. «Описание упаковки» ниже) компилятор также может автоматически генерировать вызовы интерфейса передачи сообщений для многопроцессорной обработки распределенной памяти из директив OpenMP.

Оптимизация

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

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

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

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

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

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

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

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

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

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

Fortran 2018, в настоящее время черновая версия, включает в себя дальнейшее взаимодействие между Fortran и C. Intel Fortran поддерживает черновик 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 Compiler 8.015 декабря 2003 г.Предварительно скомпилированные заголовки, инструменты покрытия кода.
Intel Fortran Compiler 8.1сентябрь 2004 г.Архитектура AMD64 (для Linux).
Intel Fortran Compiler 9.014 июня 2005 г.Архитектура AMD64 (для Windows), программная оптимизация спекулятивных предварительных вычислений (SSP), улучшенные отчеты по оптимизации цикла.
Intel Fortran Compiler 10.05 июня 2007 г.Улучшенный распараллеливатель и векторизатор, Streaming SIMD Extensions 4 (SSE4 ), новые и улучшенные отчеты по оптимизации для расширенного цикла преобразования, новая оптимизированная реализация обработки исключений.
Intel Fortran Compiler 10.17 ноября 2007 г.Новая библиотека времени выполнения, совместимая с OpenMP *. Чтобы использовать новые библиотеки, вам необходимо использовать новую опцию «-Qopenmp / Qopenmp-lib: compat» в Windows и «-openmp -openmp-lib: compat» в Linux. Эта версия компилятора Intel поддерживает больше встроенных функций из Microsoft Visual Studio 2005. Поддержка VS2008 - командная строка только в этом выпуске.
Intel Fortran Compiler 11.0ноябрь 2008 г.Дополнительная поддержка Fortran 2003. Поддержка OpenMP 3.0. Source Checker для статической памяти / параллельной диагностики. Коммерческие лицензии для версии Windows включают Microsoft Visual Studio 2005 Premier Partner Edition.
Intel Fortran Compiler 11.123 июня 2009 г.Поддержка последних инструкций Intel SSE, AVX и AES. Дополнительная поддержка Fortran 2003. Поддержка последней версии Intel MKL (входит в состав компиляторов). Коммерческие лицензии для версии Windows включают Microsoft Visual Studio 2008 Shell и библиотеки.
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
Intel Fortran Composer XE 2015 Update 1 (компилятор 15.0.1)30 октября 2014 г.Поддержка AVX-512 ; Японская локализация; Снижение MIN / MAX в директиве цикла SIMD
Intel Fortran Compiler 16.0, часть Intel Parallel Studio XE 201625 августа 2015 г.Субмодули из Fortran 2008, улучшенная совместимость Fortran с C из проекта Fortran 2018, расширения OpenMP 4.1
Intel Fortran Compiler 17.04 марта 2016 г.Расширения OpenMP 4.5
Intel Fortran Compiler 18.017 января, 2017Полная поддержка Fortran 2008
Intel Fortran Compiler 19.012 сентября 2018 г.Некоторые функции Fortran 2018
Отладка

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

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

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

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 03:57:37
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте