高效并行编程:英特尔的魔法帽

DOIT原创 崔昊 发表于:12年11月27日 19:00 [原创] DOIT.com.cn

  • 分享:
[导读]无论如何,至强融核的出现已经开始改变高性能计算市场,提供给了用户更多的选择。英特尔的理念是值得整个市场关注的,那就是“以可控的功耗、可控的成本提供更高的性能,同时通过生态环境保证最佳的体验。”

高效并行编程:英特尔的魔法帽

在话题进入有关至强融核的并行编程之前,我们首先要来看看英特尔为至强融核所准备的软件开发环境。从开源工具的角度来看,虽然gcc只能编译核心,而不能编译应用程序,但用户仍然有Python可用。Debug工具和编译库也有对开源平台的相应支持,但是在分析工具、工作负载计划上,我们并未看到开源平台的踪影。

但英特尔事实上一直拥有完整的软件开发、编译生态环境支持,推出了大量的相关软件产品,包括英特尔C++编译器、Fortran编译器,以及Debug工具、VTune Amplifler XE等软件支持,而在工作负载规划上,像Altair PBS Professional、Adaptive Computing Moab等第三方工具也提供了良好的支持。总的来说,至强融核的软件开发环境是比较完整和健全的。

话题回到编程上来,英特尔并行编程传播总监James Reinders有两句话非常值得回味,其一是“Don't touch my software!Don't touch my data!(不要触碰我的软件,不要动我的数据!)”其二是“Very Important, yet Nobody Gets a Free Lunch!(并行编程很重要,但是没有人能吃到免费的午餐)”他的两句话对于了解至强融核的编程、编译、软件平台有非常重要的意义。

James Reinders以SAXPY为例,通过Fortran改写串行代码为并行,进行了至强E5处理器运行串行代码、至强E5处理器运行并行代码和至强融核运行并行代码的三个计时测试,得到的就是上面的69.097、0.460和0.197的三个数值。

注意上面的细节就会发现,要想获得性能的提升——无论是至强还是至强融核——最关键的其实是将原有的代码进行并行化改造,这种并行化改造成本和时间显然会是非常高昂的,但是其带来的性能提升又是显著的,那用户该如何取舍呢?而针对业界已经发展多年的CUDA编程及NVIDIA的GPGPU平台,到底至强融核在编程上是否有“便宜的午餐”?

首先我们需要了解,并行时代本来就是编程并行化的趋势,无论是将串行编程改变为通用并行还是高度并行的代码,无论是在并行时代使用至强还是至强融核,都需要进行并行化的编程,而目前我们绝大多数的应用程序都是基于串行编程的。

这也就意味着我们需要对大量的串行代码实现并行化改造,在这种改造中,肯定会出现可以高度并行或是只能普通并行的应用划分,但无论是哪一极,显然进行并行化编程的时候,用户都不会希望针对至强和至强融核,或者说多核主处理器和众核协处理器进行分别得编程,而基于英特尔的模式“Reality: Same source code (after we added parallelism) for Intel Xeon processor and Intel Xeon Phi coprocessor”,这显然会是一种更为简单的方式,虽然可以想见针对至强和至强融核的复杂的编程——SAXPY实在是太简单、太基础了——仍然会有一定量的代码修正工作,但是这已经极大的减少了工作量。

这就像James Reinders所说的,“不会有免费的午餐”,但是用户只要付出一定的代价,这顿午餐还是会吃的相对舒服和温饱的,而且他也指出,至强和至强融核的同步并行编程最大的优势是生态环境(开发环境)的融合复用,他表示:“如果你想用相同的语言(比如Fortran)、相同的并行编程模型、熟悉的工具满足高度并行的需要,至强和至强融核是最好的选择。”

James Reinders在演讲中也特别提到:“编程并不像看起来那么容易,并行编程更是如此。”至强和至强融核协处理器的混合架构,至少还带来一点好处:用户可以进行选择,至少增加了一项针对高度并行计算的加速方案,而编程看起来虽有困难,但仍然有可以从至强处理器原本的并行编程中可以借鉴的地方——至少编程语言可以选择Fortran和C++。

另外谈一点题外话,至强融核以PCIe插卡形式增加在服务器中,而英特尔至强E5处理器也继承了PCIe控制器和内存控制器,这对于至强+至强融核形成更好的通信低延迟表现,相信会有更好的帮助。

而从编程的角度来说,James Reinders在有关至强和至强融核的编程预览文档中给出了这样的建议:

我们如何为应用程序选择至强还是至强融核处理器呢?这里大致有两个基本考虑因素:

1、扩展性:应用程序的扩展是否准备好利用至强融核的高度并行计算能力?通常这是展现至强融核并行扩展能力最有力的证据。

2、矢量和内存的使用情况:其中分为:

a)对矢量单元有极强的需求

b)会更多的使用本地内存带宽,甚至超过了至强处理器所能提供的。

他认为,如果应用同时满足这两点,就可以计划向至强融核迁移,反之,用户则需要在考虑考虑——英特尔当然还要顾及到至强处理器的市场份额问题。

[责任编辑:崔昊]
Niky
戴尔公司与央视-索福瑞媒介研究有限公司(CSM)成功合作,通过完整的模块化软件定义网络(SDN)解决方案,实现了私有云软件定义网络(SDN)的商业应用。
官方微信
weixin
精彩专题更多
存储风云榜”是由DOIT传媒主办的年度大型活动。回顾2014年,存储作为IT系统架构中最基础的元素,已经成为了推动信息产业发展的核心动力,存储产业的发展迈向成熟,数据经济的概念顺势而为的提出。
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
联想携ThinkServer+System+七大行业解决方案惊艳第十六届高交会
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技术有限公司 版权所有.