私の質問: マルチスレッドで 100% の CPU (少なくとも 80%) を使用する方法、たとえば 4 つのスレッドが 4 つのコアを 100% 使用するようにする
全体の話: いくつかの posix マルチスレッド コードを書きました。マルチコア (最大 16) のクラスター サーバーで実行すると、より多くのコアを使用するとウォール タイムは減少しますが、全体の計算時間 (コードの一部に費やされる時間の合計 ~同期なしの場合) )。一部のコアがスレッドの実行に専念していなかったためだと思います。私のラップトップでコードを実行すると、私の推測が確認されます。
pthread_setaffinity_np でアフィニティを割り当て、優先順位を設定しようとしました pthread_attr_setschedpolicy(&attributes_, SCHED_FIFO); pthread_attr_setschedparam(&attributes_, &p);
これは役に立ちません。