News

27.11.2008 Beta-version of VivaMP code analyzer designed for error educing in parallel OpenMP programs has been released.»

31.10.2008 Two our articles are published in the magazine “Izvestiya TulGU. Tehnicheskie Nauki”, issue ¹3 – 2008.»

15.10.2008 Announcing Viva64 2.20.»

News RSS

Parallel Programming

Main » Articles » Parallel Programming

The tool for programmers VivaMP is intended for helping OpenMP-based parallel software developers. The article gives a brief description of the program product.
Since multi-core systems are spreading fast, the problem of parallel programming becomes more and more urgent. However, even the majority of experienced developers are new to this sphere. The existing compilers and code analyzers allow finding some bugs, which appear during parallel code development. However, many errors are not diagnosed. The article contains description of a number of errors, which lead to incorrect behavior of parallel programs created with OpenMP.
Testing parallel software is a more complicated task in comparison to testing a standard program. The programmer should be aware both of the traps he can face while testing parallel code and existing methodologies and toolkit.
In the article the question of use of the static code analyzers in modern parallel program development processes is considered. Having appeared in 70-80s as an addition to compilers, the static analyzers stopped to be popular with the developers in 90s. The reason was probably the increase of the errors diagnostics quality by the compilers. But in 2000s the interest to the static code analyzers started to increase again. It is explained by the fact that new static code analyzers were created, which started to detect quite difficult errors in programs. If the static code analyzers of the past made it possible, for example, to detect an uninitialized variable, modern static code analyzers tend to detect an unsafe access to data from several threads. The modern tendency of static code analyzers development became their use for diagnosing errors in parallel programs. In the work the situations are considered, where the use of such tools makes it possible to considerably simplify the process of creating parallel program solutions.
The article describes principles on which implementation of the static code analyzer VivaMP is based. The described set of testing logical conditions allows you to diagnose some errors in parallel programs created on the basis of OpenMP technology.
The article concerns the problem of excess of program creation terms as a result of a prejudice that programming is simple and even simpler.