拥抱多核时代-GIS并行计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

告别免费午餐拥抱多核时代

—SuperMap空间分析并行计算实践Written by:Objects 2013-3-12 11:20:00

SuperMap空间分析并行计算实践

信息技术(InformationTechnologies,简称IT)领域,绝大多数定律都会随着技术的进步被人们淡忘,但有一些却可以经受住时间的考验,对信息技术发展带来持久而深远的影响,“摩尔定律”便是其中典型代表。“摩尔定律”支配下的信息技术,64位系统和多核计算日益普及,如何充分利用64位系统和多核环境下的计算资源成为系统设计和开发人员必

须面对的问题。地理信息系统(Geographic InformationSystem,简称GIS)中的空间分析服务具有算法逻辑复杂、数据规模庞大的特点,属于一种计算密集型服务。针对该特点,我们将并行计算技术引入传统空间分析计算过程,充分利用64位大内存和多核计算资源,大幅提升空间分析

计算性能。

一、摩尔定律下的免费午餐

摩尔定律是由英特尔创始人之一戈登·摩尔(Gordon Moore)提出。其内容为:当价格不变时,集成电路上可容纳的电子元件数目,约每隔24个月(现在普遍流行的说法是每隔18个月)便会增加一倍,性能也将提升一倍。换言之,相同性能的芯片产品,每隔18个月价钱就会降

低一半。该定律自1965年提出以来,始终较好的预测了半导体产业的

发展趋势,又由于半导体产业的巨大影响力,该定律辐射到包括微处理器、移动电话、个人电脑、互联网等在内的众多IT领域。几十年来,包括处理器速度、内存容量、网络传播速度等关键IT指标的发展大都符合摩尔定律的描述。我们有理由认为,摩尔定律在一定程度上揭示与展现了信息技术令人惊讶的进步速度。诞生于1946年的世界上第一台电子计算机,其计算速度是每秒5000次加减法运算,而今天个人电脑的计算速度是每秒500亿次浮点运算。三十五年前的英特尔8086处理器仅有三万个晶体管,而今天一个基于Nehalem架构的英特尔酷睿i7处理器集成了7.74亿个晶体管。

图1 摩尔定律曲线(, 2012)伴随着硬件技术的飞速发展,操作系统和各种应用软件无偿享用着硬件提升带来的“免费午餐”。由于处理器生产厂商致力于摩尔定律描述下的时钟频率提升,单线程的应用程序无需进行任何修改就可以在新的处理器上获得更高的性能,而功能更为强大,计算资源需求更多的操作系统和应用软件又刺激着消费者进行硬件升级,从而构成了个人电脑工业的生态链。另一方面,Google(谷歌)公司的前CEO埃里克·施密

特在一次采访中指出,如果你反过来看摩尔定律,一个IT公司如果今天和十八个月前卖掉同样多的、同样的产品,它的营业额就要降低一半。IT界把它称为反摩尔定律(Reverse Moore's Law)。这个带着悲情色彩的反摩尔定律使得IT行业不可能像传统行业那样只追求量变,而必须不断寻找革命性的创造发明,不断追赶技术的前进脚步。那些技术发展赶不上摩尔定律要求的公司,只能被市场无情的淘汰,任何一个大公司都要保持足够的警惕和研发投入,而任何一个小公司都有可能遇到让自己成长为下一个IT巨人的技术变革,这是一个最好的时代,也是一个最坏的时代。

二、多核时代的计算要求

在单核CPU时代,处理器生产厂商提升CPU运算能力的主要途径是提高主频。作为CPU的主要性能指标,主频标志着每单位时间内CPU 能够执行运算指令的数量。实际上,在单核CPU时代,处理器已经实现了多线程运算,通过在逻辑上模拟出多个CPU内核,以实现多任务调度和并发处理。然而,这些处理过程始终由单个CPU以线程切换方式完成,运算负载由单个CPU承担。而多核CPU则在真正意义上实现了内核级别并行,与传统的单核CPU相比,多核CPU带来了更强的并行处理能力和更高的计算密度,同时大大减少了散热和功耗。而多核时代的到来这也迫使应用系统告别“免费午餐”,使用多线程(或多进程)方式来充分利用多核环境下的计算资源。

图2 256核服务器的CPU任务管理器(George Chu, 2010)当前,双核和四核的个人电脑已经非常普及,而服务器的内核数量更是被不断刷新,但另一方面,由于目前针对多核开发和优化的应用程序还相对较少,使得用户无法切身感受多核计算环境下的性能提升。根本原因是并行程序的开发难度非常之大,程序设计与开发人员需要面对包括任务并行化、内存管理与使用、线程竞争与死锁、多线程程序调试等诸多技术问题。为了解决这些问题,众多并行计算模型和框架应运而生,粉墨登场。

三、跨平台的并行框架

由于SuperMap软件产品需要具有跨平台的特性,因此我们在进行并行计算框架的选择时,需要考虑其不同平台间的支持能力。当前业界应用较为广泛的跨平台并行计算框架,主要包括面向线程并行的OpenMP 框架和TBB框架,面向进程并行的MPI框架,以及OpenMP与MPI

的混合模式(Hybrid)。

OpenMP(Open Multiprocessing):是一个支持多种平台的共享内存并行计算API,支持平台包括Solaris、AIX、HP-UX、GNU/Linux、Mac OS X和Windows,支持语言包括C、C++和Fortran。它由一组编译器指令、API和环境变量构成,适合于将已有代码进行并行化改进。

图3 OpenMP并行计算示意图(,2012)TBB(Intel Threading Building Blocks):是一个由英特尔公司开发的C++模板库,主要目的是使得软件开发者更好的利用多核处理器。该库为开发者提供了一些线程安全的容器和算法,使得开发者无需过多关

注系统线程的创建、同步、销毁等操作,将精力集中于业务逻辑的并行化,可以与OpenMP互为补充。

MPI(Message Passing Interface):是一个有着广泛使用基础以及专业审查委员会管理的并行计算标准,其设计主要面向大规模机器和群集系统的并行计算,其具体实现包括OpenMPI、MPICH和LAM-MPI等。

Hybrid:即混合并行计算模式,主要是指在单机环境中使用OpenMP 进行线程级别的并行,并同时在由单机组成的群集环境中通过MPI进行任务间的消息传递和并行计算,使用难度较高。

表1 并行计算框架对比

比较项目OpenMP TBB MPI

并行粒度线程线程进程

不支持支持不支持

内存分配

总体来说,并没有哪种并行计算框架可以适用于各种应用开发,较为合理的方案是根据应用程序特点选择适合自身的技术框架。当你需要

相关文档
最新文档