Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
VivaMP - инструмент для OpenMP

VivaMP - инструмент для OpenMP

18 Ноя 2008

Инструмент для программистов VivaMP предназначен для помощи разработчикам параллельных программ на базе OpenMP. В статье приведен краткий обзор программного продукта.

Поддержка OpenMP была прекращена в PVS-Studio после версии 5.20. По всем возникшим вопросам вы можете обратиться в нашу поддержку.

Технология параллельного программирования OpenMP: преимущества и недостатки

Современный процессор (будь он в настольном компьютере или в ноутбуке) имеет несколько ядер. Чаще всего это два ядра, чуть реже три или четыре. Однако совсем скоро и восемь ядер на обыкновенной домашней пользовательской машине будут обычным явлением. Поэтому наиболее прогрессивные разработчики программных продуктов уже сейчас задумываются над тем, как сделать свою программу параллельной. То есть как обеспечить загрузку всех доступных ядер процессора. И хотя абсолютно корректным решением было бы разработкой новой параллельной версии программного продукта, в реальности же обычно "распараллеливают" имеющуюся последовательную версию. Существует довольно много различных технологий параллельного программирования, однако нас интересует, прежде всего, технология OpenMP, как наиболее перспективная для систем с общей памятью. То есть наиболее перспективная для распараллеливания программ предназначенных для работы на персональных компьютерах. Она позволяет сделать существующую программу параллельной, переписав отдельные ее фрагменты. Все это выглядит (и действительно является) очень заманчивым для разработчиков, если бы не один нюанс. Поддержка технологии OpenMP в существующих средствах разработки реализована так, что очень легко допустить ошибки, которые никак не диагностируются [1]. Из-за чего сложность разработки OpenMP-решений значительно возрастает.

Инструмент поддержки разработчиков OpenMP-решений

Для уменьшения сложности разработки OpenMP-решений компанией ООО "СиПроВер", занимающейся созданием программных инструментов в области анализа кода, разработан программный продукт VivaMP.

VivaMP - это анализатор Си/Си++ кода, предназначенный для поиска ошибок в существующих OpenMP-программах и для упрощения разработки новых OpenMP-программ. Если в разрабатываемой параллельной программе есть ошибки, не диагностируемые компилятором, то инструмент VivaMP найдет их. После чего разработчик, воспользовавшись встроенной в VivaMP справочной системой, легко эти ошибки исправит.

Технически инструмент VivaMP реализован в виде модуля расширения (AddIn) для среды разработки Visual Studio 2005/2008 (рисунок 1).

a0058_VivaMP_ru/image1.png

Рисунок 1 - Инструмент VivaMP встраивается в среду Microsoft Visual Studio 2005/2008

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

Инструмент VivaMP позволяет:

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

Указанные способы применения VivaMP делают инструмент полезным как начинающим OpenMP-программистам, так и их более опытным коллегам.

Преимущества статического анализа над другими методикам поиска параллельных ошибок

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

Считается, что верификация параллельных программ методом статического анализа затруднительна и малоэффективна в силу невозможности обнаружить ошибки, возникающие при взаимодействии различных частей программ. Но для технологии OpenMP статический анализ для выявления ошибок в коде возможен и эффективен. Дело в "локальности" технологии OpenMP. Параллельный код в программах, как правило, бывает собран в одном месте, что позволяет выполнить детальный статический анализ для нахождения ошибок. Более подробно этот вопрос рассматривается в статье "Тестирование параллельных программ" [2].

Заключение

Если вы разрабатываете параллельные программы с применением технологии OpenMP, то вам обязательно надо познакомиться с инструментом VivaMP. С его помощью разработка OpenMP-решений будет намного проще и быстрее.

Библиографический список

  • Алексей Колосов, Евгений Рыжков, Андрей Карпов. 32 подводных камня OpenMP при программировании на Си++. http://www.viva64.com/ru/a/0054/
  • Андрей Карпов. Тестирование параллельных программ.
  • http://www.viva64.com/ru/a/0031/
Популярные статьи по теме


Комментарии (0)

Следующие комментарии next comments
close comment form
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам