最新ubuntu/linux/开源新闻或者其它IT相关资讯
-
zzsczz
- 帖子: 67
- 注册时间: 2006-07-18 16:15
#16
帖子
由 zzsczz » 2008-04-05 22:24
joo.tsao 写了:以上这么多人的回复都没人理解并行编程的难度以及调试地狱,哪怕是一点点,可以知道这是多么大的灾难!
关于并行编程,应用级别的开发 操作系统或者虚拟己经提供了基础设施,如线程、进程,java的java.util.concurrent等,按照手册编写即可,最终操作系统会把并行处理的任务分配到某个核上。编码是实现,体力活,调试只是辅助手段,用log4j之类的工具;关键是设计的结构要可以有效利用多核。
多核方面系统级别的开发,国内没有应用的需求牵引和实践的市场。编译器级别的开发么,中文没有文化优势,而且硬件没有自己的平台,做来做去还不是替老外打工,当然ms或者intel的研究院就另当别论。
利用多核还有一些方式,如虚拟机运行多个os,每个os运行一个应用,这是加速现有应用的最直接的方式,而且不用重新编译(如果这个应用适应这种结构)
操作系统很早就能管理多个cpu了,以前是用在工作站或者服务器上。现在cpu的频率上不去了,只好多核骗钱,结果就把以前超级服务器的应用搬到pc上,从这个方面看没什么稀奇的
-
salal
- 帖子: 18
- 注册时间: 2008-04-23 1:53
- 来自: 北京
#17
帖子
由 salal » 2008-04-23 3:39
没有AMD,我们就得天天被Intel吸血了
Phenom 9750\2G DDR800 X4\640G SATAII X4\2900XT 1G DDR4\2008SERVER+UBUNTU
-
akvact
- 帖子: 60
- 注册时间: 2007-10-22 11:50
- 来自: 影子世界
#18
帖子
由 akvact » 2008-04-23 18:15
挑战VS机遇,得要领者会是下一个M$?
-
waynehuge
- 帖子: 7
- 注册时间: 2006-08-09 0:53
- 来自: Wuhan Hubei
#19
帖子
由 waynehuge » 2008-04-24 15:15
真正的多线程时代来了
-------------------------------
way
-
kevin.c
- 帖子: 145
- 注册时间: 2008-04-01 12:28
#20
帖子
由 kevin.c » 2008-04-24 16:50
多核任务分工及调度应该是由操作系统来进行 而不应该将这些细节暴露给应用层
-
pengpeng1987
- 帖子: 73
- 注册时间: 2008-05-06 11:02
- 来自: 野猪帝国
#22
帖子
由 pengpeng1987 » 2008-05-09 13:42
貌似Intel更重视超线程,AMD更重视多核共同为单线程加速,我个人更倾向于AMD,毕竟现在能够让每一个核心都100%占有率的多线程应用还是很少的,我还是更希望我现在手头上的工作完成得更快而不是苦苦等待
-
wallstreeusa
- 帖子: 12
- 注册时间: 2008-04-26 10:15
#23
帖子
由 wallstreeusa » 2008-05-09 20:21
zzsczz 写了:joo.tsao 写了:以上这么多人的回复都没人理解并行编程的难度以及调试地狱,哪怕是一点点,可以知道这是多么大的灾难!
关于并行编程,应用级别的开发 操作系统或者虚拟己经提供了基础设施,如线程、进程,java的java.util.concurrent等,按照手册编写即可,最终操作系统会把并行处理的任务分配到某个核上。编码是实现,体力活,调试只是辅助手段,用log4j之类的工具;关键是设计的结构要可以有效利用多核。
多核方面系统级别的开发,国内没有应用的需求牵引和实践的市场。编译器级别的开发么,中文没有文化优势,而且硬件没有自己的平台,做来做去还不是替老外打工,当然ms或者intel的研究院就另当别论。
利用多核还有一些方式,如虚拟机运行多个os,每个os运行一个应用,这是加速现有应用的最直接的方式,而且不用重新编译(如果这个应用适应这种结构)
操作系统很早就能管理多个cpu了,以前是用在工作站或者服务器上。现在cpu的频率上不去了,只好多核骗钱,结果就把以前超级服务器的应用搬到pc上,从这个方面看没什么稀奇的
操作系统在管理多个CPU上的确是已经实现,但这跟并行程序的编写是两码事。操作系统通过调度器,可以把进程分派给每一个CPU,然后它就没事了。但编写完成某个任务的并行程序并不是这么回事,多个程序完成一个任务,就要涉及到任务的分割,但实际上现有的程序设计理论是单入口的,完成这个任务的程序无论如何复杂,他的运行线索只有一条,要把它分开为多条线索并交由各个程序执行,除非这个这个任务的确很容易划分为各个子任务,否则,并行就很难发挥作用了,这就是为什么并行都是用在大型计算上。
-
paul
- 帖子: 510
- 注册时间: 2005-09-01 20:48
#24
帖子
由 paul » 2008-05-10 22:14
同楼上,很多时候单个任务要想分成多个并行处理的任务,意味着重新设计算法,一个很简单的问题并行之后可能变得异常复杂;更不用提调试的时候多个线程同时运行带来的难度了。
-
寂寞杀手
- 帖子: 335
- 注册时间: 2006-09-27 19:59
- 来自: 银川,宁夏
#25
帖子
由 寂寞杀手 » 2008-05-11 0:37
paul 写了:同楼上,很多时候单个任务要想分成多个并行处理的任务,意味着重新设计算法,一个很简单的问题并行之后可能变得异常复杂;更不用提调试的时候多个线程同时运行带来的难度了。
那就不要在简单的问题上浪费精力去搞什么并行算法——哪个核闲着就让哪个核去干,反正是简单的问题……这样以来,N个简单的问题就构成了复杂的问题,还是一样的嘛
我是一阵风,吹过飘零的天空;沾染了一身的灰尘,却抹不去飘浮的云……
-
sarevok
- 帖子: 7
- 注册时间: 2007-04-24 22:15
#26
帖子
由 sarevok » 2008-05-12 0:20
寂寞杀手 写了:paul 写了:同楼上,很多时候单个任务要想分成多个并行处理的任务,意味着重新设计算法,一个很简单的问题并行之后可能变得异常复杂;更不用提调试的时候多个线程同时运行带来的难度了。
那就不要在简单的问题上浪费精力去搞什么并行算法——哪个核闲着就让哪个核去干,反正是简单的问题……这样以来,N个简单的问题就构成了复杂的问题,还是一样的嘛
试试就知道没有那么容易的,最主要是编程模型完全不同。
实际中任务不是想分割就可以分割的,不说复杂的,分割后不同的任务间要同步或者是交换数据,都会带来性能损失,搞不好会造成实际性能的下降;还有并行带来的对片内通信(尤其是内存访问)的的压力可是会成倍地增长的。
我试过在PS3的CELL上做个生成分形图案的程序,优化起来十分麻烦,虽然是用C/C++开发,但感觉上和写汇编差不多,不优化的话,性能又很差,完全发挥不出什么优势。
另外一个同构3核平台上做过JPEG解码器,也是感觉十分头痛,任务划分不好做,想很好地发挥多核性能优势还得费一番功夫
-
paul
- 帖子: 510
- 注册时间: 2005-09-01 20:48
#27
帖子
由 paul » 2008-05-12 9:45
很巧,我去年也写过PS3 Cell的程序,我的感觉是:Cell是硬件设计上的杰作,同时也是程序员的噩梦,太多的底层操作了!同样的矩阵运算,单线程上百行的C,要想用Cell的多核,很容易就上千行了。
-
ericzb
- 帖子: 441
- 注册时间: 2006-11-16 21:34
- 来自: Bridge View
-
联系:
#28
帖子
由 ericzb » 2008-05-19 4:51
家用机上要实现并行计算?
-
qazsss
- 帖子: 14
- 注册时间: 2008-05-26 0:47
#29
帖子
由 qazsss » 2008-05-28 0:09
lxf1597 写了:zzsczz 写了:原因是intel的扣肉 比 amd的双核速龙64 要变态一些
实际上 双核速龙64 运行 2个super pi要比扣肉运行2个super pi花的时间少
但是只运行一个super pi,扣肉 比 双核速龙64花的时间少
双核速龙64运行一个superpi和2个super pi的时间相等
结构上不同的缘故么?原生多核和物理粘贴多核的区别?
我个人始终觉得AMD的未来发展更有前途些
其实 在讨论谁更有发展前途的时候 不要忽略
很多企业行为是根据市场来的
这就决定了
1 采用什么技术,什么时候采用,什么时候更新,由市场需要决定
2 利润同样也起到决定性的作用,这样的例子举不胜举
因此 现在就说谁更有前途 为时尚早
-
amwsmgk
- 帖子: 1
- 注册时间: 2008-05-28 11:06
#30
帖子
由 amwsmgk » 2008-05-28 11:09
可以在操作系统将硬件多核变成单核再根据程序的需要变成N核,并且N个核中每个核占用那个超级单核的分量各不一样.