小编Tom*_*den的帖子

如何确定哪些逻辑核共享同一物理核心?

我正在研究一种工具,让学生自我评估他们的编程作业的表现.特别是,他们编写的程序是多线程的,我没有直接的方法来影响创建的线程数.我想在给定不同数量的内核的情况下比较其程序的性能(理想情况下,它们的程序应该大致成比例地加速它允许使用的内核数量).

我们可以将一个位掩码传递给Process.SetAffinity来控制程序使用的核心.

这在使用超线程并将每个物理核心分成两个逻辑核心的i5和i7机器上存在问题.我希望程序在两个/四个不同的物理内核上运行.在我的i7机器上,亲和力设置为3(核心0和1)的进程将大致与单个核心上的程序一样快(表示这些逻辑核心共享相同的物理核心),但亲和力设置为5(核心0和3)它运行得更快(表明这些内核使用不同的物理内核).但是,我没有找到一种可靠的方法(除了反复试验)来确定这一点.

我如何(没有实验)确定哪些逻辑核共享相同的物理核心?

(/ proc/cpuinfo具有我需要的信息,但在Windows机器上不可用.)

.net c# multithreading processor affinity

19
推荐指数
1
解决办法
1271
查看次数

标签 统计

.net ×1

affinity ×1

c# ×1

multithreading ×1

processor ×1