2006.06.27
Geoffrey Lowney:面向多核处理器的软件研发
Geoff Lowney:谢谢大家。我的演讲题目是“多核处理器的软件”。我们已经有了基于双核的产品,以后会相继推出四核的产品。乱序执行推出以来最精彩的是性能的飞跃,从奔腾到奔腾2、到奔腾3、到奔腾4、到奔腾D,最后到现在的Conroe。首先是,未来架构为更多内核,我们有待解决的问题就是内核的数量、大小、所有内核类型;二是,片上互联的拓扑、带宽;三是,高速缓存层次结构的层次的数量、共享、包含;四是,可扩展性。
下面我们说一下线程的重要性,因为它可以直接应用到现有的架构,优势显而易见,操作系统已为多处理准备就绪、后台任务受益于更多的计算资源。关于并行化,它可以进一步释放无限潜力,使本地线程、线程库、编译器生成的线程。最主要是我们用软件解决双核处理器的问题,从而进行双核处理器的调整。
就计算问题我们可以拿质数生成为例,首先我们需要知道质数生成的算法核心,这是一系列复杂的计算过程,经过一步一步的推导最后推出结果。(图)
另外,我们再举一个例子,就是关于OpenMP指令,也就是用双核的软件去处理计算能力。
实际上线程可以带来卓越性能,PIXAR公司的电脑设计动画片都是使用这种技术,以前他们设计的电脑动画片要花大量的时间把照片变成一个会动的图片,现在通过这个处理器,可以使动画制作人员马上看到动画效果。从单核到双核可以使处理器提高60%的效率,双核的功能和效果使电影的制作人员比较容易看出更好的动画效果,同时还可以提高他们的工作效率。当个人计算最终成为个人工具的时候,万亿时代可以以一种更快的速度进行运算,比如文本挖掘、医疗的改进、机器视觉、逼真的3D娱乐、虚拟现实、互动学习、科学模拟等都可以使用。
如何进行工作负载分析呢?发现使用模式的过程是通过并行处理、经过测试,最后进行架构增强和性能指标测评。下面我们讲一下多核如何改变并行编程。基本编程式没有任何变化、同步和通信成本显著降低,使其在对更多程序进行并行化方面更加使用。目前在可共享高速缓存、内在接口、优化方式的方面可能有所不同。
下面我们具体讲一下共享高速缓存。CMP新范例是内存中的术语共享。头10年并行编程的目标是减少共享,通过减少共享、减少通信、从而提高速度。而CMP目标是增加共享,更多共享在片上的高速缓存中整合更多工作集,降低导致片下通讯的高速缓存未命中率。共享高速缓存的项目目标是为了使实现良好的数据共享变得容易。从体系结构、运行时和算法方面技术的组合运用、得出初步结果;然后通过自动增加数据共享的线程条调度器(PDF),PDF是为了保证整合的工作集、顺序工作集。而以往的方法是整合工作集、顺序工作集。在排序和DB合并应用上速度比以往的方法加快1.5—2倍。英特尔正在开发多核处理器,未来将采用更多内核,线程化对于释放多核潜力而言非常重要,英特尔可提供线程程序开发工具。我们将开发全新的并行应用,以上是我们位于北京研究实验室的工作重点。
总之,关于多核编程有待解决的研究问题,就是如何有效利用共享高速缓存和快速同步。相信经过我们的不断努力,会变得更加的完善。谢谢大家。