当前位置:新闻中心行业相关 → 正文

大数据引发“撞墙”效应 编程效率还待提高

责任编辑:hli |来源:企业网D1Net  2012-02-24 15:14:05 本文摘自:中国电子报

大数据时代的到来以及由此带来的处理需求,使得并行编程迫切需要向平民化发展。

我们正从互联网时代向物联网时代演进,其重要特点之一是大数据的出现。因此,我们需要获得更强的计算能力,以更快捷地处理各种计算设备产生的海量数据,从中提取出商业价值。

在这样的大背景下,并行化、分布式已成为提升计算力的重要解决方式。谈大数据往往围绕分布式计算,这里我们讲一讲另一个支撑技术并行化。要实现并行化从来就不是一件容易的事。在研究的过程中,我们碰到了两堵障碍墙,一是硬件的并行性永远跟不上客观世界应用对计算力的需求;二是并行软件的发展永远赶不上硬件并行化的发展。而随着时间的推移,应用、硬件和软件技术发展的不均衡性也日益凸显,“撞墙”效应愈演愈烈。

针对这样的挑战,我们着重在众核体系结构和并行编程研究两方面寻求突破,前者的目标是使硬件并行性的发展跟上现实世界并行性需求的发展,而后者的任务是让普通程序员编写的软件能充分利用硬件的并行性。今天我主要想和大家分享英特尔在并行编程这一方面的探索经验。

业界几十年来对并行编程的探索,让广大程序员普遍认识到没有一种技术能够“一招鲜走遍天下”,从而一劳永逸地解决问题。但大数据时代的到来以及由此带来的处理需求,使得并行编程迫切需要向平民化发展。为此,英特尔研究院提出了四个思路:一、开发多层次的、针对不同水平程序员的多样化并行编程技术;二、提供从语言到工具的全套解决方案,涵盖从开发到调试,再到调优的各个阶段;三、允许不同层次、种类编程技术之间的可组合性;四、强调平台伸缩性,实现编写一次,即可在现在与未来、多核与众核、同构与异构的不同平台上运行。

简单来说,这四个思路旨在让程序员在使用英特尔的编程技术时找到亲近感,让并行编程变得更加便捷。我们发现,程序员能否很好地进行并行编程,与他们自身的认知、习惯及受到的培训有很大的关系。很多程序员在学习编程时都是从串行编程开始的,他们无法快速地转换到并行编程上。这些思路可以保证程序员在使用我们的技术时,会发现多多少少跟他们原来所学的相似,从而能让他们拥有自己的选择权。

为此,在具体的技术实现策略上,大致分三种:一、串行变并行,即程序员原来写的串行程序不用大改,由我们的编译器、自动工具和并行硬件把程序改为并行。二、给串行加上并行,即让程序员考虑能不能在原有的串行语言上面加入一些并行的扩展。这样就可以保证已经编好的大部分程序不用修改,只要将一小部分变成并行就行。三、完全并行。这也是业界的全新研究方向,让程序员考虑彻底地使用新的并行范型和语言。

当然,在现实编程的过程中会发现更加复杂的问题。比如有些使用得很好的串行算法很难进行并行化处理。针对不同的情况,英特尔研究院和软件部门推荐了不同的解决方案。例如数据并行非常好的,我们就用ArBB(Array Buildlng Blocks)技术来做;如果是任务并行比较好的,我们会用TBB(Threading Building Blocks)技术;描述任务之间复杂逻辑的可以用CnC(Concurrent Collections);如果有些算法真的是很难优化的,我们就直接提供库,程序员只需要调用就可以了。当时我和同事一起设计ArBB时,就是为了解决核多、SSE/AVX编程难的问题,为程序员提供一条更加便捷的并行途径。

今天,一个月内上传到YouTube的视频比美国三大电视网60年内制作的视频还要多。未来,当我们真正进人大数据时代后产生的数据量将大大超出人们的想象力。面对未知的挑战,我们要保持乐观心态,一起努力实现高效并行化,共同推动互联网向大数据和物联网的快速、健康演进。

关键字:数据并行大数据

本文摘自:中国电子报

