Как говорится, как корабль назовёшь, так на нём и напиши. И вот на протяжении последних пяти с лишним лет, Intel выпускает на рынок средства для разработчиков со звучными и «навороченными» названиями – Parallel Studio, Composer XE, VTune Amplifier XE и так далее. Честно говоря, названий и различных пакетов так много и они так часто «пересекаются», что возникает серьёзная путаница (скажу по секрету — даже внутри Intel), а нередко потенциальные пользователи просто не знают что же им нужно выбрать. Попытаемся упорядочить то, что было и есть в софтовой флотилии Intel, и разберём типичные проблемы с ее плавсоставом. Речь пойдет об инструментах для систем с общей памятью, кластерные средства рассматриваться не будут, хотя ситуация там во многом аналогичная.
Все не так страшно!
Проблемы
Итак, ввиду путаницы возникает целый ряд проблем. «Нумеро уно» — где найти компилятор, причём нужную разработчикам версию? Не секрет, что достаточно часто возникает потребность в конкретном, стабильном, проверенном билде и нужно точно знать какой установочный пакет скачать и где. Согласитесь, далеко не очевидно, что название «Composer XE SP1» таит в себе компилятор версии 14.0. То ли дело — С++ Сompiler 11.1 — и сразу всё понятно.
Вторая неопределенность заключается в том, что в одно время на рынке было представлено два пакета, название которых различалось всего на две буквы — Parallel Studio и Parallel Studio XE, а вот функционал разнился гораздо серьезнее. Сейчас такой проблемы, по существу, нет, но пользователи до сих пор помнят название Parallel Studio, и, для них это тоже самое, что и Parallel Studio XE. А ведь обновления для Parallel Studio до сих пор продаются через официальный сайт.
Кроме того, есть определённые проблемы и с общим пакетом Parallel Studio XE. Обновляется данный набор средств, доступный как один установочный файл, крайне редко. Хотя, обновления ее компонентов идут постоянно. К счастью, лицензия на весь пакет позволяет скачивать и компоненты отдельно, поэтому и приходится обновлять их в ручном режиме. Что, вообще говоря, ставит под сомнение саму логичность наличия единого установщика. Вот заплатил ты свои «кровные», получил целый набор средств, поставил, а выяснилось, что всё уже как 8 месяцев устарело, и обновлений на все компоненты вышло целая уйма. В принципе, эту сложность со временем тоже удалось решить.
Объяснения
Теперь попытаемся понять, почему мы получили такие названия и компоновку средств. Начнём с истории развития средств для разработки ПО, которые предлагает Intel. Далеко в прошлое уходить не будем — ограничимся пятилеткой.
Как таковых «пакетных» продуктов у Intel до 2008 года не было. Был компилятор, который так и назывался Intel Compiler, был профилировщик производительности VTune Performance Analyzer, инструменты для профилировки и отладки многопоточных приложений Thread Profiler, Thread Checker, библиотеки(TBB, IPP, MKL), но так вот чтобы прям всё и в одном месте – нет. Зато упомянутое время стало временем развития многоядерности, и, соответственно, расцвета параллельного программирования. И вот на сцену вышел набор средств в составе:
- компилятора (Parallel Composer),
- профилировщика (Parallel Amplifier),
- динамического анализатора ошибок (Parallel Inspector),
- проектировщика параллелизма (Parallel Advisor).
Соответственно, весь продукт назвали Parallel Studio, что весьма логично, не правда ли? Отметим, что был выпущен он только под Windows, и ориентирован был на mainstream разработчиков.
Именно с пакета Parallel Studio и пошли названия, которые используются до сих пор. Но, обо всём по порядку. Во-первых, почему Composer, а не компилятор? Вопрос сложный, и стоило бы узнать у маркетологов. Но в моей голове возникает только следующее объяснение. Как говорил граф де Ла Фер, благородный Атос, назвать просто компилятором – «слишком мало». Ведь помимо непосредственно компилятора, туда включены ещё и библиотеки MKL, IPP, TBB (что имеет смысл, так как компилятор умеет например, определять, что код перемножает матрицы и вызывать для него оптимизированный код IPP). А называть по одной компоненте весь пакет — как-то много для компилятора. Хотя раньше так и было. Стоит ли говорить, что подобное переименование повлекло за собой много вопросов из разряда «куда делся компилятор то?» и «где нужная мне версия, чувак?», о чём я уже говорил.
Продолжим исторический обзор. Естественно, выпуск такого пакета только для Windows был лишь первым шагом, и достаточно быстро (спустя чуть больше года) появилась следующая версия – Parallel Studio XE. Две «лишние» буквы в названии достаточно серьёзно меняли не только прайс, но и суть. XE, кстати, обозначает eXtreme Edition. Пакет был уже не только для Windows, но и Linux, кроме того, появились различия в версиях компонент. Тот же компилятор в пакете Parallel Studio XE имел больший функционал, чем в Parallel Studio.
Долго два этих пакета просуществовать не смогли, да и не было такой цели – Parallel Studio ушла в историю, передав по наследству названия многих компонент. В итоге остался лишь пакет Parallel Studio XE — так сказать, выжил сильнейший:
- Composer XE. Помним про то, что это компилятор и библиотеки.
- VTune Ampliifer XE. Да, да, наши маркетинговые друзья решили, что слово VTune поможет продажам, и, кстати, оказались весьма правы – VTune – инструмент-легенда. Удачно скомпонованные Parallel Amplifier (тот самый, который был в самом первом пакете Parallel Studio) + улучшенные VTune Performance Analyzer и Thread Profiler, дали на выходе отличное средство для профилировки многопоточных приложений.
- Inspector XE. Здесь скрестили Parallel Inspector и Thread Checker, плюс добавили в компилятор статический анализатор, который красиво отображал результаты именно в окне Инспектора. Кстати, эту функцию сделали доступной только для всего пакета Parallel Studio XE.
Обратите внимание на исчезновение слова Parallel в начале названий всех компонент. Это связано с тем, что этими инструментами и компилировать и профилировать и инспектировать можно не только многопоточные, но и однопоточные приложения.
Вот и всё, что было в пакете XE – 3 средства, призванных облегчить суровые реалии разработки ПО. Кстати, ввиду того, что проблема с названиями версий была очевидна, решили нумеровать их по годам. Таким образом, полное название у пакета было Intel Parallel Studio XE 2011.
Понятно, что со временем появилась XE 2013, а с ней и новое средство – Advisor XE, существовавшее и до этого в рамках Parallel Studio, но для XE предлагавшаяся как отдельная экспериментальная «игрушка», которую можно было докачать. Впоследствии, Advisor XE так же стал полноценной частью студии.
Решения проблем
Как же избежать путаницы и найти именно то, что нужно вам? Для начала, нужно быть очень внимательным и обращать внимание на любые различия в названии. Помним, что Intel Parallel Studio и Intel Parallel Studio XE — разные продукты, и лицензии для них нужны разные. Это относится и к компонентам студий. Скажем, Parallel Composer и Composer XE – не одно и то же!
Если вы являетесь счастливым обладателем студии XE, приобретайте продление именно для этой версии. Кстати, приобрести можно и все компоненты по отдельности.
Проблему с установкой самых последних версий частично решил Intel Software Manager. Теперь поставив общий пакет, он автоматически найдёт последние доступные для вас обновления и предложит их скачать и установить. Очень удобно, учитывая что раньше нужно было идти на Registration Center и делать всё вручную. Но, как я уже сказал, решает проблему частично – при некоторых конфигурациях отказывается работать корректно, в частности из-за слабой поддержки настроек proxy. Поставить его отдельно так же не получится, только с одной из последних версий студии или её компонент. Пока, к сожалению, есть и ряд других проблем, но в последней версии всё это будет учтено и исправлено.
Много информации можно найти на официальных ресурсах, правда в основном на языке Шекспира. Скажем, здесь есть содержимое всех пакетов по компонентам.
По поводу соответствия версий компилятора и пакета Composer XE, есть интересная табличка тут. Она поможет найти полное соответствие не только версий компилятора, но и библиотек. Тоже, кстати, нетривиальная задача. Я же решил набросать простенькую табличку и здесь, чтоб была:
Версия Composer XE | Версия компилятора |
---|---|
2011 | 12.0, 12.1 |
2013 | 13.0, 13.1 |
2013 SP1 | 14.0 |
2015 | 15.0 |
Кстати, хорошо видно, что если раньше в одну версию пакета входили две версии компилятора, то, похоже, сейчас мы переходим на новый принцип. По крайней мере, версию 14.1 мы так и не увидим. Как можно заметить, в табличку я добавил и версию XE 2015. Совсем недавно началось её бета тестирование, но про новинки студии в скором времени появятся другие посты, а сейчас всем хорошего дня, ну или ночи.
И напоследок, раз уж вы теперь знаете всю историю появления Parallel Studio XE. А сталкивались ли вы с подобными проблемами «пакетирования» у других компаний?
На картинке, кстати, есть два «кораблика», с пакетами средств, которые я явно не озвучивал. Но там можно догадаться, в чём отличие, если хорошо знаешь линейку продуктов. Кто заметил, или может быть, использовал эти средства и укажет правильный ответ?