Русская Википедия:Intel C++ compiler
Шаблон:Карточка программы Intel C++ Compiler — оптимизирующий компилятор, разрабатываемый фирмой Intel для процессоров семейств x86, x86-64 и IA-64. Главным достоинством компилятора являются выполняемые им высокоуровневые, а также целевые оптимизации под процессоры Intel. Компилятор работает под ОС Linux, Windows, macOS.
Основные возможности:
- Высокоуровневая оптимизация
- Межпроцедурная оптимизация
- Автоматическое распараллеливание кода
- Векторизация для SSE, SSE2, SSE3, SSE4
- Оптимизация с учетом профильной информации
Компилятор поддерживает стандарт OpenMP 3.0 для написания параллельных программ. Также содержит модификацию OpenMP под названием Cluster OpenMP, при помощи которой можно запускать приложения, написанные в соответствии с OpenMP на кластерах, использующих MPI.
Intel C++ Compiler использует фронтэнд (часть компилятора, занимающаяся синтаксическим анализом компилируемой программы) от Edison Design Group. Этот же фронтэнд используется компиляторами SGI MIPSpro, Comeau C++, Portland Group.
Данный компилятор широко используется для компиляции бенчмарков SPEC CPU.
Существует 4 серии продуктов от Intel, содержащих компилятор:
- Intel Parallel Studio
- Intel C++ Compiler Professional Edition
- Intel Compiler Suite package
- Intel Cluster Toolkit (Compiler Edition)
К недостаткам Linux-версии компилятора можно отнести частичную несовместимость с GNU-расширениями языка Си (поддерживаемые компилятором GCC), что может вызвать проблемы при компиляции некоторых программ.
Поддерживаются языки C, C++, Fortran.
Экспериментальные варианты
Публиковались следующие экспериментальные варианты компилятора:
- Intel STM Compiler Prototype Edition от 17 сентября 2007 года. Поддержка Software Transactional Memory (STM). Выпущен для Linux и Windows, только для IA-32 (x86-процессоров);
- Intel Concurrent Collections for C/C++ 0.3 от сентября 2008 года. Содержит механизмы, облегчающие написание параллельных C++ программ.
Основные флаги
Windows | Linux, MacOSX | Описание |
---|---|---|
/Od | -O0 | Отключить оптимизации |
/O1 | -O1 | Оптимизировать для минимизации размера исполняемого файла |
/O2 | -O2 | Оптимизировать для повышения скорости. Включены некоторые оптимизации |
/O3 | -O3 | Включить все оптимизации из O2. Также выполнить интенсивные оптимизации циклов |
/Oip | -Oip | Включить пофайловую межпроцедурную оптимизацию[1] |
/Oipo | -Oipo | Включить глобальную межпроцедурную оптимизацию[2] |
/QxO | -xO | Разрешить использование SSE3, SSE2 и SSE расширений для процессоров производства любых компаний |
/fast | -fast | «Быстрый режим». Эквивалентен опциям «/O3 /Qipo /QxHost /no-prec-div» на Windows и «-O3 -ipo -static -xHOST -no-prec-div» на Linux. Заметьте, флаг «-xHOST» означает оптимизацию для того процессора, на котором запущен компилятор.[3] |
/Qprof-gen | -prof_gen | Создать инструментированную версию программы, которая соберет профиль исполнения |
/Qprof-use | -prof_use | Воспользоваться профильной информацией от запусков программы собранной с флагом prof_gen. |
Примечания
См. также
Ссылки