问题标签 [hyperthreading]

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 投票
2 回答
711 浏览

multithreading - 超线程和 CPU 绑定进程

因此,我正在运行 i7 笔记本电脑上未并行化的 cpu 密集型任务。

KSysGuard 报告说我使用了 12.5% 的可用 CPU。

如果我禁用超线程,我可能会获得有意义的性能提升吗?它需要刷新一个新的 BIOS,所以在我过多参与这个想法之前,我想要一个意见......

谢谢,

ñ

0 投票
1 回答
300 浏览

virtual-machine - 超线程内核的虚拟化

在花费大量时间重组遗留程序之前,我正在寻找一些指导。如果我有属于虚拟集群的核心。我有一个计算被分成许多部分并分发给集群的每个成员。如果每个内核都是超线程的,那么以下哪个最有效:

  1. 2 台虚拟机,每个逻辑核心一台。一半的计算被发送到每个
  2. 1 个虚拟机,操作系统在其中处理逻辑内核的使用。
  3. 1 个虚拟机,其中 OpenMP 用于创建 2 个线程来拆分计算。

我的直觉是选项 2,因为超线程内核不是真正的内核,而选项 3 需要在一个线程空闲时启动线程和通信数据的额外开销。非常感谢任何见解。谢谢。

0 投票
2 回答
629 浏览

cpu-usage - 多核/超线程上的 CPU 时间

我需要观察多核/超线程中的进程占用的 CPU 时间。假设一个 Xeon、Opteron 等。

假设我有 4 个内核,超线程,这意味着 8 个“虚拟”内核。让 X 我要运行的程序观察它花费了多少 CPU 时间。

  • 如果我在我的 cpu 中运行进程 X,我得到 CPU 时间 A。假设 A 超过 5 分钟。

  • 如果我运行同一个进程 X 的 8 个副本,我将获得 CPU 时间 B1、B2……、B8。

  • 如果我运行同一个进程 X 的 7 个副本,我将获得 CPU 时间 C1、C2……、C7。

  • 如果我运行同一个进程 X 的 4 个副本,我将获得 CPU 时间 D1、D2……、D4。

问题:

  1. 数字A,Bi,Ci,Di之间的关系是什么?

  2. A比Bi小吗?多少钱?慈、迪呢?

  3. 他们之间的时间Bi不同吗?慈、迪呢?

0 投票
2 回答
2341 浏览

performance - 为什么使用 HT 的并行编译性能比没有的差?

我在 Linux 2.6.39 x86_64 上的 Core i7 930 @2.8GHz(四核)上的 BIOS 中启用和禁用了超线程,对 wine 的编译时间进行了多次测量。每次测量都是这样的:

其中N是从 1 到 8 的数字。

这是结果(“速度”从时间(1)开始为 60/真实):

在此处输入图像描述

此处蓝线对应 HT 禁用,紫色线对应 HT 启用。似乎启用 HT 后,使用 1-4 个线程比不使用 HT 慢。我想这可能与内核没有将进程分配到不同的内核并重用已经很忙的内核的第二个线程有关。

所以,我的问题是:如何强制内核为每个内核调度 1 个进程提供比向同一内核的不同线程添加更多进程更高的优先级?或者,如果我的推理是错误的,对于并行运行的 1-4 个进程,我如何才能使 HT 的性能不比不使用 HT 差?

0 投票
2 回答
308 浏览

python - Django + Uwsgi + CPU Hyperthread 这对并行性有优势吗?

假设我有一个在 uwsgi 皇帝模式下运行的 django 项目,使用这个配置

在启用了超线程的双核 cpu 上运行,这是否意味着我可以 [接近] 同时处理 4 个请求的真正并行性?

与未启用超线程的双核 CPU 相比,它是否具有显着的性能优势?

那么这个配置在有/没有超线程的 CPU 上怎么样?

0 投票
3 回答
1905 浏览

multicore - 多线程(超线程)v/s 多核处理器

我正在我的大学学习并行计算课程,显然我们需要了解程序员级别的架构。谁能说出开发多核处理器的动机是什么?为什么多线程处理器不够用?为什么我们需要将管道分布在多个核心上,而不是将它们放在一个大核心上?

0 投票
1 回答
132 浏览

linux-kernel - 找出 Linux 内核 2.6.32 后跟的默认 pthread 关联策略

我试图找出在 HT 系统中创建 pthread 时,Scientific Linux Kernel 2.6.32 遵循的默认关联策略是什么。有没有办法知道?在 pthreads 创建中没有调用亲和力,所以我猜亲和力留给操作系统。

0 投票
1 回答
514 浏览

c - 特定线程数的 OpenMP 急剧减速

我运行了一个 OpenMP 程序来执行 Jacobi 方法,它运行得非常好,2 个线程的性能略高于 2x 1 个线程,4 个线程的性能比 1 个线程快 2 倍。我觉得一切都很完美......直到我达到了 20、22 和 24 个线程。我一直在分解它,直到我有了这个简单的程序

这是不同线程号的一些输出:

如果 20 之后的所有线程都继续,我会理解一个很大的减速,因为我认为这将是线程开销(尽管我觉得这有点极端)。但即使改变 n 也会使 20、22 和 24 的时间保持不变。将 maxiter 更改为 100 确实会将其缩小到大约 1.9 秒、2.2 秒……,这意味着线程创建本身会导致速度变慢,而不是内部迭代。

这与操作系统试图创建它没有的线程有关吗?如果它意味着什么,则omp_get_num_procs()返回 24,它在 Intel Xeon 处理器上(所以 24 包括超线程?)

谢谢您的帮助。

0 投票
4 回答
5956 浏览

c++ - 超线程性能比较

我写了一个项目,它使用了一些基本功能,openssl例如RAND_bytesdes_ecb_encrypt

我的电脑有 i7-2600(4 核和 8 个逻辑 CPU)。当我用 4 个线程运行我的项目时,它将花费 10 秒。当我用 8 个线程运行它时,它也需要 10 秒。

我的意思是,超线程并没有给我带来任何性能提升。在Linux下,实验结果是一样的。

我发现这里告诉我超线程在某些情况下并没有给我带来一些改进。另外,我发现here给了我一些直观的结果。

但是,我尝试编写一些简单的测试并找到一些简单的示例,这些示例表明超线程不会给我带来明显的改进。可悲的是,我没有找到它。

所以,我的问题是,是否有一些simple测试表明超线程不会给我带来任何性能提升。

0 投票
2 回答
218 浏览

multithreading - 每个内核的多个线程中存在的并行级别

所以我一直在研究一些实现每个内核多线程的技术(比如英特尔的超线程),我想知道这些技术的并行程度如何。是真正的并行还是更有效的并发?看起来他们仍然共享相同的执行单元和核心资源,基本上看起来只是虚拟化使用。所以我不确定真正的并行性是如何发生的。如果是这种情况,那么有什么好处呢?您可以通过有效的线程上下文切换来实现并发。