私は、posix スレッドによる並列サポートを持つ複雑な C コードを使用しています。ハイパースレッディングが存在する前に書かれました。
Macbook i5 (2 コア 4 スレッド) でコードを実行しています。4 つのスレッドで強制的に実行すると、コードにさまざまな malloc エラーなどが発生しますが、2 つのスレッドでは問題ないため、疑問が生じました。
私は pthread についてまったく何も知らないので、物理コアの数だけで正しく実行されるのではなく、使用可能なスレッドの数を自動的に検出して正常に実行されると想定しました。