OpenMP nécessite un compilateur prend en charge, et travaille avec des pragmas. L'avantage de ce système est que lors de la compilation sans OpenMP-support (par exemple, PCC ou Clang/LLVM dès à présent), le code de la compilation. Aussi, jetez un oeil à ce que Charles Leiserson a écrit à propos de BRICOLAGE multithreading.
Pthreads est une norme POSIX (IEEE POSIX 1003.1 c) pour les bibliothèques, tout en OpenMP spécifications doivent être mis en œuvre sur des compilateurs; cela étant dit, il ya une variété de pthread implémentations (par exemple, OpenBSD rthreads, NPTL), et un certain nombre de compilateurs qui prennent en charge OpenMP (par exemple GCC avec l'option-fopenmp drapeau, MSVC++ 2008).
Pthreads ne sont efficaces que pour la parallélisation lorsque plusieurs processeurs sont disponibles, et uniquement lorsque le code est optimisé pour le nombre de processeurs disponibles. Code OpenMP est plus facilement évolutive, comme un résultat. Vous pouvez mélanger du code qui compile avec OpenMP avec code à l'aide de pthreads, trop.