【问题标题】:Powershell 4 - Setting processor affinity for runspaces and multiple threadsPowershell 4 - 为运行空间和多线程设置处理器亲和性
【发布时间】:2014-07-30 05:41:54
【问题描述】:

我想设置多个特定线程的 cpu-affinity。

到目前为止,我发现的所有参考资料都涉及设置进程 (PID) 的 cpu 亲和性,而不是线程。在使用 .Net Runspaces 时有没有办法做到这一点?还是我在尝试做一些不可能的事情?

基本思想是:我有一个 20 核的盒子,希望线程在核之间均匀分布。否则,它们最终都会敲击单个核心。

谢谢!

【问题讨论】:

  • 20 核!你好烂! ;-) 你是如何导致额外的线程被旋转起来的?您使用的是 RunspacePool 还是其他?
  • 是的...它是一个大盒子 :-) 是的,我正在使用运行空间池。

标签: multithreading powershell affinity


【解决方案1】:

我不确定 .Net 包装器,但 Win32 api SetThreadAffinityMask 可以满足您的需求 - 请参阅此处的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686247(v=vs.85).aspx

【讨论】:

  • 我不确定这将如何与运行空间相关联。我想你没有任何例子吗?
  • 一个例子:khason.net/blog/…
  • 运行空间有一个属性 ThreadOptions - 如果您使用 ReuseThread(用于运行空间池)或 UseCurrentThread,您可以确定运行空间没有创建新线程,因此为每个运行空间设置一次线程亲和性就足够了.
猜你喜欢
  • 2013-03-19
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 1970-01-01
相关资源
最近更新 更多