西西河

主题:【求助】:请教信息技术方面的大牛有关多线程的问题 -- newtime

共:💬51 🌺45 新:
全看树展主题 · 分页首页 上页
/ 4
下页 末页
家园 各有各的好处,不能一概而论。
家园 真正的专家出手了,我这只是皮毛而已,抛砖引玉

当年学的也比较肤浅,这两年的职业发展也没沿着这个专业走下去。

解释一下,其实循环展开的主要目的,也是为了找到更多无依赖关系的指令,填充到访存质量等需多周期完成指令的gap,另外就是分支预测,我还是认为优化的核心问题是出在访存上。

缓存预取指令要用好,先要有合理的数据结构和算法。

家园 客气了

你说的没错,访存的确是最费时间的指令,我记得连开方这种指令都足够快了,但是CPU永远比内存快太多。所以这个就是优化的重点。

优化的目标是增加并行度,instruction reordering,乱序执行,SSE这些东西,都是用软硬件的方法增加ILP。不过现在因为mobile computing热起来了,大家要让CPU凉下去,所以能耗成为优化里面的新因素,bit per watt要高,好多硬件的trick就不能用了,我记得intel atom里面就是放弃了大多数的乱序执行来节约能量,只在特定指令序列才进行乱序执行。

当年我做的一个simulation里面,如果用局部的乱序执行,可以以10%不到的性能损失,换回30%左右的能耗降低。

家园 有什么并行计算baby level的书推荐么?谢谢啊
家园 多线程多进程的优劣不可一概而论

基本上取决于系统的实现方式。一般来说,多线程都在一个地址空间,可以少用系统支持,限制少,比较方便,但容易出bug。

家园 多线程的初衷不就是为了省资源吗

为了省资源,所以要共享数据。要共享数据就要设定规则来同步数据的读写,一同步就效率低了。

其实还是进程简单点。

全看树展主题 · 分页首页 上页
/ 4
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河