多核处理器将会改变过去编程语言么

best_dba 2008-03-20 05:14:43
多核处理器将会改变过去编程语言么
...全文
2390 61 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
HeShe 2010-01-22
  • 打赏
  • 举报
回复
程序是对问题的求解,编程是对求解过程的描述,是大脑思维的输出,这种思维跟语言无关。
语言就是这种思维的载体,也是人的思维跟计算机结合的桥梁。
当多核成为必然时,人们解决问题的思维必然要改变,语言这座桥梁,一端通过编译器的改进适应硬件结构的发展,另一端通过语法特性的发展来衔接人们思维方式的变化。
如果没有语法的支持,编译器是无法自动理解人的思维的。现在的多核,基本上还处于几个核的级别,所以通过编译器的优化和库的改进可以显然的获得多核带来的益处,倘若多核真的能发展到成百上千的数量,届时引发的可能是一场全面的技术革命,从硬件体系结构到操作系统,到开发语言,都有可能变化。

///////////////////////////////////////////////////////////////////
有时我就在想,现在针对多核的优化,基本上还是利用操作系统提供多线程的支持,每个核执行一个线程,线程内部指令依旧是串行的,倘若要同时发挥一万个核的计算能力,那么就要提供一万线程同时执行,无论在算法设计上还是程序执行调度上,花在线程上的代价似乎太大了。或许有一天,我们能通过并行的语法来描述问题,编译器能够实现指令层面的并行,操作系统能支持并行的指直接在不同核上运行,这时我们可能看不到线程,但程序确实在并行。


loadbalancing 2009-06-13
  • 打赏
  • 举报
回复
语言不会,但并行编程模型以及基于现有语言的库等却会出现
Adchilles 2009-06-12
  • 打赏
  • 举报
回复
支持你的看法! 顶!
嗷嗷叫的老马 2008-03-25
  • 打赏
  • 举报
回复
基因突变
//
顶这句
intel_www 2008-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 slio2008 的回复:]
我在单核上做的软件 特别是那些多进程的 一上多核电脑就运行不起来 老报错
[/Quote]

肯定是线程之间的数据共享或同步设计有问题,单和尚上问题暴露不出来,因为同一时刻只有一个进程在占用CPU,到多和尚两个进程同时跑问题就冒出来了。
intel_www 2008-03-25
  • 打赏
  • 举报
回复
[Quote=引用 53 楼 dychenyi 的回复:]
我觉得应该还是主要靠os,把任务平均分配到多个核上 。高级语言要 考虑cpu多核是不是太复杂了 。 现在单核,双核,3核,4核都有了 , 程序设计起来不是要分好几种?
[/Quote]

问题是OS调度的单位是进程或线程。如果你的程序是串行的,再怎么调度也只能占用一个核。
hchenxi 2008-03-24
  • 打赏
  • 举报
回复
应该不会,现在不就有多核的处理器了吗?
dychenyi 2008-03-24
  • 打赏
  • 举报
回复
我觉得应该还是主要靠os,把任务平均分配到多个核上 。高级语言要 考虑cpu多核是不是太复杂了 。 现在单核,双核,3核,4核都有了 , 程序设计起来不是要分好几种?
rfq 2008-03-24
  • 打赏
  • 举报
回复
肯定!!!
enll_2002 2008-03-24
  • 打赏
  • 举报
回复
比较喜欢影响而不改变之说
enll_2002 2008-03-24
  • 打赏
  • 举报
回复
比较喜欢影响而不改变之说
Bevin_chen 2008-03-24
  • 打赏
  • 举报
回复
关注。
wuxiaoqqqq 2008-03-24
  • 打赏
  • 举报
回复
影响肯定有,低层的东西会变,我们的思想是不是也要变。
babe0556 2008-03-24
  • 打赏
  • 举报
回复
不会改变。
zenny_chen 2008-03-23
  • 打赏
  • 举报
回复
个人认为会对过去的编程语言进行一定的扩展。像C/C++和Fortran都受到OpenMP支持了。当然像Java有专门的库来支持多核处理器的并行执行。
所以我认为不会对以前的编程语言做本质上的修改,但是会针对多核特性进行扩充。
aizhuhui 2008-03-23
  • 打赏
  • 举报
回复
喜欢楼上那句话
BlueDog 2008-03-23
  • 打赏
  • 举报
回复
对一些硬件相关的语言肯定会有影响,如汇编 C C++
但对于C# JAVA 之类运行在虚拟机之上的语言没有影响
当然对程序员编程肯定会有影响,因为你更多地需要考虑并发

实际上多处理器在现在还只是一个开始,我觉得在“云计算”时代
你可能甚至都不知道处理器在什么地方,所以我觉得动态语言有更大的存活优势,
因为它们的适应性更好。
擒兽 2008-03-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 slio2008 的回复:]
我在单核上做的软件 特别是那些多进程的 一上多核电脑就运行不起来 老报错
[/Quote]

呵呵,你做个最基本的多线程看看多核下的运行效果。 在多核下多线程要控制一下,会有乱冒泡现象
擒兽 2008-03-23
  • 打赏
  • 举报
回复
高级语言应该不会改变,低级语言难说。

多线程,在主线程内控制好,估计问题不大。
dsdsdds 2008-03-23
  • 打赏
  • 举报
回复
我觉得多核的出现将影响过去的编程语言,但是不会改变。

加载更多回复(40)

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