拥抱多核时代-GIS并行计算
并行计算教学探讨

292学苑论衡一、概述并行计算是高性能计算的代表,是一个国家经济和科技实力的综合体现,也是促进经济、科技发展,社会进步和国防安全的重要工具,是世界各国竞相争夺的战略制高点。
受半导体发热效应的影响,单处理器上的运算速度已经达到极限。
2003年以后,“多核”的并行计算架构逐步成为人类追求更高计算性能的重要途径,并在行业中迅速普及。
并行计算一直应用于航天、国防、气象、能源等国家级重大科研项目,成为“贵族产品”。
随着微电子技术的发展,使用微处理器构建并行计算系统的成本不断下降。
同时,互联网和物联网的发展使高性能计算在“大众市场”的需求日益迫切,Hadoop 的诞生让并行计算“大众化”成为现实,并催生了云计算和大数据。
产业的迅速发展刺激着人才需求的变化,并行计算人才需求开始由研究生向本科生延伸。
总之,无论是计算性能发展的要求,还是产业发展的需求,都给计算机人才的培养带来了重大的影响。
具体的影响是什么?本科教育如何应对?文章就这些问题做了进一步的探讨。
二、并行计算综述(一)并行计算的定义并行计算(Parallel Computing)是一种相对于串行的计算模式,是指使用多种计算资源并行性地解决问题的过程。
狭义上的并行计算尤指同时使用多种计算资源解决计算问题的过程,它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分由一个独立的处理机来并行处理。
(二)并行计算的层次架构时间重叠、资源重复和资源共享是并行计算的三种实现技术。
可以在处理单元、CPU、板载和主机等级别上重复资源构建并行架构。
(1)处理单元级并行即以处理单元(PU)为资源重复单位在CPU 内部实现并行计算。
比如阵列处理机、向量处理机和图形处理器(GPU)。
(2)CPU 级并行以CPU 为资源重复单位建立并行架构,即多处理机系统。
比如共享存储模式的对称多处理机(SMP 系统)和分布式存储模式的大规模并行处理机(MPP)系统。
GIS软件处理大规模空间数据集的效率秘诀

GIS软件处理大规模空间数据集的效率秘诀GIS软件在处理大规模空间数据集时,通过一系列技术和策略来确保处理效率。
以下是GIS软件如何保证处理大规模空间数据集效率的几个关键点:1. 高效的数据索引技术GIS软件采用高效的空间索引技术,如四叉树、R树、KD树等,来加速对空间数据的查询和检索。
这些索引技术能够显著减少查询时所需扫描的数据量,通过索引快速定位到需要处理的数据区域,从而提高处理效率。
2. 数据分块与并行处理为了应对大规模数据集,GIS软件通常采用数据分块技术将数据划分为较小的、易于管理的块(或称为瓦片)。
然后,利用并行处理技术同时处理这些块,充分利用多核处理器和分布式计算资源。
这种分而治之的策略能够显著提高处理速度,特别是在处理复杂空间分析任务时。
3. 数据压缩与存储优化GIS软件采用数据压缩技术来减少空间数据的存储需求,并优化数据的读取速度。
通过压缩算法,可以在保持数据精度的同时减少数据的体积,从而加快数据的加载和处理速度。
此外,GIS软件还利用高效的存储策略,如空间数据库管理系统(SDBMS),来优化数据的存储和检索性能。
4. 分布式计算与云计算支持随着云计算技术的发展,GIS软件越来越多地利用云计算平台来处理大规模的空间数据集。
云计算平台提供了强大的计算资源和存储能力,支持大规模数据的并行处理和实时分析。
GIS软件通过将数据上传到云端,并利用云平台的计算资源进行处理,可以显著提高处理速度和效率。
5. 优化的算法与模型GIS软件内部集成了多种优化的算法和模型,用于处理不同类型的空间分析任务。
这些算法和模型经过精心设计和优化,能够在保证处理精度的同时提高处理速度。
例如,对于复杂的空间查询和分析任务,GIS软件会采用高效的算法来减少计算量,并优化查询路径。
6. 高效的内存管理在处理大规模空间数据集时,内存管理是一个关键问题。
GIS软件通过高效的内存管理技术来确保数据在内存中的快速读写和有效管理。
提高地理信息系统数据处理效率的实用技巧

