确切的答案对超线程和并行计算工具箱(PCT) ?

121(30天)
假定计算适合parfor循环,计算,与记忆,绑定。
鉴于我的预算,我可以买一个4/8(4个物理核心/ 8个虚拟核心- hypertheading) i7 CPU或较慢的6/12至强或直8 AMD(测试表明远不如各non-matlab i7基准)。如果超线程,在这种背景下,是一样的物理核心i7似乎被路要走。
我读过,我不能算出实际的故事是关于PCT在多大程度上使用,不信,超线程。如果谁有一个答案,即确定哪些alg将路线图和不利益,我想看到它。
坦率地说,我喜欢它如果mathworks进行综合指标在各种cpu和各种PCT parallelizatons alg和适当的演示。
谢谢

接受的答案

Edric埃利斯
Edric埃利斯 2013年6月25日
编辑:MathWorks支万博1manbetx持团队 2022年9月1日
默认情况下,MATLAB和并行计算工具箱只考虑真正的核心,不是hyperthreaded内核。
  • 您可以覆盖在MATLAB使用这个选择maxNumCompThreads函数。
  • 你可以覆盖这个选择并行计算工具箱通过修改本地集群配置文件。从MATLAB桌面平行菜单中,选择创建和管理集群(如果您正在使用MATLAB R2018a或更早版本,选择管理集群配置文件)。这将打开集群配置文件管理器窗口。选择本地集群配置文件,单击编辑按钮,改变NumWorkers属性的值。
超线程是否提供任何好处取决于你的算法的本质。默认是不考虑超线程的原因是,它通常不被发现是有益的对于大多数数字密集型工作负载。
目前没有一个无所不包的基准,但有一系列的并行计算工具箱功能的基准 在这里
1评论
迈克尔·佩尔蒂埃
迈克尔·佩尔蒂埃 2018年3月6日
一个重要的考虑MATLAB和其他类似的应用程序只有一个浮点单元每一对核。从MATLAB呼吸浮点,其政策只考虑物理内核默认情况下通常是正确的。说,随着现代超线程和topology-aware操作系统,你不会看到太多,如果有的话,区别如果在BIOS禁用它。

登录置评。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2013年6月25日
超线程导致两个进程共享相同的cpu,快两个进程之间的上下文切换。没有额外的可用计算资源在这种模式下,如果两个过程想要访问CPU那么两个争访问,可能长期平均每个完成不到1/2的工作,他们将得到与专用的CPU。
在何种情况下这种共享是一个增益,在何种情况下一个CPU否则会闲置,因为它正在等待资源,第二个过程所需的所有资源。“等待一个资源”往往会等待I / O完成。它 可能 包括等待一个中断发生(我不知道如果它实现这样做)。在系统之间共享内存池的CPU,或者更好的是集成的集群共享内存,等待资源可能包括等待内存可用不同的CPU。
样本情况下,会有一个好处是如果一个线程是一个中断处理程序(例如,数据收集或GBIP输入或输出),另一个线程计算。当中断就准备好,可能会有一个快速切换到第二个进程,服务简单,快速切换回计算。是的,你可能会做得更好,如果你把一个完整的每个线程的CPU,但成本会更高。成本可以累积了不少对一个完整的上下文切换的两个分裂由一个CPU负载。发明一个图,你可以共享一个核心96%计算,3%的I / O, 1%开关浪费,而没有超线程转换成本可以(说)14%,导致83%计算,3%的I / O, 14%的开关浪费。
现在,如果你不这样做在所有的工作核心,如果你的大部分核心计算绑定而不是等待I / O或者内存访问,有超线程的核心不是有用的,进展缓慢;如果我理解正确的话,与一个不恰当的工作组合将有超线程打开减速计算。
很难创建的指导你提到,好处取决于正在发生什么。一般来说,文件操作,imread()、视频压缩和解码、视频编码、串行数据收集可以受益,但他们可能没有足够的好处是值得的如果你有沉重的计算。如果你 想做视频编码和解码然后一个i3比i7处理器可以是一个更好的选择,随着i3能力建立在(h .想到什么。)我忘了是否i5编码/解码:我的记忆是说它是可用的。
1评论
约瑟夫Freivald
约瑟夫Freivald 2021年3月25日
这并不完全正确。你描述的是在单个核心没有多线程支持多线程处理器与上下文切换的操作系统。万博1manbetxHyperthreaded处理器架构允许线程共享处理器调度资源,如蛇,乘数,浮点,等等,没有上下文切换。
看到这个视频从GA科技的cs - 6290课程处理器架构良好的超线程可视化表示和解释: https://bit.ly/3rljsru

登录置评。

类别

找到更多的在并行计算工具箱帮助中心文件交换

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!