多 cpu、多核和线程数

发布于 2024-12-14 19:47:08 字数 341 浏览 1 评论 0原文

系统配置:Win 7 64 位、Visual Studio 2010 Premium、带 2 个 Xeon 5690 芯片的 Dell t7500、48 GB 内存。每个 Xeon 有 6 个核心,因此有 12 个物理核心。对于超线程,应该有 24 个逻辑核心。

在我的 C 应用程序中:

Session.coresAvailable  =    omp_get_num_procs ( );
Session.threadsAvailable    =    omp_get_max_threads ( ) ;

系统返回并告诉我有 12 个核心和 12 个线程。不是应该是24线程吗?

System config: Win 7 64bit, visual Studio 2010 Premium, dell t7500 with 2 xeon 5690 chips, 48 gig of ram. Each xeon has 6 cores, so there are 12 physical cores. With hyperthreading, there should be 24 logical cores.

In my C app:

Session.coresAvailable  =    omp_get_num_procs ( );
Session.threadsAvailable    =    omp_get_max_threads ( ) ;

The system comes back and tells me there are 12 cores and 12 threads. Shouldn't it be 24 threads?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦纸 2024-12-21 19:47:08

将评论转换为答案:

您需要在 BIOS 中启用超线程才能看到所有 24 个线程。

Converting comment to answer:

You need to enable HyperThreading in the BIOS to see all 24 threads.

歌枕肩 2024-12-21 19:47:08

超线程对于多任务处理非常有用,但对于同质并行算法则不太有用,在同质并行算法中,所有线程都执行相同的指令并且需要相同的内部子单元。所以 omp 可能会忽略虚拟线程。

Hyperthreading is pretty darn useful for multitasking, not so much for homogeneous parallel algorithms, where all threads are executing the same instructions and need the same internal subunits. So omp might just ignore virtual threads.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文