提高地理信息系统数据处理效率的实用技巧地理信息系统(Geographic Information System,简称GIS)是一种用来收集、管理、分析和展示地理数据的工具。
随着数据量和复杂性的增加,如何提高GIS数据处理效率成为了一个重要的问题。
本文将介绍一些实用的技巧,帮助提高地理信息系统数据处理效率。
一、数据预处理在开始处理大规模数据之前,进行适当的数据预处理是至关重要的。
数据预处理包括数据清洗、数据格式转换、数据分块和数据压缩等步骤。
1. 数据清洗:通过去除重复数据、修复错误数据和填充缺失数据等方法,提高数据质量。
这可以减少后续处理步骤中的错误和混乱。
2. 数据格式转换:将不同格式的数据统一为一种格式,以便后续分析。
例如,将不同投影坐标系下的数据转换为相同的坐标系。
3. 数据分块:对大规模数据进行分块处理,以减少内存负担。
通过将数据分成较小的块,可以更快地处理每个块,并且可以提高处理速度和效率。
4. 数据压缩:对冗长的字符串、多余的空格和无关的信息进行压缩,以减少数据的大小。
这可以减少数据存储和传输所需的时间和空间。
二、并行计算并行计算是指将一份工作分解为多个独立的子任务,同时在多个处理单元上进行计算,从而加速数据处理的过程。
在GIS中,利用并行计算可以提高大规模数据集的处理效率。
1. 多线程处理:利用多线程技术,将任务分配给多个线程同时进行处理。
例如,可以将数据分成多个块,每个块由一个线程处理。
这样可以大大提高数据处理的速度。
2. 分布式计算:利用集群或云计算平台进行数据并行处理。
通过将任务分发给多个计算节点,可以充分利用计算资源,并实现更快的数据处理速度。
三、空间索引空间索引是一种用来加快地理数据查询和处理的数据结构。
通过将地理数据按照一定的规则进行组织和排序,可以提高数据查询和处理的效率。
1. 栅格索引:将地理数据分割为一系列的栅格单元,每个单元包含相邻地理对象。
栅格索引适用于基于栅格数据的分析和查询。
云计算在GIS中的应用

云计算在GIS中的应用在当今数字化的时代,地理信息系统(GIS)已经成为了众多领域中不可或缺的工具,从城市规划、环境保护到交通运输、资源管理等等。
而随着云计算技术的迅速发展,其为 GIS 带来了全新的机遇和变革。
云计算是什么呢?简单来说,云计算就是一种基于互联网的计算方式,它能够提供强大的计算能力、海量的存储资源以及灵活的服务模式。
对于 GIS 而言,云计算的出现犹如一场及时雨,解决了许多长期以来困扰着 GIS 发展的难题。
首先,云计算为 GIS 提供了几乎无限的计算和存储能力。
在处理大规模的地理数据时,传统的本地计算和存储往往会遇到性能瓶颈。
比如,在进行复杂的空间分析、海量数据的可视化或者高分辨率影像的处理时,本地计算机的硬件配置可能无法满足需求。
而云计算平台则可以根据用户的需求动态分配计算和存储资源,无论是处理 PB 级别的数据还是执行复杂的并行计算任务,都能够轻松应对。
其次,云计算使得 GIS 数据的共享和协作变得更加便捷高效。
以往,不同部门、不同地区之间的 GIS 数据往往存在着格式不统一、数据难以共享的问题。
而在云计算环境下,数据可以集中存储在云端,用户可以通过网络随时随地访问和使用这些数据,并进行协同工作。
这不仅减少了数据重复采集和处理的成本,还提高了数据的更新频率和准确性,为决策提供了更及时、更可靠的依据。
再者,云计算降低了 GIS 的使用门槛和成本。
对于一些小型企业或者个人用户来说,构建自己的 GIS 系统需要投入大量的资金用于购买硬件设备、软件许可证以及进行系统维护。
而通过使用云计算提供的GIS 服务,用户只需按需付费,无需进行大规模的前期投资。
同时,云计算服务提供商还会负责系统的维护和升级,使用户能够专注于业务应用本身,而无需担心技术方面的问题。
另外,云计算还为 GIS 带来了更好的可扩展性和灵活性。
随着业务的发展和数据量的增加,用户可以很方便地在云端扩展计算和存储资源,而无需对本地硬件进行升级改造。
测绘技术的局限性与解决方案

