我想設置多個特定線程的cpu-affinity。Powershell 4 - 爲運行空間和多線程設置處理器關聯
到目前爲止我發現的所有參考文獻都涉及設置進程(PID)的cpu-affinity但不是線程。有沒有辦法在使用.Net運行空間時完成此操作?還是我想做一些不可能的事情?
其基本思想是:我有一個20核心框,並希望獲得在覈心之間均勻分佈的線程。否則,他們都會在一個核心上砰砰作響。
謝謝!
我想設置多個特定線程的cpu-affinity。Powershell 4 - 爲運行空間和多線程設置處理器關聯
到目前爲止我發現的所有參考文獻都涉及設置進程(PID)的cpu-affinity但不是線程。有沒有辦法在使用.Net運行空間時完成此操作?還是我想做一些不可能的事情?
其基本思想是:我有一個20核心框,並希望獲得在覈心之間均勻分佈的線程。否則,他們都會在一個核心上砰砰作響。
謝謝!
我不確定.Net包裝,但Win32 api SetThreadAffinityMask可以滿足您的需求 - 請參閱文檔:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686247(v=vs.85).aspx。
我不確定這將如何與Runspaces綁定。我不認爲你有任何例子? – Jeremy
舉例:http://khason.net/blog/parallel-programming-well-it%E2%80%99s-all-about-cpu-affinity-or-how-to-set-processor-affinity-in- wpf/ –
運行空間具有ThreadOptions屬性 - 如果您使用ReuseThread(用於運行空間池)或UseCurrentThread,則可以確保運行空間不會創建新線程,因此每個運行空間設置一次線程親緣關係就足夠了。 –
20核心!你好爛! ;-)你是如何導致額外的線程被分解?你在使用RunspacePool還是其他的東西? –
是的...它的一個大盒子:-)是的,我使用的是運行空間池。 – Jeremy