我想知道如何强制Visual Studio中的C ++程序,运行在特定的核心/核心(在多个计算机上)。
我发现这篇文章,但在Linux中引用C(我在Windows上使用Visual Studio)
另外,我正在使用的Windows版本,重要吗?
可以使用Windows API函数SetThreadIdealProcessorEx()
。 此功能适用于Windows 7或更高版本。 在较老的系统上,尽管有一些限制,但SetThreadIdealProcessor()
可以使用SetThreadIdealProcessor()
。
这是根据第一个环节的言论
指定线程理想处理器向调度器提供关于线程的首选处理器的提示。 调度程序尽可能在线程的理想处理器上运行线程。
我不知道任何强制调度程序在指定的处理器上运行线程的函数。 因此,提供调度程序将尝试采取行动的提示,可能是最符合您要求的。
同样也可以使用SetProcessorAffinityMask()
,它可以指定进程可以运行的处理器,因为一个线程似乎不太可能在不在其父进程的关联掩码内的处理器上运行。
仔细阅读这些功能的文档,因为系统本身可以限制进程可能运行的处理器。