In the previous post "Cold Tachyon" we showed an alternative approach to detecting parallel errors with the static code analyzer PVS-Studio (VivaMP). The tool PVS-Studio (VivaMP) was compared to Intel Parallel Inspector. On this example, the both tools showed the same efficiency having diagnosed the errors in the code. Of course, this does not mean that the tools are interchangeable. Each of them has its own scope of use but on the example of Tachyon we found out that the both technologies (the static and dynamic analyses) have the same result.
OpenMP support in PVS-Studio had been dropped after version 5.20. If you have any questions, feel free to contact our support.
It would be incorrect to forget that Intel Parallel Studio also includes a static code analyzer intended for detecting errors in parallel OpenMP programs. The analyzer is a subsystem of Intel C++ compiler and is called Parallel Lint.
We decided to make a separate post to discuss the analysis of Tachyon project with Parallel Lint in order not to overburden the reader with diverse information. The post must be of a medium size and show what warnings are generated by Intel Parallel Lint at various stages of modifying the parallel code of Tachyon project.
Unfortunately, Intel Parallel Lint analyzer did not manage to detect any error in Tachyon project. I.e. it did not generate any diagnostic warning concerning the function parallel_thread in the projects (trace.par1.cpp, trace.par2.cpp, trace.par3.cpp), showing various stages of parallelization. So, we have to wait for the next version of Intel Parallel Lint.
You may see the following materials to get acquainted with Parallel Lint: