OpenMP offers
many benefits:
•Portable,
scalable, flexible, standardized, and performance-oriented interface for parallelizing code.
•Hides many
details: Thread team created at app startup, per-thread data allocated when #pragma entered, and work divided into coherent chunks.
But it also
has many limitations:
•C, not
C++.
•Outside the
language, bolted onto code via #pragmas.
•Only good for
simple for loops over arrays (doesn’t work with STL or BCL collections), and for parallel code
sections.
•Doesn’t take
advantage of C++’s superior abstractions for type safety or generic programming.