测绘技术的局限性与解决方案在现代社会发展的浪潮下,测绘技术作为一种重要的工具和手段,在各个领域扮演着举足轻重的角色。
然而,纵观测绘技术的发展历程,我们不难发现,尽管其在许多方面取得了巨大的成就,仍然存在一定的局限性和挑战。
本文将探讨测绘技术的局限性以及相应的解决方案。
首先,测绘技术在精度上存在一定的局限性。
无论是地理信息系统(GIS)还是全球定位系统(GPS),在实际应用中都往往无法达到完全精确的测量结果。
这主要归因于一系列因素,例如设备的误差、大气条件的影响以及地球的非球形性等。
这种局限性对于那些对精度要求极高的行业,如地质勘探和测绘制图,可能带来一定的问题。
针对精度问题,目前有一些解决方案可以应用于测绘技术中。
首先,通过不断改进测绘设备和技术,提高其测量的准确性和稳定性。
其次,借助压力传感器和气象监测装置,对大气条件进行实时监测和校正,以减小其对测量结果的影响。
此外,可以利用大数据和人工智能技术,对测绘数据进行智能分析和修正,从而提高整体的测量准确性。
其次,测绘技术在处理大规模数据时面临着挑战。
随着科技的进步和信息时代的到来,测绘数据的规模和复杂性也在不断增加。
在这种情况下,传统的测绘技术往往难以胜任。
例如,传统的数据处理和分析方法可能无法满足大规模数据的实时处理需求,从而导致繁琐的操作和效率低下的问题。
为了克服这一局限性,我们可以考虑采用云计算技术和并行计算方法。
云计算可以提供强大的计算和存储能力,使得处理大规模数据变得更加高效和便捷。
同时,采用并行计算方法可以充分利用多核处理器的潜力,提高测绘数据处理的并行度和速度。
此外,我们还可以通过构建分布式计算系统,利用多台计算机进行协同计算,以应对大规模数据处理的需求。
此外,测绘技术在复杂环境下的应用面临一定的困难。
例如,在山区、森林和城市等复杂地形环境中进行测绘工作时,常常受到地形和遮挡等因素的限制。
这使得获取准确的测量数据变得困难,从而影响了测绘结果的精度和可靠性。
多核并行计算技术在景象匹配仿真中的应用

图、基准图、匹配参数,输出接口为匹配结果(匹配点的位
置、实时图与基准图在匹配点的合成图像),存储格式为
C++源代码。
·
(2)数字图像数据库。用于存储未经处理的实时图、
基准图,以及经过处理的数字图像。图像存储格式为8位
灰度bmp图片。
(3)图像预处理与匹配算法实施模块。根据用户需求
调用相应的数字图像、预处理/匹配算法、设置算法参数,建
关键词:多核;并行计算;景象匹配;建模仿真
中图分类号:TP 391.9
文献标志码:A
Application of multi—core parallel computing technology in scene matching simulation
LI Nil,CHEN Zhen92,GONG Guang—hon91,PENG Xiao-yuanl (1.School ofAutomation Science and Electrical Engineering,BeihangUniv.。Beijin9100191,China; 2.Systems Engineering Research Inst.,China State Shipbuilding Corporation,Beijing 100036,China)
Abstract:Computer technology is developing towards multi·‘processor architecture and multi·。core architec‘- ture.More and more focus is put on applications of multi—core parallel computing platform,such as OpenMB and thread building blocking(TBB).Application of multi—core parallel computing technology in modeling and simulation(M&S)area is concerned.A scene matching evaluation platform that helps tO evaluate efficiency of different algorithms is implemented based on OpenMP and TBB.The multi—core parallel computing technology and its application in scene matching algorithms are introduced in detail.Simulation results shows that the multi—core parallel computing technology can greatly improve the simulation efficiency and effectively support verification and study of scene matching algorithms in real missile guidance systems.
arcgis并行实例

