是否可以在boost線程中設置CPU關聯((即設置每個線程在不同的CPU上運行)?有沒有關於此的任何教程/文檔?Google搜索返回很多信息,除了以下線程其中指定的例子(升壓bind_processor.v1.tar.gz)不再存在於文件服務器。謝謝你。Boost :: Thread API中的CPU親和性
http://lists.boost.org/boost-users/2009/02/45172.php
是否可以在boost線程中設置CPU關聯((即設置每個線程在不同的CPU上運行)?有沒有關於此的任何教程/文檔?Google搜索返回很多信息,除了以下線程其中指定的例子(升壓bind_processor.v1.tar.gz)不再存在於文件服務器。謝謝你。Boost :: Thread API中的CPU親和性
http://lists.boost.org/boost-users/2009/02/45172.php
只是不。大多數情況下,當你認爲這會對事情有所幫助時,情況會變得更糟。
您放置在系統上的每一項限制都有成本。調度程序非常聰明,您對它施加的限制越多,執行的就越差。除非有充分的理由,否則調度程序不會將線程從一個核心移動到另一個核心。
boost API有一個名爲native_handle的方法,它返回underlting posix線程。我在底層的posix線程上執行了所需的設置。 –
我同意,不要爲普通應用程序執行此操作。 但是,您可能正在NUMA平臺(現在基本上是每個平臺)上編寫高性能服務。在這種情況下,爲某些線程設置處理器關聯可能是一個勝利。你想從最靠近PCI總線的節點進行網絡讀取/寫入,其上有NIC等。 這就是說,是的,成本很高;這是在你的時間和勞動。您必須調整特定的硬件配置,並在底層硬件更改或驅動程序得到更新或操作系統修補時隨時運行迴歸。 – paxos1977