» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

现在各种双核多核CPU铺天盖地,为什么当年SS双CPU就那么弱?

即便是今天,多核也不是那么好操纵的,即使操作系统不错,如果遇到CPU密集型的应用,如果使得CPU与总线的效率,无锁编程,许多地方也是很不好平衡的。


TOP

编译器跟多核的关系是有,但是不大吧?
关键是程序怎么调度,怎么分配资源,怎么避免互斥,当然还有如何让cache亲和度更高。



TOP

我知道OpenMP是在编译器实现的,所以我前面没把话说死。
问题是,OpenMP在实际应用中,在我的工作领域,我没发现实际应用到例子。

我所知道的OpenMP最简单的例子,是迭代里面,把操作分在不同的线程/进程中去并行完成,这里有一些地方比较麻烦,我随便想到几点:
1、几个操作之间存在临界区,编译器知道吗?
2、如果拆分的任务共同访问一片内存,cache亲和度好协调吗?
3、即便是今天一般人会理解和使用的好这种机制吗?

[ 本帖最后由 szxyz 于 2013-9-24 17:17 编辑 ]


TOP

早些年的X86的SMP也不见得很好,这个本身就是很难平衡好的。
现在的X86架构也存在一个核要通过另外一个核去存取内存数据,假如这块内存不在这个核直接存取范围内。

TOP

发新话题
     
官方公众号及微博