x 大数据引发“撞墙”效应 编程效率还待提高 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业相关 → 正文

大数据引发“撞墙”效应 编程效率还待提高

责任编辑:hli |来源:企业网D1Net  2012-02-24 15:14:05 本文摘自:中国电子报

大数据时代的到来以及由此带来的处理需求,使得并行编程迫切需要向平民化发展。

我们正从互联网时代向物联网时代演进,其重要特点之一是大数据的出现。因此,我们需要获得更强的计算能力,以更快捷地处理各种计算设备产生的海量数据,从中提取出商业价值。

在这样的大背景下,并行化、分布式已成为提升计算力的重要解决方式。谈大数据往往围绕分布式计算,这里我们讲一讲另一个支撑技术并行化。要实现并行化从来就不是一件容易的事。在研究的过程中,我们碰到了两堵障碍墙,一是硬件的并行性永远跟不上客观世界应用对计算力的需求;二是并行软件的发展永远赶不上硬件并行化的发展。而随着时间的推移,应用、硬件和软件技术发展的不均衡性也日益凸显,“撞墙”效应愈演愈烈。

针对这样的挑战,我们着重在众核体系结构和并行编程研究两方面寻求突破,前者的目标是使硬件并行性的发展跟上现实世界并行性需求的发展,而后者的任务是让普通程序员编写的软件能充分利用硬件的并行性。今天我主要想和大家分享英特尔在并行编程这一方面的探索经验。

业界几十年来对并行编程的探索,让广大程序员普遍认识到没有一种技术能够“一招鲜走遍天下”,从而一劳永逸地解决问题。但大数据时代的到来以及由此带来的处理需求,使得并行编程迫切需要向平民化发展。为此,英特尔研究院提出了四个思路:一、开发多层次的、针对不同水平程序员的多样化并行编程技术;二、提供从语言到工具的全套解决方案,涵盖从开发到调试,再到调优的各个阶段;三、允许不同层次、种类编程技术之间的可组合性;四、强调平台伸缩性,实现编写一次,即可在现在与未来、多核与众核、同构与异构的不同平台上运行。

简单来说,这四个思路旨在让程序员在使用英特尔的编程技术时找到亲近感,让并行编程变得更加便捷。我们发现,程序员能否很好地进行并行编程,与他们自身的认知、习惯及受到的培训有很大的关系。很多程序员在学习编程时都是从串行编程开始的,他们无法快速地转换到并行编程上。这些思路可以保证程序员在使用我们的技术时,会发现多多少少跟他们原来所学的相似,从而能让他们拥有自己的选择权。

为此,在具体的技术实现策略上,大致分三种:一、串行变并行,即程序员原来写的串行程序不用大改,由我们的编译器、自动工具和并行硬件把程序改为并行。二、给串行加上并行,即让程序员考虑能不能在原有的串行语言上面加入一些并行的扩展。这样就可以保证已经编好的大部分程序不用修改,只要将一小部分变成并行就行。三、完全并行。这也是业界的全新研究方向,让程序员考虑彻底地使用新的并行范型和语言。

当然,在现实编程的过程中会发现更加复杂的问题。比如有些使用得很好的串行算法很难进行并行化处理。针对不同的情况,英特尔研究院和软件部门推荐了不同的解决方案。例如数据并行非常好的,我们就用ArBB(Array Buildlng Blocks)技术来做;如果是任务并行比较好的,我们会用TBB(Threading Building Blocks)技术;描述任务之间复杂逻辑的可以用CnC(Concurrent Collections);如果有些算法真的是很难优化的,我们就直接提供库,程序员只需要调用就可以了。当时我和同事一起设计ArBB时,就是为了解决核多、SSE/AVX编程难的问题,为程序员提供一条更加便捷的并行途径。

今天,一个月内上传到YouTube的视频比美国三大电视网60年内制作的视频还要多。未来,当我们真正进人大数据时代后产生的数据量将大大超出人们的想象力。面对未知的挑战,我们要保持乐观心态,一起努力实现高效并行化,共同推动互联网向大数据和物联网的快速、健康演进。

关键字:数据并行大数据

本文摘自:中国电子报

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^