如何在Windows中的C ++中特定NUMA节点上启动进程?
例如命令start /NODE X
对节点X执行此操作。但是如何以编程方式实现相同的目标?
答案 0 :(得分:1)
您可以将STARTUPINFOEX
传递给CreateProcess()
(启用EXTENDED_STARTUPINFO_PRESENT
标志),其中STARTUPINFOEX
包含指向PROC_THREAD_ATTRIBUTE_LIST
结构的指针,该结构具有一个列表中的PROC_THREAD_ATTRIBUTE_PREFERRED_NODE
项:
lpValue参数是指向新进程的首选NUMA节点的节点号的指针。
有关建立属性列表的更多信息,请参见InitializeProcThreadAttributeList()
和UpdateProcThreadAttribute()
。
Raymond Chen在他的博客上讨论PROC_THREAD_ATTRIBUTE_LIST
:
Programmatically controlling which handles are inherited by new processes in Win32
Another way to create a process with attributes, maybe worse maybe better