问题标签 [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 投票
4 回答
1169 浏览

multithreading - 线程和 CPU 亲和性

假设一台机器上有两个处理器。线程 A 在 P1 上运行,线程 B 在 P2 上运行。

线程 A 调用Sleep(10000);

是否有可能当线程 A 再次开始执行时,它在 P2 上运行?

如果是,谁来决定这种转变?如果没有,为什么不呢?

处理器是否存储了它正在运行的所有线程的一些数据,或者操作系统将每个线程绑定到处理器的整个生命周期?

0 投票
1 回答
1618 浏览

windows - 如何为超过 32 个内核的系统替换 SetProcessAffinityMask()/GetProcessAffinityMask()?

SetProcessAffinityMask()函数接受一个DWORD掩码,因此它不能在超过 32 个处理器的系统上正确使用。

看起来SetThreadGroupAffinity()是为了以某种方式解决这个问题,但我找不到任何有用的代码示例来说明它的用法?

如何使用SetProcessAffinityMask()/GetProcessAffinityMask()来调整我的程序,使其适用于超过 32 个处理器的系统?有代码示例吗?

0 投票
2 回答
481 浏览

c++ - SethreadAffinityMask() 正确用法?

我有 1500 个线程..我希望它们在 12 个处理器上运行...为此我称之为 SetThreadAffinityMask(GetCurrentThread(),1<<(threadnum%numprocessors));其中处理器数 = 12。口罩的使用正确吗?它需要可扩展,也就是说,如果我希望它仅在 11 个处理器上运行,那么 SetThreadAffinityMask(GetCurrentThread(),1<<(threadnum%numprocessors));numprocessors=11。

0 投票
1 回答
2545 浏览

pthreads - 如果我在进程中执行 sched_setaffinity,它产生的线程会受到影响吗

如果我这样做: CreateThreads,setsched_affinity 到 CPU 0,那么所有线程是否也对 CPU 0 具有亲和力 如果相反,我颠倒操作顺序,即先 set_schedaffinity 然后创建线程,线程是否具有亲和力

我正在使用 pthreads 库创建线程。感谢您的任何回答

0 投票
3 回答
2572 浏览

performance - 基准处理器亲和力影响

我正在研究一个NUMA架构,其中每个计算节点有 2 个套接字和 4 个内核,计算节点总共有 8 个内核,每个节点有 24GB 的 RAM。我必须证明设置处理器亲和性会对性能产生重大影响。

您是否有任何程序建议我可以用作基准来显示使用处理器亲和性之间的影响差异?我也可以使用 MPI、OpenMP 或 pthreads 编写一个简单的 C 测试程序,但是什么操作最适合进行该测试?它必须能够利用缓存局部性,但也会触发上下文切换(阻塞操作),因此进程可能会迁移到另一个核心,或者更糟的是,迁移到另一个套接字。它必须在 8 个内核的倍数上运行。

0 投票
1 回答
544 浏览

multithreading - 为 WCF DuplexChannelFactory 服务设置线程关联

是否可以为 WCF 服务设置线程关联?当我实例化我的服务时,我希望它的所有处理都被限制在一个核心上。

提前致谢。

0 投票
2 回答
6636 浏览

android - 以编程方式设置“任务亲和性”

有没有办法以编程方式设置“任务亲和力”?我的意思是像一些意图标志或某事?我在 Android 文档中没有找到任何关于这可能的信息。

在 AndroidManifest.xml 中以静态方式设置亲和力android:taskAffinity不适合我的需要。

0 投票
1 回答
6223 浏览

linux - 是否可以在 OS X 中设置 pthread CPU 亲和性?

Linux中,在sched.h中定义了一个sched_setaffinity()函数,但我似乎在Mac OS X 10.6 pthreads实现中找不到类似的东西......如果无法设置亲和力,默认策略是什么在OS X中?

0 投票
2 回答
24538 浏览

linux - pthread_self() 和 gettid() 有什么区别?我应该使用哪一个?

我正在尝试在 Linux 上设置线程的 CPU 亲和性。我想知道推荐以下哪种方法:

  1. 使用 pthread_self() 获取线程 ID

    通过将线程 ID 作为参数传递,使用 pthread_setaffinity_np(....) 设置 CPU 亲和性

  2. 使用 gettid() 调用获取线程 ID

    使用 sched_setaffinity(....) 通过传递线程 id 代替进程 id 来设置 CPU 亲和性

PS:设置CPU亲和性后,我打算提高线程的调度优先级。

0 投票
1 回答
365 浏览

wpf - Silverlight 和 WPF 中事件处理的差异 - 线程关联性问题

我一直在 Silverlight 中开发 Lync Silverlight 应用程序,现在我正在尝试将其转移到 WPF。

但是,我面临一些线程关联性问题。例如,我在我的页面上的文本块中显示 Lync 客户端的状态,因此在我后面的代码中连接了一个状态更改事件处理程序,每当 Lync 客户端的状态发生更改时,它都会将新状态写入文本块。

现在,这在 Silverlight 中完美运行,但在 WPF 中似乎是不允许的。现在我的问题是:

  1. 即使 Silverlight 应该是 WPF 的一个子集,它为什么在 Silverlight 中而不是在 WPF 中工作?

  2. 线程亲和性是一个重要的概念,我知道我们可以使用调用调度程序,但它不是以事件处理程序和回调的形式击败了异步编程的概念吗?

  3. 我在我的 XAML 页面中定义了一个按钮,并且在其上定义的单击事件处理程序可以访问其他 UI 元素,它不会遇到上述问题。

    但是,如果我在代码隐藏中定义了一个 LyncClient 实例,则在其上定义的事件处理程序无法访问 UI 元素。为什么这样,我在 Silverlight 中检测到 UIElements 和其他对象之间没有这种差异?