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

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

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

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

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

** На сайте установлена reCAPTCHA и применяются
Политика конфиденциальности и Условия использования Google.
Ваше сообщение отправлено.

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


Если вы так и не получили ответ, пожалуйста, проверьте папку
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-решений будет намного проще и быстрее.

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

Популярные статьи по теме
Эффект последней строки

Дата: 31 Май 2014

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

Я изучил множество ошибок, возникающих в результате копирования кода. И утверждаю, что чаще всего ошибки допускают в последнем фрагменте однотипного кода. Ранее я не встречал в книгах описания этого …
PVS-Studio ROI

Дата: 30 Янв 2019

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

Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые по…
Зло живёт в функциях сравнения

Дата: 19 Май 2017

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

Возможно, читатели помнят мою статью под названием "Эффект последней строки". В ней идёт речь о замеченной мной закономерности: ошибка чаще всего допускается в последней строке однотипных блоков текс…
PVS-Studio для Java

Дата: 17 Янв 2019

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

В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальн…
Как и почему статические анализаторы борются с ложными срабатываниями

Дата: 20 Мар 2017

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

В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализат…
Характеристики анализатора PVS-Studio на примере EFL Core Libraries, 10-15% ложных срабатываний

Дата: 31 Июл 2017

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

После большой статьи про проверку операционной системы Tizen мне было задано много вопросов о проценте ложных срабатываний и о плотности ошибок (сколько ошибок PVS-Studio выявляет на 1000 строк кода)…
Статический анализ как часть процесса разработки Unreal Engine

Дата: 27 Июн 2017

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

Проект Unreal Engine развивается - добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта - появление в коде новых ошибок, которые желательно выявлять как можно раньш…
Бесплатный PVS-Studio для тех, кто развивает открытые проекты

Дата: 22 Дек 2018

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

В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub, GitLab или Bitbucket. Им предоставляется возмо…
Любите статический анализ кода!

Дата: 16 Окт 2017

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

Я в шоке от возможностей статического анализа кода, хотя сам участвую в разработке инструмента PVS-Studio. На днях я был искренне удивлён тому, что анализатор оказался умнее и внимательнее меня.
Как PVS-Studio оказался внимательнее, чем три с половиной программиста

Дата: 22 Окт 2018

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

PVS-Studio, как и другие статические анализаторы кода, часто выдаёт ложные срабатывания. Но не стоит спешить считать странные срабатывания ложными. Это короткая история о том, как PVS-Studio вновь ок…

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

Следующие комментарии

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