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

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

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

Меня и коллег в Intel Parallel Studio интересовал собственно один единственный вопрос \- сборка [PVS\-Studio](https://pvs-studio.ru/ru/pvs-studio/)\. Хотелось посмотреть, получим ли мы прирост производительности? и каков будет этот прирост\.

Меня не интересуют абстрактные маленькие программы\-примеры, где быстро что\-то считают математическое\. Это слишком оторвано он реальности\. А у нас в руках есть свой собственный совершенно реальный проект, представляющий собой работу над графами \([деревом разбора](https://pvs-studio.ru/ru/blog/terms/0039/)\)\.

Анализатор PVS\-Studio имеет конфигурацию для сборки под Win32 и Win64\. Нас кончено в первую очередь интересовала 64\-битная сборка, но, к сожалению, с ней не заладилось\. Мы используем Boost, который нам не удалось собрать для Win64\. Возможно, мы что\-то делали не правильно и руки у нас не там\. Однако кажется причина все таки в дефекте компилятора, в результате чего на многих файлах мы получили сообщения вида:

```cpp
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 проблем не возникло:

![0077_Intel_Parallel_Studio_XE_beta_ru/image1.png](https://import.viva64.com/docx/blog/0077_Intel_Parallel_Studio_XE_beta_ru/image1.png)

Как видно Debug успешно собирается как в 32\-битном, так и 64\-битном режиме\. К сожалению, Debug\-версии нам не интересны, поэтому пришлось ограничиться сравнением Release Win32 и Release Win64\.

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

```cpp
#ifdef __INTEL_COMPILER
  #define nullptr 0
#endif
```

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

![0077_Intel_Parallel_Studio_XE_beta_ru/image2.png](https://import.viva64.com/docx/blog/0077_Intel_Parallel_Studio_XE_beta_ru/image2.png)

Однако уже использование ключей /Qipo "Multifile interprocedural optimization" и /GA "Optimize for Windows Applications" дает заметный прирост производительности:

![0077_Intel_Parallel_Studio_XE_beta_ru/image3.png](https://import.viva64.com/docx/blog/0077_Intel_Parallel_Studio_XE_beta_ru/image3.png)

А вот использование опции /Qparallel \(Tells the auto\-parallelizer to generate multithreaded code for loops that can be safely executed in parallel\) ничего заметного не дало\. Но возможно мы просто "не умеем их готовить", и к своему стыду были не заинтересованы продолжать изучение\. Не интересно по той причине, что более подробные эксперименты с возможностями оптимизации имеют смысл для нас только относительно 64\-битной версии\. Надеемся релиз Intel Parallel Studio будет более стабильный и тогда можно будет продолжить\. Однако уже видно, что можно получить существенный выигрыш от смены компилятора\. Рекомендую попробовать\.