《中国计算机报》:并行编程因何难以实现
出处:中国计算机报 文: Anwar Ghuloum 评论 ( 0 ) 条 ( 0 ) 砖 ( 0 ) 好 论坛 博客
阅读提示:编程人员所面临的第一个问题是确定在应用程序中什么地方实现并行。有时这很容易,但有时却不那么简单:可能你使用的很好的串行算法很难并行化处理。举个实际的例子,两年前,我们就试图将MPEG-4的视频压.....

要体现多核的优势,实现万亿级的计算体系结构,一个重要的问题就是必须实现并行编程。那么,究竟是什么原因使得它如此难以实现?我认为这是一个值得探讨的问题。下面,我将结合我们实验室在这方面的经验和教训,谈谈这个问题。以下这五个方面对实现并行编程的影响是递增的。
找出能够并行的地方
编程人员所面临的第一个问题是确定在应用程序中什么地方实现并行。有时这很容易,但有时却不那么简单:可能你使用的很好的串行算法很难并行化处理。举个实际的例子,两年前,我们就试图将MPEG-4的视频压缩编码器并行化。表面看起来这很容易,因为在那些视频帧中有那么多可以并行的地方。然而,要得到串行处理的性能,我们却遇到了意想不到的困难。因为原来并行算法中使用的分块算法对于提高性能起了很大的作用,但是这些作用却很难在并行算法中继续发挥,不过我们最终还是解决了这个问题。
避免新的错误类型
多线程同时运行、同时访问数据将引入新的错误类型,这种错误可能很难发现,或者无法准确地定位。我们把这种错误叫做“数据竞争(data race)”,因为最终的处理结果往往跟多个线程竞争在共享对象中写入自己数据的先后顺序有关,可能会出现多种我们预想不到的结果。这看起来很诡异,但实际上却是相当常见的。
性能优化
在我前面说道的那个视频压缩项目中,我们可能用了95%的时间来进行性能优化。这是因为,在多核的世界里,很多因素,如缓存行为、连接多核等等,都可能给提高性能带来新的困难。例如,在很多视频压缩中用到的线性代数算法里,模块化(blocking)用于改进算法中的缓存行为,但前提是我们需要知道缓存区的大小。使用多核芯片,由于一些缓存级别是共享的(例如,酷睿2中的共享2级缓存),所以情况变得更复杂了。因此,你必须知道你能使用多少2级缓存,但前提是你可能不知道在其他内核中运行着什么样的程序,它们需要使用多少缓存。看到了吧,这甚至比我们考虑使用分布式共享缓存、连接多核的复杂方法等,都要复杂得多。
为今后的扩展做准备
对于串行的应用程序,很可能因为单核处理器的升级换代而受益。应该说对于并行的应用程序也应该如此,但情况却要复杂一些。前面那一条所说的在这里都更加严重,因为增加内核的个数意味着缓存大小、相互之间的连接等都可能改变,现在我们根本无法确切知道这些内容。这些都将影响性能,例如,在多个内核之间交互的周期选择问题。就算不知道未来的体系结构会具体如何变化,我们也必须能够防患于未然,通过可扩展的编程模型、工具和算法来实现我们的代码。
现代编程方法的使用
我学习编程的时候,用的是C和Fortran等编程语言。这样,大多数计算相关程序的实现都需要很好的理解,并且容易分块。而现在呢?而现在,大部分软件开发都使用面向对象的编程语言。抽象的方法使得这些语言对软件开发人员具有很强的吸引力,但同时,它们也使得与计算密切相关的代码部分隐藏起来,而这些正是我们需要应用并行计算的关键。而且,数据大型集合(这是我们实现并行化的关键)的处理将会经常涉及不同的对象层次和各种复杂的数据结构,其顺序可能不同,而且不可预测。这些都会给实现并行处理制造麻烦。
现在问题摆出来了,这些问题应该如何解决就需要大家共同努力了。

(c112)


   
已有0人发表看法
我来说两句
验证码: (如果看不清请点击图片进行更换.)   匿名
最新评论更多..
服 务 CIO 推 进 信 息 化
主编推荐
最近更新
热门文章
中国CIO周刊
CIO深陷困境 实施SOA是否是建“乌托邦” CIO深陷困境 实施SOA是否是建“乌托邦”
去年,史高所在的方信市信息中心的老处长退休了,当了5年副处长的史高被扶了正。刚刚上任,就赶上了实施“金市”工程,方信市将要建立统一..
何经理的困惑:如何解决网站外包存在的风险 何经理的困惑:如何解决网站外包存在的风险
何经理所在的公司是一家制造行业的民营企业,主要生产管件、轴承等产品,由于地处东南沿海,何经理的老板对于信息化很重视,眼看着一个个..
洞察
SaaS概念要落地 软件提供商不能任意定价 SaaS概念要落地 软件提供商不能任意定价
软件领域任何字母都可能组合成新的名词,进而上升到概念的高度,SaaS也不例外。2003年SaaS提出,顷刻间概念飞遍了各个角落,然而,概念不..
VSAT卫星通信系统在交通应急通信中的应用 VSAT卫星通信系统在交通应急通信中的应用
本文针对交通应急行业的特点论述了VSAT卫星通信技术在交通应急系统上应用的必要性和未来发展前景,并制定最佳的实施方案,使之具有科技含..