Windows ServerDatacenter:设置> 64核心的CPU亲和力

Windows ServerDatacenter:设置> 64核心的CPU亲和力,第1张

概述Windows Server / Datacenter:设置> 64核心的CPU亲和力

SetThreadAffinityMask()允许为64个逻辑核心(处理器)设置关联掩码。 但是,windows Datacenter最多可以有64个cpu,每个cpu有许多内核(请参见此处 )。

如何为64个内核设置线程?

PS。 我在C#编码,所以一个.Net的答案是理想的,但在C中的API也很好。

无法卸载MysqL连接器。净6.9.3,在MysqL.Web.v20.dll失败

VB 6 / .NET interop最近被windows更新破坏了吗?

如何监视应用程序是否被打开?

任务pipe理器不同意Process Explorer?

基于服务的数据库

在while循环期间另一个进程正在使用文件(C#)

当窗体位于主监视器的上方和左方时,光标变为对angular线resize

使用.NETdeBUGging“Application.exe已停止工作”

我可以在windows XP或7上使用最新的.NET框架吗?

在windows XP中的后台进程中捕获屏幕vIDeoC#.NET

我使用以下代码来设置处理器组和cpu的关联:

[StructLayout(LayoutKind.Sequential,Pack = 4)] private struct _GROUP_AFFINITY { public UIntPtr Mask; [MarshalAs(UnmanagedType.U2)] public ushort Group; [MarshalAs(UnmanagedType.ByValArray,SizeConst = 3,ArraySubType = UnmanagedType.U2)] public ushort[] Reserved; } [Dllimport("kernel32",SetLastError = true)] private static extern Boolean SetThreadGroupAffinity( IntPtr hThread,ref _GROUP_AFFINITY GroupAffinity,ref _GROUP_AFFINITY PrevIoUsGroupAffinity); [Dllimport("kernel32",SetLastError = true)] private static extern IntPtr GetCurrentThread(); /// <summary> /// Sets the processor group and the processor cpu affinity of the current thread. /// </summary> /// <param name="group">A processor group number.</param> /// <param name="cpus">A List of cpu numbers. The values should be /// between 0 and <see cref="Environment.ProcessorCount"/>.</param> public static voID SetThreadProcessorAffinity(ushort groupID,params int[] cpus) { if (cpus == null) throw new ArgumentNullException(nameof(cpus)); if (cpus.Length == 0) throw new ArgumentException("You must specify at least one cpu.",nameof(cpus)); // Supports up to 64 processors long cpuMask = 0; foreach (var cpu in cpus) { if (cpu < 0 || cpu >= Environment.ProcessorCount) throw new ArgumentException("InvalID cpu number."); cpuMask |= 1L << cpu; } var hThread = GetCurrentThread(); var prevIoUsAffinity = new _GROUP_AFFINITY {Reserved = new ushort[3]}; var newAffinity = new _GROUP_AFFINITY { Group = groupID,Mask = new UIntPtr((ulong) cpuMask),Reserved = new ushort[3] }; SetThreadGroupAffinity(hThread,ref newAffinity,ref prevIoUsAffinity); }

根据MSDN,SetThreadAffinityMask()设置当前处理器组的亲和力,每个处理器组可以有64个逻辑核心。 使用SetThreadGroupAffinity()更改您的组。 有关更多信息,请参阅http://msdn.microsoft.com/zh-CN/library/windows/desktop/dd405503(v=vs.85).aspx 。

要使用64个以上的cpu,必须考虑处理器组。 有关详细信息,请参阅MSDN。

处理器组

总结

以上是内存溢出为你收集整理的Windows Server / Datacenter:设置> 64核心的CPU亲和力全部内容,希望文章能够帮你解决Windows Server / Datacenter:设置> 64核心的CPU亲和力所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1276963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存