利用多核有三个层次

myan 2006-07-06 08:26:02
利用多核有三个层次。一是系统层次。一个核跑一个OS,每一个程序永远只能用一个核。这样大家都轻松。但是双核的时候我可以跑两个OS,难道4核的时候我需要跑4个OS?8核的时候...,我跑些什么OS呢?所以这个方向不可能很长久。

二是线程层次。就是说每一个新的线程自动利用空闲的core,这样的话应用程序的程序员也不用管,下层的操作系统就包办此事。只要照常写multi- threaded应用就好。我觉得这种模式可以坚持很长时间。因为现在大家一开机器就大概有几十个线程在跑,所以直到比如16核,甚至32核之前,使用这种方法就可以提高性能。问题仅仅在于,多线程程序并不好写,特别是不好调试。所以大家努力学习多线程开发吧。很多客户端程序,可能要求以这种思维重写。 Notepad和Calc的功能越来越强,还真没准要这么重写呢,你还别不信。

三是算法层次。就是说执行每一个具体的算法任务,都尽可能利用多核并行。比如说100个整数相加,在4核CPU上,可以分别让四个核处理25个数的加法,最后将4个结果加起来。这种方法几乎要求我们重写现有的大部分程序,无论是客户端还是服务端的应用。好在似乎只有少数应用需要这么干。而且有OpenMP等帮助我们。

总的来说,无论是第二层次还是第三层次,multicore带来的冲击势必是不可忽略的。
...全文
676 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenshuicao 2006-07-26
  • 打赏
  • 举报
回复
一般程序员用到第二层次就可以,如果是做操作系统或做语言开发工具或编译就应该用到第三层次,当然这不是绝对的
skys712 2006-07-25
  • 打赏
  • 举报
回复
算法的多核实现必须需要数据之间无相关性.但只有少部分算法内容能用到多核中
jianghuixp 2006-07-22
  • 打赏
  • 举报
回复
强烈的要求软件开发的平台无关性,让平台相关的部分都让编译器或者虚拟机去完成吧。
swxlion 2006-07-12
  • 打赏
  • 举报
回复
如果需要极大的提高运行时效率的话,硬件特性不得不考虑到软件的算法中去。
学习矢量化编程中……
JasonHeung 2006-07-11
  • 打赏
  • 举报
回复
不要把硬件特性影响到软件算法。

567

社区成员

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

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