Most people in scientific computing use OpenMP as a quasi-standard when it comes to shared memory parallelization.
Is there any reason (other than readability) to u
You're question is similar to the question "Should I program C or assembly", C being OpenMP and assembly being pthreads.
With pthreads you can do much better parallelisation, better meaning very tightly adjusted to your algorithm and hardware. This will be a lot of work though.
With pthreads it is also much easier to produce a poorly parallelised code.