arcgis并行实例ArcGIS 是一款功能强大的地理信息系统软件,支持并行计算。
在 ArcGIS 中,可以通过并行实例来提高数据处理和分析的效率。
下面我将从多个角度来回答关于 ArcGIS 并行实例的问题。
首先,了解并行计算的概念。
并行计算是指同时使用多个处理器或计算资源来执行任务,以提高计算速度和效率。
在 ArcGIS 中,可以利用并行计算来加速数据处理、空间分析和模型建立等任务。
在 ArcGIS 中,有多种方式可以实现并行计算。
一种常见的方式是利用 ArcGIS 的并行处理工具,如多核处理器和多线程技术。
这些工具可以将任务分解成多个子任务,并同时在多个处理器上执行,从而加快处理速度。
例如,可以使用并行处理工具在多个核心上同时运行地图代数操作、栅格计算和空间分析等任务。
此外,ArcGIS 还提供了分布式并行计算的功能,即将任务分发到多台计算机上进行并行处理。
通过配置 ArcGIS Server 或使用分布式计算框架(如 Apache Hadoop 或 Spark),可以实现在多台计算机上同时执行复杂的地理处理任务。
这种方式可以显著提高大规模数据处理和分析的效率。
除了利用 ArcGIS 自带的并行计算功能,还可以使用 Python 编程语言结合 ArcPy 模块来实现自定义的并行计算。
Python 提供了多线程和多进程的模块,可以用于将任务分解成多个子任务,并在多个线程或进程中并行执行。
通过编写并行化的 Python 脚本,可以更灵活地控制并行计算过程,满足特定的需求。
总结起来,ArcGIS 提供了多种方式来实现并行计算,包括利用并行处理工具、分布式并行计算和自定义的 Python 并行计算。
这些方法可以提高数据处理和分析的效率,加快任务的完成速度。
通过合理地利用并行计算,可以更高效地利用计算资源,提升 ArcGIS 的性能和应用效果。
地理信息数据库构建中的数据结构设计与空间索引技术优化

