多核处理器环境下遥感数据处理的并行与串行算法的性能比较
2012-04-02扈小燕刘培洵陈顺云刘力强马胜利
扈小燕 刘培洵 陈顺云 刘力强 马 瑾 马胜利
(中国地震局地质研究所,地震动力学国家重点实验室,北京 100029)
卫星遥感能够提供(准)实时地面信息,在地震研究中的应用越来越广泛。MODIS是搭载在Terra和Aqua两颗卫星上的重要的“图谱合一”光学遥感观测仪器。由于MODIS数据具有多频段、高分辨率、高时效性、应用广泛等特点,使得MODIS数据对地球科学的综合研究和对陆表、生物圈、固态地球、大气和海洋的长期观测有着重要意义,在自然灾害的监测和分析研究领域也有着广泛的应用。
目前,每年可接收到MODIS数据约8 TB左右,且已有十余年的数据积累。而在构造活动或地震研究中,经常需要考虑热红外辐射的长期动态演化(如数月、数年甚至十几年),这就需要处理大量MODIS数据。MODIS数据的处理包括条带噪声消除、数据重叠现象去除、热红外波段亮温反演、几何纠正、影像检测、地表温/湿度反演等。MODIS数据处理的工作量很大,而且处理耗时长。如何快速处理遥感影像,成为推动卫星遥感在地震研究中深入应用的关键技术之一。
我们以MODIS数据投影为例,引入并行计算技术,对遥感数据并行与串行处理的性能进行比较。完整的MODIS 1B级数据投影的过程包括:读取数据文件(HDF格式)、创建调色板、投影变换、生成结果文件。
读取数据文件:根据MODIS数据特性,编写MODIS数据访问模块,可以根据用户的需要,在读取数据的同时完成插值运算。
创建调色板:根据用户选定的数据集生成调色板,使生成的结果图像的颜色更均匀。
投影变换:实现4种常用地图投影方式,包括正轴等角圆锥投影、正轴等面积圆锥投影、墨卡托投影、高斯-克吕格投影。可根据不同的使用目的灵活选用。投影后的数据消除了“双眼皮”现象,即解决了不同的扫描条带在边界区域重叠的情况。
生成结果文件:将经过投影和假彩色合成的结果数据集按照GeoTiff文件格式写入文件,生成的图像文件包含了地理坐标信息和投影信息,不仅能用一般的图像软件浏览,还能够在envi、erdas软件中直接使用。
目前比较常见的是使用MPI和OpenMP来实现并行程序设计。MPI(Message Passing Interface)一般被应用于计算机集群,对于单台多核计算机,OpenMP则是较好的选择。OpenMP(Open Multi-Processing)是一套编译指导语句,帮助编译器生成利用SMP(symmetrical multiprocessor)系统内多个处理器的多线程代码。在多核计算机上利用OpenMP对MODIS数据处理并行化,可以提高处理速度。
在对MODIS数据处理过程中,需要进行大量数据插值、计算等工作,这些工作多是用循环语句来完成的,因此在编写应用程序时在大量单次迭代之间不存在相关性的循环操作处应用OpenMP,实现循环的多线程并行执行。
结果表明,就单台4核CPU台式计算机而言,应用程序以串行方式运行时,CPU的使用率仅为25%,而利用OpenMP技术可使CPU的使用率达到100%,处理速度提高了400%。值得注意的是,数据处理速度快慢还取决于处理任务的并行度和系统性能,I/O速度和磁盘本身的性能,都是提高计算速度的瓶颈。