Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

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

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

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

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

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

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


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
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-решений будет намного проще и быстрее.

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

Популярные статьи по теме
Обрабатывать ли в PVS-Studio вывод других инструментов?

Дата: 26 Май 2022

Автор: Андрей Карпов

Анализатор PVS-Studio умеет "схлопывать" повторяющиеся предупреждения. Предоставляет возможность задать baseline, что позволяет легко внедрять статический анализ в legacy-проекты. Стоит ли предостави…
15000 ошибок в открытых проектах

Дата: 24 Май 2022

Автор: Андрей Карпов

Количество багов в нашей коллекции перевалило за отметку 15000. Именно такое количество ошибок обнаружила команда PVS-Studio в различных открытых проектах. Особенно интересно, что это всего лишь побо…
Комментарии в коде как вид искусства

Дата: 04 Май 2022

Автор: Сергей Хренов

Приветствую всех программистов, а также сочувствующих. Кто из нас хотя бы раз в жизни не оставлял комментарии в коде? Был ли это ваш код, а может, чужой? Что за комментарии вы написали: полезные или …
Visual Studio 2022 стильно и свежо. История о её поддержке в PVS-Studio

Дата: 15 Фев 2022

Автор: Николай Миронов

Кажется, анонс Visual Studio 2022 был только недавно, и вот она уже вышла. Это означало ровно одно – поддержать данную IDE нужно в ближайшем релизе PVS-Studio. О том, с какими сложностями пришлось ст…
Лучшие срабатывания статического анализатора

Дата: 29 Окт 2021

Автор: Максим Звягинцев

У всех, кто запускал статический анализатор в первый раз на большом проекте, был небольшой шок по поводу сотен, тысяч или даже десятков тысяч предупреждений. Как-то грустно становится после такого. Т…

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

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