我正在运行我的 Fortran 95 数字代码,在双核多线程 CPU Intel CORE i3 中,它的结构大多数时候很容易并行化,而不仅仅是在一些关键的 DO 语句之前添加相应的 OpenMP 指令。Ubuntu“看到”四个 CPU(显然因为有 2 个内核,每个内核都模拟两个内核),我已经读到“多线程”功能意味着,在某些条件下,每个 CPU 的行为可能接近两个独立的CPU 本身,但不是一般的。我在某处听说,在某些情况下,四个并行线程在这种机器上的性能可能比两个差。
一般而言,我的机器几乎可以作为真正的 4 核工作的编码或任务类型是什么,在哪些情况下模拟它可能不是一个好主意(例如,将 OMP_NUM_THREADS 变量设置为 2 而不是 4 )?
编辑:换句话说,根据另一个帖子中的这个不错的答案,我的机器与所涉及的数值任务相关的最佳硬件线程数是多少,前提是,虽然它是双核 CPU,但它有那种“多线程”的能力吗?