2012年3月19日上午,英特尔在位于北京北辰洲际酒店召开了2012年英特尔软件大会媒体沟通会。英特尔首席软件讲师兼软件开发产品总监仁达敬出席英特尔软件大会媒体沟通会,并对英特尔在MIC架构下的软件开发技术和并行编程做出详细介绍。
仁达敬谈到:英特尔目前一颗CPU能支持10个线程进行工作, 现在我们正在研发新的芯片,我们将提到众核架构,能在一颗芯片里面支持200多个线程同时工作,为广大的应用开发人员带来新的机会和挑战,更好地去做并行编程。我们可以看到,现在大多数的设备,无论是超级本还是一些智能手机,我们都可以看到它们现在已经实现了两核,甚至一些设备上已经实现了四核的架构。
接下来我们会推出一个新款的架构,叫做Knights Corner,这个还没有正式上市,但是我们已经做了很多的演示,包括在上面跑一些应用。这个新的架构对于很多开发人员来说,我想面临的问题就是:您的应用已经为英特尔这个新的架构准备好了没有。我们可以看到,这个设备新的架构是可以同时处理200多个线程。所以对于并行编程来说,这是一个新的挑战和机会。这仅仅是针对一些大型应用,如果只是开发了基于双核或者四核的架构的话,其实这个架构上200多个线程同时跑的应用也要做更深一步的考虑和准备。
我们可以看一下,并行就是同时做多件事情,这个以前只有人可以做到,比如说同时可以做多件事情,现在实际上随着新的芯片技术的发展,机器也可以做到这一点。对于很多事情的处理来说就变得非常方便和容易。针对绝大部分的软件开发人员来说,他们需要相应的工具,包括培训等等措施来帮助他们实现并行。目前大多数处理器都是基于两核、四核或者是八核的架构,但是众核MIC架构来说是采用了比较新的架构,可以支持50个核。所以这种架构对于绝大多数的数据中心和高性能中心是非常重要的。
我们可以从这张PPT上展示的世界上最大的500家超级计算机的图当中可以看到,英特尔的架构仍然是最多的。这个图最后的更新是从去年11月份 (2011 年11月份)。我们可以从11月份的数据里看到,93%中国新建的超级计算中心都是基于英特尔架构。对于英特尔来说,中国仍然是非常重要的市场,因为中国市场的业务量仍然是我们增长最快的。另外我们可以看一下,和我们的合作伙伴来讲,对于英特尔在中国的业务也是非常重要,并且我们也有很多很优秀的员工,在英特尔中国开发了一些很好的新技术。
下面我们可以谈一下新旧两种英特尔架构的发展历史。左边是在15年前制造的机器,当时是世界上首台达到了每秒1万亿次浮点运算的机器,去年11月份,我们展示了Knights Corner这个众核架构,我们可以看一下,这么一个小小的芯片,运算能力已经超过了1万亿次浮点运算。在15年以后,可能这个芯片也会装到我们的手机上面。我们很高兴地可以看到,英特尔一直在致力于推动这个并行的进展,在硬件方面我们有多核和众核的架构,另外我们也能提供一些很好的开发软件产品推动这个并行。英特尔实际上一直在做一件事情,就是用我们通用的技术,比如用同一套软件的工具和平台去支持多核和众核的架构。
现在我们知道,目前有这两种情况可以帮助到大家:一是细化到每一个核上的性能,二是看到核与核之间通讯的情况。这样为大家提供了一个很大的方便,我们不单是针对单核的性能进行调优,我们还可以针对核与核之间的通讯进行优化。对于很多开发人员来说,他们既可以看到单个核上运行的情况,另外一方面,他们也可以看到核与核之间通讯的情况,这样对他们来说是变成了非常容易的一件事情。可能有很多开发人员他们还没有意识到这种技术的重要性,但是对于英特尔来说,我们已经提前预知到这个技术的重要性,所以我们不光是可以帮助你去看单个核上的计算能力,另外一方面,我们还可以看到核与核之间的通信效率到底怎么样。
对于应用来说,编译器的性能效率是非常高效的,我们可以非常高兴地为大家宣布,到目前为止,英特尔的编译器编辑的性能仍然是最佳的。除了编译器以外,我们提供了相应的高性能库,这些库同样可以为我们的应用带来极大的性能提升。这是一个关于加解密算法的情况,加解密对于大家来说,在智能手机上,保护银行帐号,保护银行信息是非常重要的。另外一个我们面临的挑战就是把大规模的数据量进行传输和移动,对于大规模数据量的处理来说,压缩和解压的效率是非常关键的。像英特尔高性能的数学库,也提供了针对各种领域的科学运算的绝佳效率和性能。除了刚才的编译器和高性能数学库、IPV库提供的高性能的计算和处理能力来说,由于提供了高性能的处理效率。需要强调一点,刚才提到的那些软件技术和软件产品,都可以同时支持现有和将来的多核,另外还可以针对众核MIC架构支持。 应用的另外一个重要性就是面向未来的可扩展性,如何扩展到更多的核和更大的机器上。英特尔的软件和硬件的完美结合,就确保了以后性能加速的增长。这个图是我们想给大家提供的一个例子,就是英特尔的Threading Building Blocks(TBB)在多核上绝佳的性能加速比。另外,英特尔MPI提供的是绝佳的通讯效率, 还减少了通讯的延迟。英特尔多性能构建模块是提供了绝佳的可扩展性,特别是针对C++的开发人员来说,是最好的并行编程方案。接下来我会重点详细介绍 TBB,在之前要首先确保应用者的可靠性。
我们可以看到阻碍计算效率的因素,比如一些等待是阻碍了正常计算的效率。我们做很多的工作,包括调试和分析,无非就是解决通讯和计算的效率问题。我们在前面提到多线程构建库这个技术,所以目前这个技术已经支持了多种操作系统,并且可以运行在不同的平台上面,另外也是在我们应用开发人员当中非常流行的,它对于很多C++的开发人员做并行编程来说是一个完整的解决方案。在过去几年我们也不断地对多线程构建模块进行了进一步的开发,无论让你的TBB应用于嵌入式设备,或者是针对图形图像的处理,都是做了很多的工作。
针对刚才提到的英特尔多性能构建库TBB,在几年前就有一本书讲授这个技术,并且这本书已经翻译成了中文。我也和另外两个同事在写一本新书,是讲述如何用TBB和Cilk? Plus进行并行编程的,希望这个书可以在明年7月份出版。用一句话来说,英特尔是一直致力于软件和硬件上面推行并行化技术的。无论是基于多核的架构还是将要发布的50个核的众核架构来说,并行化是非常重要的一件事情。英特尔会提供一些工具,帮助我们开发人员实现并行这个技术。