では、どうやってOpenMPは並列実行しているか、すこしお勉強しましょう。
OpenMPでは「fork-join」モデルというものを採用していると書いてあります。

難しいことは言いません、並列リージョンを作成するとOpenMPではforkで複数スレッドに分岐して、並列リージョンが終わるときにjoinでまた一つのスレッドにまとめられると考えてください。このとき逐次プログラムで動いているスレッドをマスタースレッドと言います。ですから、並列リージョンに入るとforkでマスタースレッドから指定されたスレッド数に分岐して、終わったらマスタースレッドに統一されます。
つまり、このお約束を守ることができれば、pthread だろうが何を使おうが実現することでOpenMPのライブラリを作ることができます。
実行モデルはこんな感じです。