![image](https://habrastorage.org/getpro/habr/post_images/675/ec5/1a3/675ec51a32b09405312a95a8d8bb2e55.png)
Прежде чем приступить к изучению методики распараллеливания программ с помощью технологии OpenMP рассмотрим инструментарий, который нам потребуется. А потребуется нам в первую очередь Visual Studio 2005/2008 и Intel Parallel Studio.
Преимущество технологии OpenMP заключается в том, что взяв код последовательной программы, можно распараллелить его без существенной модификации. Это достигается расстановкой специальных директив. Конечно, на практике придется не только вставлять директивы, но и править сам код приложения, но этих изменений будет гораздо меньше, чем если использовать альтернативные технологии, такие как MPI.
Вышесказанное означает, что мы можем взять обыкновенный последовательный код на языке Си/Си++ и начать его постепенно распараллеливать. Для этого нам достаточно включить в проекте поддержку OpenMP. В среде Visual Studio 2005/2008 зайдите в свойства проекта и выберете вкладку C/C++ / Language, как показано на рисунке 1.
![Visual Studio settings](https://habrastorage.org/getpro/habr/post_images/e0c/347/153/e0c34715339b3ae612ee10d30c939972.png)
Рисунок 1 — Вкладка Visual Studio с настройками проекта, где можно включить поддержку OpenMP
Не забудьте также выбрать платформы и конфигурации, в которых вы планируете использовать OpenMP. Как показано на рисунке 2, мы выбрали все конфигурации (debug, release) и все платформы (Win32, x64).
![Select platform](https://habrastorage.org/getpro/habr/post_images/04b/2bd/109/04b2bd10937fee266adc3f0391877ab6.png)
Рисунок 2 — Выбор конфигураций и платформ, для которых мы устанавливаем параметры
Поддержка OpenMP включается опцией «OpenMP Support» как показано на рисунке 3.
![OpenMP ON](https://habrastorage.org/getpro/habr/post_images/134/d3b/640/134d3b640316f3b76c596676b00da2aa.png)
Рисунок 3 — Поддержка OpenMP включена
Следующим шагом является подключение заголовочного файла «omp.h». Часто рационально поместить "#include <omp.h>" в stdafx.h, чтобы он был виден во всем проекте.
Вот и все подготовительные шаги, которые необходимы, чтобы начать осваивать технологию OpenMP и распараллеливать программный код. Знакомство с OpenMP мы начнем со следующей заметки. Сейчас мы продолжим знакомство с инструментами. Дело в том, что хотя возможностей Visual Studio 2005/2008 достаточно чтобы разрабатывать параллельные OpenMP программы, это слишком спартанские условия. Для полноценной работы разумно воспользоваться Intel Parallel Studio. Я не сотрудник Intel и за рекламу инструментов мне никто не платит. Parallel Studio действительно удобный и крайне полезный инструмент для разработки параллельных приложений. Рекомендую на основании собственного опыта.
Дистрибутив Intel Parallel Studio занимает порядка 460 Мбайт и доступен для скачивания с сайта Intel. При этом полная функциональность Parallel Studio будет доступна в течении одного пробного месяца, что вполне достаточно, чтобы познакомиться с принципами работы и поэкспериментировать с параллельным кодом. Parallel Studio интегрируется внутрь Visual Studio 2005/2008, добавляя дополнительные пункты меню и в панель инструментов (смотри рисунок 4).
![Parallel Studio Toolbars](https://habrastorage.org/getpro/habr/post_images/2b1/ff6/6a6/2b1ff66a64fcd6ffc10efa88bc7773aa.png)
Рисунок 4 — Панели инструментов, добавляемые Intel Parallel Studio в Visual Studio
В следующих параллельных заметках мы будем использовать инструмент IntelParallel Inspector из комплекта Intel Parallel Studio для проверки создаваемого параллельного кода на наличие параллельных ошибок. А также Intel Parallel Amplifier для оптимизации. Компилятор Intel Parallel Composer нам не обязателен, но мы будем компилировать OpenMP приложения им. В качестве преимущества можно назвать поддержку Intel Parallel Composer версии стандарта OpenMP 3.0, в то время как компилятор из Visual Studio 2005/2008 поддерживает только OpenMP 2.0. Также Intel C++ дает некоторые дополнительные возможности по статическому анализу параллельного кода, о чем можно прочитать в статье.
Для компиляции приложения с использованием Parallel Composer следует сделать активным компилятором Intel C++. Это можно осуществить используя кнопку «Use Intel C++» на панели инструментов, как показано на рисунке 5.
![Select Intel C++](https://habrastorage.org/getpro/habr/post_images/0dd/194/59c/0dd19459cc568041eeb471ddbc086321.png)
Рисунок 5 — Выбор компилятора Intel C++
Теперь для сборки приложения будет использоваться компилятор Intel C++. Да, если после компиляции и запуска приложения вы увидите сообщение, подобное тому что показано на рисунке 6, то не расстраивайтесь.
![Error](https://habrastorage.org/getpro/habr/post_images/88e/70e/70d/88e70e70d76bd5b75ca6f4d239ceaa7f.png)
Рисунок 6 — Ошибка запуска тестового приложения после перекомпиляции с использованием Intel C++
Попробуйте просто перезапустить Visual Studio, чтобы в силу вступили изменения которые прописывает Parallel Studio в среду окружения. Если и это не поможет, воспользуйтесь ручной установкой окружения, запустив соответствующие командные фалы. Они доступны из меню пуск, как показано на рисунке 7.
![Set Environment](https://habrastorage.org/getpro/habr/post_images/870/a2e/015/870a2e015e8cd3772921b9e7253301b2.png)
Рисунок 7 — Установка настроек среды
Закончим пока на этом первое знакомство с инструментами. Скачивайте и устанавливайте Intel Parallel Studio. Попробуйте собрать какую-нибудь свою простую программу с использованием Intel C++.