问题标签 [affinity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
78520 浏览

windows-7 - 在 Windows 7 上使用 start /AFFINITY 命令设置关联

我正在使用该start /AFFINITY [n] [.exe]命令启动具有指定亲和力的可执行文件。我有一个有 8 个处理器(1、2、3、4、5、6、7、8)的系统。我想将进程设置为使用所有奇数处理器(1、3、5、7)。我无法弄清楚如何做到这一点,并想知道是否可以使用 start 命令。如果没有,是否有替代的命令行方式来做到这一点?

start 命令的帮助并不是特别有用:

0 投票
4 回答
1777 浏览

c++ - 如何在 C++ 程序中通过拓扑考虑在多核 HT 上实现亲和性?

我正在开发一些具有可变线程数的 C++ 多核程序,我想知道如何设置适当的(实际上是“最好的”)亲和力。我使用 Boost-threads,所以我可以调用 get_hardware_concurrency() 来了解有多少逻辑内核。到现在为止,我写了一个映射“n_th thread to n-th logical core”,但这并不是最聪明的事情,因为多插槽处理器和超线程。我的程第 2 个物理上的第 1 个逻辑,...,第 n 个物理上的第 1 个逻辑,第 1 个物理上的第 2 个逻辑等等。

我发现很多东西都在讨论如何发现 HT 是否启用(CPUID)以及如何确定每个包的逻辑和物理核心。我知道我必须处理一些汇编代码,这并没有吓到我,但我真的不知道如何了解有关逻辑核心、物理核心和包的完整信息以及操作系统如何处理所有这些信息。

作为最简洁的我:我怎么知道操作系统(Windows和Linux)称为N-th的线程的确切位置(物理核心和包)?

0 投票
3 回答
3973 浏览

windows-7 - 如何以编程方式设置 Windows 7 中所有正在运行的进程的亲和性?

有没有办法为 Windows 7 中所有正在运行的进程设置关联?

我想运行一些超线程基准测试,并且我想确保它们在某个核心上单独运行。我用包装器运行它们,我想做这样的事情(在伪代码中):

现在,我想我知道如何设置当前进程及其子进程的亲和力,但我怎么能:

  1. 遍历所有进程?
  2. 设置其他进程的亲和力?
0 投票
1 回答
920 浏览

linux-kernel - cpumask 如何影响 linux 内核中其他进程的调度?

我在安装了 ubuntu 的机器上使用了 linux 2.6.x 内核(只是提到了 Ubuntu,以防万一发生任何变化)。内核在具有 8 个内核的机器上运行。该机器也运行 openvz 但我认为这不会改变问题的上下文。

我安装了一个只允许使用两个 CPU 的软件,它在前两个 CPU(cpumask 3)上设置了硬 CPU 亲和性。我在问自己其他进程的调度如何受此影响。我想我读过一些关于它的东西,但我现在假设进程可能会连接到第一个 CPU。并且内核试图将进程始终保持在同一个 CPU 上,以避免缓存失效。

在机器上,有很多进程正在运行。内核如何处理这种情况?可能是硬 CPU 亲和进程运行速度较慢,因为它们在绑定到拥挤区域时受到影响?内核如何关心硬亲和性。

0 投票
1 回答
3140 浏览

c++ - 如何防止子分叉进程继承 CPU 亲和性?

我有一个分叉许多子进程的服务器进程。服务器进程与 CPU 核心具有亲和力,但我不希望子进程继承这种亲和力(而是操作系统应该处理在哪里运行这些进程)。有没有办法将父子进程与 CPU 关联性分离?

0 投票
2 回答
12206 浏览

c++ - 使用将在 Linux 上运行的 C++ 设置处理器亲和性

可能重复:
CPU 关联性

我在 Linux 上运行,我想编写一个 C++ 程序,该程序将设置 2 个特定处理器,我的 2 个应用程序将并行运行(即设置每个进程在不同的核心/CPU 上运行)。我想将处理器关联工具与 C++ 一起使用。请任何人都可以帮助 C++ 代码。

0 投票
1 回答
276 浏览

asp.net - 共享(Web-Farm)ASP.NET Web 两层环境

如果您在 Web 层前使用 F5 负载平衡器(粘性会话),我是否可以拥有一个共享的两层 Web 应用程序环境,该环境可以具有具有两种不同会话管理配置的 Web 应用程序?例如,Web 应用 #1 使用进程内会话管理,而 Web 应用 #2 使用单独的会话状态服务器?两个 Web 应用程序都位于 Web 层中的 IIS 中,而数据库位于数据层中。

0 投票
1 回答
242 浏览

vb.net - 对来自 VB.NET 的非托管 DLL 调用强制执行特定的处理器关联

我正在从 VB.NET 网络服务器调用一个函数到一个自定义编写的非托管 DLL。如果我们通过多核服务器上的 web 服务调用这个 DLL,我们会遇到问题并且它总是崩溃。

如果我重新启动服务器并使其仅使用单核,它总是运行良好并且永远不会崩溃。

我知道 DLL 调用是导致崩溃的原因,因为我在 DLL 调用之前和之后输出了调试代码。

我可以将 .NET 代码的处理器亲和性强制为 1 个核心,但这不适用于非托管 DLL。

我如何强制非托管 DLL 仅在单个内核上运行,因为我确信这会解决问题?

0 投票
1 回答
1415 浏览

linux - 在 Linux 上获取进程和线程关联掩码

在 Windows 上,存在 GetProcessAffinityMask API 调用,并且还存在查找线程关联掩码的迂回方法,如下所示:

查询线程(不是进程)处理器亲和性?

有没有办法在 Linux 中获取这些信息?对 sched_getcpu() 的调用只返回线程当前正在运行的 cpu,而不是它的关联掩码。

0 投票
2 回答
22881 浏览

linux - 一个专供​​我的流程使用的核心

可能重复:
如何设置特定 pthread 的 CPU 亲和性?

Linux 中有没有办法为除一个进程之外的所有进程禁用一个内核?我想只为我的进程保留一个核心。

预期行为如下:

  1. 将在我的进程之后生成的进程不应看到此核心并使用其他核心。
  2. 当我的进程产生时,所有使用这个核心的进程都应该切换到其他核心。