The existing compilers and code analyzers, allow finding of some bugs which appear during parallel code development.
However, even the majority of experienced developers are new to this sphere. Since multi-core systems are spreading fast, the problem of parallel programming becomes more and more urgent.
Unnecessary concurrent memory writing protection Using critical sections or locks instead of the atomic directive Parallel array processing without iteration ordering Unexpected values of threadprivate variables in the beginning of parallel sections Incorrect worksharing with private variables An external variable is specified as threadprivate not in all units Using the flush directive with a reference type Incorrect usage of dynamic threads creation Using a lock variable without initializing the variable
Redefining the number of threads in a parallel section