В предыдущем посте "Холодный Tachyon" был показан альтернативный подход к выявлению параллельных ошибок с помощью статического анализатора кода PVS-Studio (VivaMP). Инструмент PVS-Studio (VivaMP) был сравнен с Intel Parallel Inspector. На данном примере оба инструмента показали одинаковую результативность, диагностировав имеющиеся ошибки. Конечно, это не значит, что инструменты взаимозаменяемы. У каждого из них своя сфера применения, но на примере Tachyon оказалось, что обе технологии (статический и динамический анализ) дают одинаковый результат.
Поддержка OpenMP была прекращена в PVS-Studio после версии 5.20. По всем возникшим вопросам вы можете обратиться в нашу поддержку.
Будет некорректно забыть, что в составе Intel Parallel Studio также идет статический анализатор кода, предназначенный для выявления ошибок в параллельных OpenMP программах. Анализатор встроен в качестве подсистемы в компилятор Intel C++ и имеет название Parallel Lint.
Было принято решение вынести рассмотрение проверки проекта Tachyon с помощью Parallel Lint в отдельный пост, чтобы не перегружать читателя разноплановой информацией. Пост должен был быть среднего размера и показать, какие предупреждения выдает Intel Parallel Lint на различных этапах модификации параллельного кода в проекте Tachyon.
К сожалению, анализатор Intel Parallel Lint не выявил ни одной ошибки в проекте Tachyon. То есть не было выдано ни одного диагностического сообщения по поводу функции parallel_thread в проектах (trace.par1.cpp, trace.par2.cpp, trace.par3.cpp), показывающие различные этапы распараллеливания. Будем ждать следующую версию Intel Parallel Lint.
Для знакомства с Parallel Lint можно обратиться к следующим материалам: