• Выбор языка



Компиляторы Intel
® 
C++ Compiler 10.1 Professional Edition и Standard Edition для Mac OS* X
Опции страницы
Распечатать | Отправить другу | Поддержка
Сделать закладку
Digg this | Добавить в вашей del.icio.us учетную запись
Проголосовать
Информация об авторе
Информация о продуктеЦентр ознакомительного ПОРесурсы поддержки
 
Бесплатная пробная версия ›

 
 
Купить продукт ›

 
теги сообщества

Поиск тегов
 

    Обзор
    Компилятор Intel® C++ Compiler Professional Edition обеспечивает наилучшую поддержку для создания многопоточных приложений. Только в версии Professional Edition доступны усовершенствованные возможности оптимизации, средства разработки многопоточных приложений и поддержка процессора, включающая в себя автоматическое планирование процессоров, векторизацию, автоматическую параллелизацию, OpenMP*, предварительную выборку данных и развертывание циклов. Кроме того, в компиляторе Professional Edition поддерживаются высокооптимизированные шаблоны C++ для параллельного программирования, обработки математических задач и поддержки мультимедийных библиотек.

    Высокопроизводительный компилятор Professional Edition включает в себя такие библиотеки как Конструктивные компоненты Intel® Threading Building Blocks (Intel® TBB), Intel® Integrated Performance Primitives (Intel® IPP) и Библиотека Intel® Math Kernel Library (Intel® MKL), которые также можно приобрести отдельно. В комплекте с компилятором эти средства представляют надежную основу для разработки эффективного высокопроизводительного параллельного кода по умеренной цене.

    Standard и Professional Edition обладают одинаковой производительностью и функциями, но в Standard Edition отсутствуют многопоточные библиотеки.

    Новые возможности, реализованные в данной версии.

    Купить компилятор Intel C++ Compiler для Mac OS* X в Apple Store

    Краткое описание продукта  [PDF 683 КБ]

    Характеристики
    Компилятор Intel C++ Compiler для Mac OS X обеспечивает быструю разработку и великолепную производительность для ряда платформ на базе процессоров Intel®.

    Автоматическая оптимизация и параллелизация программного обеспечения позволяет воспользоваться всеми преимуществами многоядерных процессоров Intel, включая двухъядерные платформы для мобильных, настольных ПК и корпоративных сред.

    Функциональные возможности Mac* и многоядерных процессоров

    Следующие функции характерны архитектурным возможностям компьютеров Mac на базе процессоров Intel:

    • Поддержка многопоточных приложений, включая OpenMP и автоматическую параллелизацию, позволяет воспользоваться всеми преимуществами такой многоядерной технологии, как микроархитектура Intel® Core™.
    • Интеграция с Xcode* 2.2 позволяет разработчикам продолжать работу в знакомой среде, открывая доступ к оптимизированным функциям компилятора Intel®.
    • Совместимость с GCC 4.0: великолепная совместимость с исходным кодом, двоичными файлами и командной строкой GCC.
    • Поддержка Apple* Frameworks позволяет использовать эту мощную модель программирования Apple на базе платформ, основанных на микроархитектуре Intel Core.

    Производительность

    Компилятор Intel C++ Compiler Professional Edition позволяет максимально повысить производительность процессов, выполняемых на базе новейших многоядерных процессоров. Встроенные технологии оптимизации и поддержка многопоточности помогают создавать код, использующий все преимущества современных многоядерных процессоров.


    Усовершенствованные возможности оптимизации

    Усовершенствованные возможности оптимизации, некоторые из которых вкратце представлены далее, открывают новые преимущества для аппаратного обеспечения Mac. Также приведены ссылки на более полное описание этих функций.

    • Автоматическая векторизация позволяет распараллеливать код и использовать архитектуры набора команд Streaming SIMD Extensions (SSE) (SSE, SSE2, SSE3, SSSE3 и SSE4) новейших версий процессоров.
    • Высокопроизводительный оптимизатор для параллельных программ (HPO - High-Performance Parallel Optimizer) преобразует и оптимизирует циклы и позволяет функциям автоматической векторизации, OpenMP или автоматической параллелизации эффективно использовать возможности доступа к кэшу и памяти процессора, наборы команд SIMD и многоядерность. Эта новая возможность версии 10 сочетает в себе автоматическую векторизацию, параллелизацию и преобразование циклов в одином шаге, что быстрее, эффективнее и надежней предыдущего решения, где это было реализовано по отдельности.
    • Межпроцедурная оптимизация (IPO - Interprocedural Optimization) позволяет значительно увеличить производительность часто используемых небольших или средних функций, особенно в программах, где вызовы осуществляются внутри циклов. Аналитические возможности этого оптимизатора могут также помочь при поиске уязвимых мест и ошибок кодирования, например, выявлении неинициализированных переменных или проблем в работе OpenMP API, которые не могли бы быть найдены при анализе компилятором, полагающимся исключительно на препроцессор транслятора.
    • Оптимизация с использованием профилировки (PGO - Profile-Guided Optimization), улучшает производительность приложений путем сокращения случаев переполнения кэша команд, реорганизации структуры кода, снижения размера кода и уменьшения числа неверно предсказанных переходов.
    • Отладка оптимизированного кода с помощью отладчика Intel Debugger повышает эффективность процесса отладки кода, оптимизированного для архитектуры Intel®.

    Новое в данной версии
    Компилятор Intel C++ Compiler для Mac OS X предоставляет ряд новых привлекательных возможностей. С ним Вы cможете создавать программы будущего для техники будущего. Следующие функции являются обновлениями к версии 9.

    Новые возможностиПреимущества
    Улучшенная производительность и многопоточность
    • Новый оптимизатор для параллельных программ/циклов
    Более высокая производительность ресурсоемких приложений, включая среды обработки графических/цифровых материалов, финансовое моделирование и высокопроизводительные вычислительные операции для многопоточных и непоточных приложений. Новый оптимизатор HPO предоставляет улучшенные возможности для анализа, оптимизации и распараллеливания большего количества вложенных циклов.
    Проверка безопасности и диагностика
    • Библиотека GNU Mudflap
    • Инструмент Static Verifier для контроля
    • Проверка OpenMP* API
    Повышение надёжности кода благодаря выявлению отсутствия обработки нештатных ситуаций (переполнение буфера и т.п.). Средства обнаружения типичных ошибок программирования — от отсутствия инициализации переменных, несоответствия формальных и фактических параметров, и до проблем в API для OpenMP — полезны и опытным программистам, и новичкам.
    Поддержка 64-разрядной Mac OS X* Возможность создания приложений, использующих новые возможности процессоров на базе архитектуры Intel® 64 в области адресации и производительности, на которых основаны новейшие системы Apple Mac OS X.
    Отчеты об оптимизации Более подробные отчеты диагностики позволяют пользователям повышать эффективность компиляторов приложений, используя усовершенствованные возможности оптимизации.
    Поддержка современных многоядерных процессоров
    Компилятор Intel C++ Compiler обеспечивает поддержку новейших многоядерных процессоров, включая:
    • Процессор Intel® Core™2 Duo
    • Процессор Intel® Core™2 Quad
    • Четырехъядерный процессор Intel® Xeon® серии 5300
    • Двухъядерный процессор Intel® Xeon® серии 3000
    • Двухъядерный процессор Intel® Xeon® серии 5000
    • Двухъядерный процессор Intel® Xeon® серии 7000
    • Двухъядерный процессор Intel® Itanium® 2
    Компиляторы Intel® своевременно предоставляют передовую поддержку каждого следующего поколения процессоров. Это оправдывает делаемые в них вложения, и даёт ключевое преимущество в наем мире, где новые аппаратные платформы выходят на рынок одна за другой с ошеломительной быстротой.

    Поддержка автоматической параллелизации и OpenMP позволяет разрабатывать оптимизированные многопоточные приложения, полностью использующие все преимущества многоядерной обработки и обеспечивающие высочайшую производительность.
    Professional Edition В этой версии компилятора доступны не только основные усовершенствованные возможности, но и такие библиотеки как Intel Threading Building Blocks, Intel Integrated Performance Primitives и Библиотека Intel Math Kernel Library, включающие ряд высокооптимизированных функций для обеспечения многопоточности, обработки математических задач и мультимедийных ресурсов.
    Подробное описание усовершенствованных возможностей оптимизации
    В этом разделе представлено подробное описание усовершенствованных возможностей оптимизации компилятора

    Поддержка многопоточных приложений

    OpenMP и функция автоматической параллелизации осуществляют преобразование последовательных приложений в параллельные, что позволяет использовать все преимущества многоядерных технологий таких процессоров, как Intel® Core™ Duo и двухъядерного процессора Intel Itanium 2, а также симметричных многопроцессорных систем:

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

      Директивы OpenMP предлагают простой и эффективный способ преобразования последовательных приложений в параллельные. При выполнении параллельных приложений на базе многоядерных систем и симметричных многопроцессорных систем достигаются значительные улучшения производительности.

    • Автоматическая параллелизация позволяет повысить производительность приложений в многопроцессорных системах с помощью автоматического распараллеливания циклов. Эта функция выбирает циклы, для которых возможно корректное параллельное исполнение, и генерирует многопоточный код.

      Автоматическая параллелизация избавляет пользователя от заботы о низкоуровневых деталях разбиения циклов, организации доступа к общим данным, управления потоками и синхронизации. Кроме того, эта функция позволяет повысить производительность многопроцессорных систем и систем с поддержкой технологии Hyper-Threading.

    Дополнительная информация о поддержке многопоточных приложений представлена в Центре по многопоточности для разработчиков.

    Высокопроизводительный оптимизатор для параллельных программ (HPO)

    Эта новая возможность версии 10 сочетает в себе автоматическую векторизацию, параллелизацию и и преобразование циклов за один шаг, что является более быстрым, эффективным и надежным по сравнению с предыдущим решением, где это было реализовано по отдельности.

    HPO оптимизирует и преобразует циклы программ, чтобы обеспечить корректное совместное функционирование автоматической параллелизации, OpenMP и автоматической векторизации. Технология оптимизации HPO использует уникальное средство анализа затрат и результатов, что позволяет принимать верные решения по оптимизации программ и структуры циклов. Данное средство производит такие операции, как развертывание, разделение, перестановка, разбиение циклов и т.п., так же как и другие действия по оптимизации для обеспечения эффективного использования архитектуры процессорных кэшей, SIMD-команд и многоядерности. Эти преобразования циклов проводятся автоматически и не требуют ручного изменения кода.

    Автоматический векторизатор

    Векторизация состоит в автоматическом распараллеливании кода с целью наиболее эффективного использования возможностей процессора. Эта передовая оптимизация анализирует цикл и определяет возможность и целесообразность параллельного выполнения нескольких его итераций, командами MMX™, SSE, SSE2 и SSE3. На Рис. 1 представлено графическое изображение векторизованного цикла, содержащего четыре итерации, вычисленные с помощью операции SSE2.

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

    Рис. 1 Работа векторизатора

    Межпроцедурная оптимизация (IPO)

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

    Рис. 2 Процесс межпроцедурной оптимизации
    На Рис.2 показан процесс межпроцедурной оптимизации. Сначала функция IPO компилирует исходные файлы и создает объектные файлы (.o) на промежуточном яыке, используемом компилятором. После связывания файлов компилятор объединяет всю информацию на промежуточном языке и анализирует возможности для оптимизации. Типичные способы оптимизации в рамках процесса IPO включают в себя встраивание и перестановку процедур, удаление неиспользуемого (недостижимого) кода, протяжку констант (подстановку констант там, где значения переменных можно установить на этапе компиляции). По сравнению с внутрипроцедурной оптимизацией IPO позволяет проводить более радикальные преобразования, поскольку расширение контекста до совокупности выявляет предпосылки для таких преобразований.

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

    Оптимизация с использованием профилировки (PGO)


    Оптимизация на базе профилей (PGO) позволяет компилятору Intel C++ Compiler эффективнее использовать микроархитектуру процессора, лучше раскладывать команды по страницам, использовать кэш-память и точнее предсказывать ветвления. Это увеличивает производительность приложений путем реорганизации кода для сокращения случаев переполнения кэша команд, снижения размера кода и уменьшения числа ошибочного прогнозирования ветвления.

    Как показано на Рис. 3, PGO включает в себя три следующих этапа: 1) компиляция приложения с добавлением средств измерения; 2) этап генерации профиля, состоящий в прогоне приложения и регистрации хода выполнения; и 3) перекомпиляция с учетом данных о возможности оптимизации, полученных на первом прогоне. Далее представлено описание нескольких оптимизаций на базе профиля, влияющих на размер кода:

    • Переупорядочение линейных участков и функций — помещает часто исполняемые блоки и функции вместе чтобы вместить их в кэш команд.
    • Открытая подстановка кода — производит встраивание часто используемых функций, при этом увеличение размера кода оправдывается увеличением производительности.
    • Векторизация — производится векторизация циклов с большим количеством итераций и часто используемых циклов, при которой увеличение размера кода оправдывается увеличением производительности.

    Отладка оптимизированного кода с помощью отладчика Intel Debugger

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

    • модель all-stop/all-go (т.е., если остановлен хоть один поток, остальные потоки тоже останавливаются, и все потоки возобновляют выполнение, как только один поток запускается вновь);
    • список всех созданных потоков;
    • переключение фокуса между потоками;
    • выдача подробной состояния потоков;
    • установка контрольных точек (включая все переменные остановки, отслеживания и наблюдения) и отображение обратной трассировки стека всех потоков или определенного набора потоков;
    • встроенный графический интерфейс пользователя поддерживает панель, отображающую состояние потоков (на панели Текущего состояния источника), активирующуюся при создании потока. Эта панель позволяет оператору выбирать фокус потока и отображать нужную информацию.

    Недавно улучшенный Отладчик GNU Project Debugger(отладчик GDB) может также использоваться для параллельных приложений. Дополнительная информация представлена в документе Техническая документация по Отладчику Intel Debugger  [PDF 211 КБ].

    Совместимость
    Интеграция с Xcode

    Компиляторы Intel C++ Compiler версий Standard и Professional Edition для Mac OS X совместимы с Xcode, что позволяет разработчикам использовать популярные среды IDE, а также все преимущества усовершенствованных возможностей оптимизации от Intel.

    Эта функция позволяет создавать универсальные приложения C/C++ (Universal Binaries) в среде Xcode, используя компиляторы Intel C++ Compiler для архитектур Intel и GCC для PowerPC*, сохраняя при этом совместимость с GCC 4.0. Универсальные приложения упрощают переход между архитектурами PowerPC и Intel путем совмещения внутренних кодов архитектур в одном скомпилированном пакете.

    Код высокого уровня, не содержащий зависимостей от процессора, не требует практически никаких изменений для создания универсального приложения. Однако ситуация осложняется при использовании кода более низкого уровня с аппаратными зависимостями.

    Совместимость с GCC 4.0

    Благодаря соответствующим функциям GNU C/C++ компиляторы совместимы с GNU C на уровне исходного и объектного кодов. Компиляторы Intel C++ Compiler Standard и Professional Edition для Mac OS X поддерживают расширение GCC, что упрощает портирование приложений и позволяет рекомпилировать существующее ПО с целью повышения производительности приложений. Также, вместо того, чтобы полностью переключать компиляторы, приложения можно создавать путем компиляции определенных модулей компиляторами Intel C++ Compiler для Mac OS X и связывания их с модулями, скомпилированными с GNU C. Кроме того, компиляторы Intel C++ Compiler для Mac OS X совместимы со стандартом C++ ABI, что обеспечивает более полную совместимость на уровне двоичного кода с GCC 4.0.

    Поддержка Apple Frameworks

    Apple frameworks - это специальный пакет, используемый для распределения общих ресурсов, включая код библиотек, файлы ресурсов, файлы заголовка и справочную документацию. Благодаря своей гибкости, этот пакет часто оказывается более предпочтителен, чем динамические разделяемые библиотеки.

    Дополнительная информация о комплекте Apple frameworks представлена на web-сайте Apple .

    Соответствие стандартам

    • Стандарт ANSI C/C++
    • Стандарт ISO C/C++
    • Встроенный ассемблерный код GNU
    • Объектная модель C++ ABI


    Техническая поддержка
    После приобретения компилятора Intel C++ Compiler вы в течение года будете обеспечены технической поддержкой и обновлениями на интерактивном сайте форума Intel® Premier Support. Вы сможете задать вопрос службе поддержки, загрузить обновления программных продуктов и получить доступ к техническим ресурсам, практическим рекомендациям и другой документации. Для получения более подробной информации посетите Центр регистрации Intel®.

    Системные требования
    Аппаратные средства
    Минимальные требования
    • Система Apple Mac на базе процессора Intel
    • Минимально 512 МБ и рекомендуемо 1 ГБ ОЗУ
    • Свободное место на диске 100 МБ плюс еще 200 МБ во время установки для загрузки и временных файлов
    Программное обеспечение
    Минимальные требования
    • Инструментальные средства разработчиков Mac OS X, включая Xcode версий 2.4.1, 2.5, или 3.0
    • Mac OS X версии 10.4.9
    • GCC версии 4.0


    Целевая система

    Аппаратные средства
    Рекомендуемые требования
    • Система Apple Mac на базе процессора Intel
    Программное обеспечение
    Рекомендуемые требования
    • Mac OS X версии 10.4.9

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

    We invite you to post a comment (not monitored by customer support) on this page or send a question directly to our support team.