问题标签 [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.
c++ - 用于检测 APIC id 的代码为不同的逻辑处理器返回相同的 id
我在基于 Intel Core2 的 Win2k3 机器上运行我的 NT 服务,我需要遍历所有逻辑 CPU(进程关联中的所有位)。为此,我调用 GetProcessAffinityMask() 来检索系统关联掩码,然后将进程依次切换到每个处理器:
在每次迭代中,我从这里调用代码来检索当前处理器 APIC id。问题是对于不同的处理器,它有时会返回相同的 APIC id。根据文档,系统中的每个处理器都必须具有相同的 ID。
我试过调试这个 - 检查 Windows 是否真的改变了亲和力:
它准确地返回了我期望的关联掩码,但不同处理器的 APIC id 仍然可以相同。
这种奇怪的情况有解释吗?
windows - 设置亲和性是否确保只使用一个核心资源?
我只是想知道设置 cpu 亲和力是否确保应用程序仅在该核心上运行?
bash - 在 Bash 中取反无符号数
我有一个数字(十六进制),我想要它的补码。例如,如果X = 20
我想让 bash 执行否定并返回Y = ~X = DF
。它不必在 bash 中,但它应该使用我可以包装到脚本中的常用命令行工具。另请注意,这些数字都应该是无符号的,我希望它们不会溢出可用的位(例如,20
只有 8 位,所以输出应该是 8 位的反码)。
我使用 bash 和 bc 尝试了各种方法,但没有找到合适的组合。有任何想法吗?
(如果有人关心,目标是将 IRQ 关联设置到特定 CPU,然后将其他 IRQ 设置到所有其他处理器。)
multithreading - 立即使用 sched_setaffinity() 对 cpumask 进行更改
我正在编写一个 linux 内核模块,该模块需要将两个线程固定在两个不同的 cpu 上。我计划在将 sched_setaffinity() 导出到内核后使用它。是否还有其他相同的导出功能?
另外,如果我在 cpumask 中只设置了 1 个 CPU,线程会立即移动到该 cpu 吗?如果没有,我该如何执行?在 sched_setaffinity() 之后调用 schedule() 会有所帮助吗?
linux-kernel - Linux内核模块的处理器关联设置?
在 Windows 中,我可以使用 KeSetSystemAffinityThread 设置驱动程序代码的处理器亲和性,并使用 KeGetCurrentProcessorNumber 检查我的代码在哪个处理器上运行。
我正在尝试在 Linux 内核模块中做类似的事情,但我能看到的唯一关联调用是针对用户态进程的。有没有办法做到这一点,以便我可以在特定处理器上运行汇编代码?(即新加坡元)
编辑:
我想我已经弄清楚如何获得当前的处理器了。smp_processor_id() 似乎应该可以工作。
windows - 识别处理器(核心)被特定线程使用
我想知道是否可以通过特定的线程识别物理处理器(核心)thread-id
?
例如,我有一个多线程应用程序,它有两 (2) 个线程(例如thread-id = 10
和thread-id = 20
)。我在具有双核处理器(核心 1 和核心 2)的系统上运行应用程序。那么,如何获取线程使用的核心数thread-id = 20
?
PS Windows 平台。
谢谢,
丹尼斯。
c# - 为什么 PerformanceCounter 的 NextValue 调用会更改线程关联掩码
我有一个 C# 项目,我必须在其中访问我的处理器的当前工作负载,并确保我在处理器的每个内核上运行一些特定的代码。我的问题是,访问我的处理器的工作负载似乎阻止我正确分配线程关联掩码。我这里有一些代码,可以说明问题:
运行此代码会产生以下输出:
因此,似乎 cpuUsage.NextValue 调用以某种方式更改了线程关联掩码,并且也使得无法将掩码更改为 1。确实有道理,Nextvalue 调用必须以某种方式与线程关联掩码交互,如果它正在汇总每个内核的性能计数,但我无法理解,为什么它会影响未来对线程关联掩码的更改。有人对此问题有解释或解决方法吗?
ruby-on-rails - How to build/mantain an affinity score between 2 users?
I mean analyzing 2 users profiles I get a score that it is reciprocal
a.affinity(b) == b.affinity(a)
I'd like to know in particular:
which schema would u use to implement the affinity table
which db mysql, redis,..
which technology would you use to update the affinity score in background?
Thanks
c - 实现 include/sched.h 函数
我想研究如何将线程手动分配给多核机器上的特定内核。我发现 include/sched.h 定义了一些可以对此有所帮助的宏和函数(sched_setaffinity 等)。但是,这些函数是外部的,我找不到它们的定义。这些功能是否在任何地方实现?如果是,在哪里以及是否可以覆盖默认实现?如果没有,我该如何实施它们?
添加新的实现是否意味着我必须重新编译我的 Linux 内核?