Feb 20th, 2007, 23:59 | 只看该作者 #121 |
资深网络评论员
注册日期: Jul 2004
帖子: 1,223
积分:2
精华:2
|
就根据你说的这句“多处理器系统需要分布式软件操作系统支持”就知道你不知道什么是“分布式软件操作系统”。有兴趣的话请看Andrew S. Tanenbaum的Distributed Systems: Principles and Paradigms。 抄这些东西的第一、二句就很能说明问题了:Software benefits from multicore architectures where code can be executed in parallel. Under most common operating systems this requires code to execute in separate threads. 没读仔细?! 我这句也是出自INTEL文献: Any application that will run on a single-core Intel processor will run on an Intel dual-core processor. However, in order for an application to take advantage of the dual-core capabilities, the application should be optimized for multithreading. 你既然“又把intel的资料文献读了读”,能不能就COPY AND PASTE出来,让吾等开开眼? |
|
Feb 21st, 2007, 10:36 | 只看该作者 #124 | |
Senior Member
注册日期: Nov 2005
帖子: 1,995
声望: 717499
|
引用:
第一句说的是,并行执行是在thread level,所以软件设计要partition成一个个thread。但是真正的thread并行执行并不需要软件干预,是硬件执行的,也就是说你软件看不到也管不到多核的执行。这个和多processor系统是不一样的,那个系统早先的“并行处理“概念是对process而言的,也就是partition只到process一级,因为process有自己的独立地址空间,并行处理软件实现起来很容易。 第二句基本上就是把第一句话包装了一下重说。 我发现你的理解力真是有点问题:俺以前一再强调的是multi-processor和multi-core系统的区别,不能混为一谈,把multi-processor系统的概念用到multi-core系统上。你一再说软件要multi-thread,这根本不是我要说的东西。 实际上, intel的并行处理结构有三级: multi-processor 最高 multi-core 其次 hyper-thread 最低 这三级是不同的,概念不要混用,我就不在这里做科普工作了。 |
|
|
Feb 21st, 2007, 11:00 | 只看该作者 #125 |
Senior Member
注册日期: Nov 2005
帖子: 1,995
声望: 717499
|
我根本就不想谈软件要不要multi-thread的问题,因为这个东西10多年前单核上已经有了,是为了解决execution block的问题,因为io的读取一般速度不快,所以慢速的和快速的要分开执行。也就是说,在单核系统上,如果你有io或速度要求不一样的功能的话,最好也要multi-thread。 所以单核系统上设计的好软件体系,拿到多核上一样用的好,不需要改变 - 这就是俺最初的说法。 别以为thread是越多越好,context switching是很费资源的,上边那位多大写过os的老兄已经说过。你就多了一个核,要把thread一下写到成百上千个?完全是浪费,context switching就把你拖垮了。 对双核系统,一个process设计成2-4个thread,足够了,再多就是反而让速度变慢,其实在单核系统上好的软件已经是这样的搞法了。总之,干过实际事的,和光看书的,差别不是一点两点。 |
|
Feb 22nd, 2007, 21:18 | 只看该作者 #137 |
软件基本靠载 硬件基本靠拆
注册日期: Jul 2004
住址: GTA
帖子: 13,253
积分:52
精华:18
声望: 3174223
|
这个vmware fusion能玩3D, 牛吧 :http://www.youtube.com/watch?v=xF_CoXsXtk4
|
|