创建指定要运行的NUMA节点的进程

问题描述 投票:0回答:1

如何在C ++中的特定NUMA节点上在Windows中启动进程?

例如。命令start /NODE X为节点X执行此操作。但是如何以编程方式实现相同的操作?

c++ winapi process launch numa
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.