Pull to refresh
0

Щупаем новый Intel Parallel Studio XE 2011 beta

Reading time2 min
Views7.5K
Вот, наконец, добрался попробовать Си++ компилятор, входящий в состав Intel Parallel Studio XE 2011 beta. Привожу краткий отчет о своих экспериментах.


Скачать и попробовать новую версию Parallel Studio можно здесь: Intel Parallel Studio XE 2011 for Windows* Beta Registration. Лицензия на beta-версию предоставляется на несколько месяцев, так что времени для экспериментов с инструментом вполне достаточно. Размер дистрибутива (for IA-32/Intel 64 — 1 GB) несколько удивляет, но в настоящее время, думаю, скачать его не будет проблематично.

Меня и коллег в Intel Parallel Studio интересовал собственно один единственный вопрос — сборка PVS-Studio. Хотелось посмотреть, получим ли мы прирост производительности? и каков будет этот прирост.

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

Анализатор PVS-Studio имеет конфигурацию для сборки под Win32 и Win64. Нас кончено в первую очередь интересовала 64-битная сборка, но, к сожалению, с ней не заладилось. Мы используем Boost, который нам не удалось собрать для Win64. Возможно, мы что-то делали не правильно и руки у нас не там. Однако кажется причина все таки в дефекте компилятора, в результате чего на многих файлах мы получили сообщения вида:
c:\boost_1_44_0\libs\iostreams\src\file_descriptor.cpp(294) 
(col. 1): internal error: 0_1374
compilation aborted for libs\iostreams\src\file_descriptor.cpp 
(code 4)

С другими конфигурациями библиотеки Boost проблем не возникло:
Intel Parallel Studio XE 2011 beta, Boost
Как видно Debug успешно собирается как в 32-битном, так и 64-битном режиме. К сожалению, Debug-версии нам не интересны, поэтому пришлось ограничиться сравнением Release Win32 и Release Win64.

Еще попутным мелким неприятным моментом оказалось, что Intel C++ до сих пор так и не научился поддерживать «nullptr», появившийся в C++0x. Пришлось сделать вставку в stdafx.h:
#ifdef __INTEL_COMPILER
  #define nullptr 0
#endif

А теперь самое интересное — замер скорости работы внутренних тестов. Простая перекомпиляция проекта ничего не дает, даже приводит к замедлению его работы:
Picture 2
Однако уже использование ключей /Qipo «Multifile interprocedural optimization» и /GA «Optimize for Windows Applications» дает заметный прирост производительности:
Picture 3
А вот использование опции /Qparallel (Tells the auto-parallelizer to generate multithreaded code for loops that can be safely executed in parallel) ничего заметного не дало. Но возможно мы просто «не умеем их готовить», и к своему стыду были не заинтересованы продолжать изучение. Не интересно по той причине, что более подробные эксперименты с возможностями оптимизации имеют смысл для нас только относительно 64-битной версии. Надеемся релиз Intel Parallel Studio будет более стабильный и тогда можно будет продолжить. Однако уже видно, что можно получить существенный выигрыш от смены компилятора. Рекомендую попробовать.
Tags:
Hubs:
+18
Comments5

Articles

Change theme settings

Information

Website
www.intel.ru
Registered
Founded
Employees
5,001–10,000 employees
Location
США
Representative
Анастасия Казантаева