从多核到众核:把困难推给软件
2014-03-05 13:36
66 查看
参考网址:http://blog.sina.com.cn/s/blog_4843d0550100an91.html
多核处理器日益普及,现在的Intel商用处理器,很多都是具有双核、四核的了。许多权威都预测,未来的处理器,很可能是一种众核的处理器,处理器上集成数十个、数百个甚至更多的处理器核心。但是这样一种发展趋势真的能成为广泛应用的主流么?
在“众核发展趋势浅析”http://www.ict.ac.cn/diffusive/channel/detail5647.asp 中,分析了众核处理器的发展趋势。
固然,通过将大量处理器核集成到一个芯片上,能够解决现今处理器设计实现中的许多难题,让摩尔定律持续发展,而且也能够做到TFLOPS级别的处理器。但是,这么多硬件集成到一个芯片内部,如何利用它们、发挥它们的效能,将是软件面临的严峻挑战。
最简单的思想是充分挖掘软件的并行性,让尽可能多的硬件同时“动”起来。但是这个思想是一个理想而已。从向量机到VLIW,每一种处理器体系结构的发展,无不是想利用大量的硬件资源加速软件的执行。但从目前看来,这些问题都没有很好的解决。因此,向量机只适合特定的科学计算任务,而VLIW面临硬件利用率较低的尴尬。同样的问题还会出现在多核、众核处理器上。解决这个问题的一个方法就是多线程,但是如何将传统应用程序多线程化,能“多”到多少线程,仍然是一个棘手的问题。因为传统的程序员都是喜欢串行书写代码的,改变人的思想要比改变处理器的设计难得多,而且还有这么多遗留的应用程序。
另外一个方法就是虚拟化,如果有一天,一种完美的虚拟化计算环境出现了,可以在一个众核甚至异构集群的环境中,很好的虚拟成一个单一的处理器,那真是太好了。程序员可以轻松的书写串行代码,遗留的程序可以在强大的硬件支持、完美的虚拟化环境里快速执行.....但是如何虚拟化?效率如何?还是软件问题。
现在众核处理器出现的原型最多的是在图形图像处理器上,应为许多图形图像处理可以非常好的进行大规模并行计算,这对图形图像处理应用是非常有利的。
另一方面,从硬件的发展角度来看,从CISC到RISC再到VLIW再到多核、众核,硬件的总体发展趋势是简化硬件的控制设计,将更多的硅片贡献给计算引擎。这可以说是硬件设计师逐渐变得懒惰,更依赖于软件设计师,特别是编译、操作系统等系统软件。这不是一个好的趋势。软硬件设计应当更加紧密的结合在一起,合理分工,一同完成计算任务。现在的VLSI技术,可以在一个芯片上集成亿万级别的晶体管,其实硬件可以做更多的事情,而不仅仅是将更多的计算资源“暴露”给编译器。
因此,个人觉得未来的处理器应该从“通用化”向“专用化”甚至“可重构”的方向发展。很可能是一个强大的处理器核与许多“专用”或者“可重构”的处理器一同构成芯片。面向特定应用或者面向特定领域进行加速计算。
另外一些值得关注的硬件体系结构方向,例如Processor In Memory,HTMT等。这些体系结构、芯片发展方向,为解决摩尔定律的问题提示了新的方向。
多核处理器日益普及,现在的Intel商用处理器,很多都是具有双核、四核的了。许多权威都预测,未来的处理器,很可能是一种众核的处理器,处理器上集成数十个、数百个甚至更多的处理器核心。但是这样一种发展趋势真的能成为广泛应用的主流么?
在“众核发展趋势浅析”http://www.ict.ac.cn/diffusive/channel/detail5647.asp 中,分析了众核处理器的发展趋势。
固然,通过将大量处理器核集成到一个芯片上,能够解决现今处理器设计实现中的许多难题,让摩尔定律持续发展,而且也能够做到TFLOPS级别的处理器。但是,这么多硬件集成到一个芯片内部,如何利用它们、发挥它们的效能,将是软件面临的严峻挑战。
最简单的思想是充分挖掘软件的并行性,让尽可能多的硬件同时“动”起来。但是这个思想是一个理想而已。从向量机到VLIW,每一种处理器体系结构的发展,无不是想利用大量的硬件资源加速软件的执行。但从目前看来,这些问题都没有很好的解决。因此,向量机只适合特定的科学计算任务,而VLIW面临硬件利用率较低的尴尬。同样的问题还会出现在多核、众核处理器上。解决这个问题的一个方法就是多线程,但是如何将传统应用程序多线程化,能“多”到多少线程,仍然是一个棘手的问题。因为传统的程序员都是喜欢串行书写代码的,改变人的思想要比改变处理器的设计难得多,而且还有这么多遗留的应用程序。
另外一个方法就是虚拟化,如果有一天,一种完美的虚拟化计算环境出现了,可以在一个众核甚至异构集群的环境中,很好的虚拟成一个单一的处理器,那真是太好了。程序员可以轻松的书写串行代码,遗留的程序可以在强大的硬件支持、完美的虚拟化环境里快速执行.....但是如何虚拟化?效率如何?还是软件问题。
现在众核处理器出现的原型最多的是在图形图像处理器上,应为许多图形图像处理可以非常好的进行大规模并行计算,这对图形图像处理应用是非常有利的。
另一方面,从硬件的发展角度来看,从CISC到RISC再到VLIW再到多核、众核,硬件的总体发展趋势是简化硬件的控制设计,将更多的硅片贡献给计算引擎。这可以说是硬件设计师逐渐变得懒惰,更依赖于软件设计师,特别是编译、操作系统等系统软件。这不是一个好的趋势。软硬件设计应当更加紧密的结合在一起,合理分工,一同完成计算任务。现在的VLSI技术,可以在一个芯片上集成亿万级别的晶体管,其实硬件可以做更多的事情,而不仅仅是将更多的计算资源“暴露”给编译器。
因此,个人觉得未来的处理器应该从“通用化”向“专用化”甚至“可重构”的方向发展。很可能是一个强大的处理器核与许多“专用”或者“可重构”的处理器一同构成芯片。面向特定应用或者面向特定领域进行加速计算。
另外一些值得关注的硬件体系结构方向,例如Processor In Memory,HTMT等。这些体系结构、芯片发展方向,为解决摩尔定律的问题提示了新的方向。
相关文章推荐
- 软件产品设计困难
- 软件项目的困难:海量信息,定义不清
- 我待的软件部门要从公司独立出去成立一个新的软件公司,主要是为了享受软件公司的低税收的优惠政策,这对我来说就意味着更多的机会和困难,我是能抓住机会还是被困难打倒完全取决于自己以后的努力。
- 《程序员》4期上市 并发:软件的多核之痒
- 个人阅读作业2:结合《No Silver Bullet》谈谈我在软件开发过程的遇到的困难与体会
- 采用开源软件搭建WebGIS系统(8)遇到困难,决定试一试WFS
- Intel软件大会——提高多核cpu windows应用程序性能,高性能计算优化(待改)
- 软件企业自身信息化的困难
- 软件企业自身信息化的困难
- 研发经理在构建软件团队时通常遇到的困难(招聘开发人员)
- 软件企业自身信息化的困难
- 软件开发困难的根本原因
- 大型软件的开发困难
- 软件开发中的十大困难
- 做软件的困难——非技术困惑
- 关于大中型国企中软件开发项目的管理困难和解决办法
- 摄影软件“留拍”开发现状与过程遇到的困难
- 我很高兴找了一张可以说明:为什么软件开发那么困难的图
- 软件开发中的十大困难
- 为什么软件项目的需求分析工作比较困难