2011-10-24 7 views
4

ブーストスレッドでCPUアフィニティを設定することは可能ですか(つまり、各スレッドを別のCPUで実行するように設定していますか?)これについて提案できるチュートリアル/ドキュメントはありますか?指定された例(ブースト-bind_processor.v1.tar.gz)は、ファイルサーバに。おかげで、もはや存在している次のスレッドを除いて多くの情報を返す。ブーストでのCPUアフィニティ::スレッドAPI

http://lists.boost.org/boost-users/2009/02/45172.php

答えて

0

ただしないでください。あなたがこれが物事を助けると思うときのほとんどの時間、それは単にそれらを悪化させます。

システムに課されるすべての制限は、費用がかかります。スケジューラーは非常にスマートであり、あなたが強制する制約が増えれば、パフォーマンスは悪くなります。スケジューラは、理由がない限り、あるコアから別のコアにスレッドを移動しません。

+7

boost APIには、下線付きのposixスレッドを返すnative_handleという名前のメソッドがあります。私は基本的なposixスレッドに必要な設定を行った。 –

+0

私は同意します、通常のアプリケーションではこれをしないでください。 しかし、NUMAプラットフォーム(これは基本的にすべてのプラットフォーム)に高性能サービスを作成している可能性があります。この場合、一部のスレッドに対してプロセッサの親和性を設定することができます。 NICを使ってPCIバスに最も近いノードからネットワークの読み書きをしたいとします。 これは、はい、高いコストがかかります。それはあなたの時間と労力にあります。基本的なハードウェアの変更やドライバの更新やOSのパッチ適用時には、特定のハードウェア構成を調整して回帰分析を実行する必要があります。 – paxos1977

-2

を.NETアプリケーションの場合は、あなたをおそらくProcessorAffinityと呼ばれるものを調べる必要があります。

MSDN 1 MSDN 2 Wiki

+0

私はLinuxで作業しており、GNUコンパイラを使用していますが、とにかく感謝します。 –

関連する問題