В зависимости от реализации, OMP может быть весьма полезен для распараллеливания довольно произвольных битов кода - например, параллельной секции внутри метода, который вызывает два независимых метода - или это может быть плохо. Я думаю, это зависит от того, как создаются / кэшируются потоки.
Как работает реализация VC ++ 2008? И отличается ли реализация 2010 года с точки зрения функциональности и производительности / гибкости?