地理信息数据库构建中的数据结构设计与空间索引技术优化在当今信息化时代,地理信息系统(Geographic Information System,简称GIS)发挥着越来越重要的作用。
地理信息数据库的构建是GIS的核心任务之一,而数据结构设计和空间索引技术的优化则是其中关键的要素。
本文将探讨地理信息数据库构建中的数据结构设计和空间索引技术的优化。
一、数据结构设计数据结构是地理信息数据库的基石。
在设计数据结构时,需要考虑存储空间的效率、数据查询与更新的速度以及对空间关系的支持等因素。
1. 属性数据结构在地理信息数据库中,属性数据是描述地理实体特征的重要组成部分。
其数据结构要能够高效地存储和查询大量的属性数据。
一种常见的做法是采用关系数据库来存储属性数据。
关系数据库的表结构和索引机制可以很好地支持属性数据的存储和查询。
2. 空间数据结构与属性数据不同,地理信息数据还包含了空间数据,即地理实体在地球上的位置信息。
要高效地存储和查询空间数据,需要采用专门的数据结构。
其中,最常用的空间数据结构包括网格、四叉树、R树以及基于图的结构等。
选择适合的空间数据结构可以提高数据库的查询效率。
二、空间索引技术优化为了提高查询效率,地理信息数据库中的空间数据需要进行索引。
不同的空间索引技术有不同的特点和适用场景。
下面将介绍几种常用的空间索引技术及其优化方法。
1. R树索引R树是一种经典的多维索引结构,广泛应用于地理信息数据库中。
它通过将相邻的空间对象组织在一起,减少磁盘IO次数,提高查询效率。
对于R树的优化,可以引入自适应分裂策略、避免索引空间碎片化以及更新路径压缩等技术。
2. Quad-Tree索引Quad-Tree是四叉树的一种扩展形式,适用于二维空间数据的索引。
Quad-Tree 将地理实体按照四叉树的结构进行划分,可以快速定位和查询空间对象。
在Quad-Tree索引的优化中,可以考虑采用动态负载均衡、预分割空间等策略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
告别免费午餐拥抱多核时代—SuperMap空间分析并行计算实践Written by:Objects 2013-3-12 11:20:00SuperMap空间分析并行计算实践信息技术(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并行粒度线程线程进程不支持支持不支持内存分配总体来说,并没有哪种并行计算框架可以适用于各种应用开发,较为合理的方案是根据应用程序特点选择适合自身的技术框架。
当你需要将已有程序进行并行化改进,而且希望快速看到改进效果时,OpenMP 是一个较理想的选择。
当你希望从零开始,完成一个并行化程序的开发时,可能需要更多的关注TBB和MPI。
而当你希望应用程序既实现单机线程级别的并行,又可以在多机群集环境中发挥并行计算优势时,就需要使用较为复杂的混合模式进行设计和开发。
四、并行计算下的空间分析GIS空间数据随着采集、传输、处理技术的进步,其规模不断膨胀,导致传统串行空间分析方法面临巨大压力。
而并行计算技术凭借其对于多核计算资源的充分利用,以及可扩展的计算能力为海量空间数据的分析提供了一种解决方案。
本文中,我们主要以GIS空间分析中的水文分析为代表,分享SuperMap水文分析模块在并行计算方面的相关研究和实践工作。
水文分析是水文科学、地理信息科学与计算机科学的交叉结合产物,主要利用DEM栅格数据构建水系模型,利用水系模型进行水流方向、累积汇水量、流域、河网等水文要素的计算与提取,实现DEM表面水流过程的模拟和重现。
可广泛应用于农林业、区域规划、灾害预测等诸多领域,是GIS空间分析中的重要组成部分。
由于水文分析是一个完整的工作流程与分析体系,因此涉及较多分析方法,主要包括:填充伪洼地、计算流向、计算累积汇水量、划分流域(包括计算流域盆地、提取汇水点和流域分割)、提取水系网络(包括提取栅格水系、河流分析、连接水系和提取矢量水系)图4 水文分析流程图(SuperMap,2012)由于水文分析模块涉及分析功能较多,而应用最为广泛的是基于DEM提取矢量水系,因此我们针对该流程进行并行计算实践,主要涉及填充伪洼地、计算流向、计算累积汇水量、计算流域盆地和水系矢量化功能。
我们主要使用OpenMP并行计算框架,并根据具体算法使用非连续内存管理、线程池、线程任务分配等技术手段,进行水文分析相关功能的并行计算改进,以期达到充分利用多核计算资源,提升水文分析性能的目的。
为了验证改进算法的有效性,我们选取了三组不同规模的DEM数据进行测试和分析。
表2 DEM数据列表数据编号行数目列数目数据量A 3601 3601 35 MBC 18001 32401 1.5 GB为了保证测试效果,我们使用Dell ® PowerEdge ®服务器进行测试,其处理器为2个英特尔®至强®八核处理器,单核主频为2.0 GHz,内存为32 GB,操作系统为64位Red Hat® Enterprise Linux Server。
首先使用双线程并行与原串行算法进行比较,测试结果如表3所示。
表3 双线程并行计算性能统计功能点数据A 数据B 数据C 串行并行串行并行串行并行加速比 1.62 1.46 1.52时间单位:秒图5 数据C双线程并行测试结果从测试结果中可以看出,双线程并行算法相对于传统串行算法有较为明显的性能提升。
由于各功能实现算法不同,内部并行化所使用的技术手段也存在差异,因此各算法性能提升幅度不同。
但从总时间来看,三组数据的加速比分别达到了1.62、1.46和1.52,即水文分析各功能均可以通过并行计算技术大幅提升原算法性能。
为了进一步测试不同线程数目下并行算法的性能提升幅度,我们选择了填充伪洼地和流向分析两个功能,分别使用不同的线程数目进行分析性能测试。
图6 数据C填充伪洼地功能测试结果图7 数据C流向分析功能测试结果从图6和图7可以看出,改进后的并行算法性能随着线程数目的增加而提升,但由于算法内部无法实现完全的并行化,在线程数目增大到8时,算法性能提升幅度减小,算法时间趋于平稳。
流向分析功能由于算法结构较适宜进行并行化处理,计算任务可以较均匀的分配到多个线程上,因此分析性能的提升与线程数目的增加表现出较好的一致性。
尽管“摩尔定律”支配下的信息技术仍处于飞速发展当中,但以64位技术和多核计算平台为代表的发展趋势迫使应用系统开发进行重新思考。
如何行之有效的进行并行程序的设计与开发已成为衡量一个IT公司能否充分利用计算资源的重要指标。
空间分析是GIS的灵魂,而SuperMap空间分析研发团队始终紧跟技术发展脚步,优化空间分析算法,在并行计算领域进行了多项卓有成效的研究和改进。