题目:用于遥感大数据处理的并行和分布式计算的最新进展
摘要
本文对处理遥感大数据的最先进方法进行了调查,并深入研究了各种流行的高性能计算平台上现有的并行实现。这些方法的优缺点在功能、可扩展性、可靠性和易用性方面进行了讨论。在现有的分布式计算平台中,云计算由于其先进的高性能和面向服务的计算能力,是目前对遥感大数据进行高效、可扩展处理最有前途的解决方案。我们进一步深入分析了寻求利用遥感大数据分布式处理的并行性的最先进的云实现。特别是,我们研究了一系列调度算法(GS),旨在以优化的方式在多个云计算资源之间分配计算负载。我们对不同的 GS 进行彻底审查,并揭示在遥感大数据处理流程中采用调度策略充分利用并行性的重要性。我们提出了一个关于大规模遥感数据集的案例研究,以评估并行和分布式方法和算法。评估结果证明了云计算在处理遥感大数据方面的先进能力以及通过采用调度策略获得的计算效率的提高。
关键词
大数据;云计算;并行和分布式处理;遥感;任务调度。
一. 介绍
遥感技术是一种利用机载或星载传感器从场景中收集信息的技术,已广泛应用于与地球观测和空间探索[1]–[4]相关的各种应用领域,包括资源利用、环境监测、地质勘探、农业生产、城市规划等。除了与地球科学相关的社区外,遥感还与许多其他研究社区相关,并从中受益[5]–[8],如航空航天、天线和传播以及传感器社区。近年来,将高性能计算(HPC)和通信体系结构纳入地球观测系统已经与遥感界建立了重要的协同作用[9],[10]。从本质上讲,遥感可以被视为多学科科学和工程的主题,以有效地解决宏观观测问题。
在过去的十年中,地球观测仪器有了长足的发展。可用传感器的数量显着增加,它们的应用更加广泛,例如,除了更传统的环境监测和土地使用方法 [11]、[12] 之外,通过在谷歌地图和社交媒体应用程序中使用的遥感数据.随着遥感技术和平台的快速发展,包括无人机(UAV)、无人机、飞机以及机载和星载地球观测仪器,具有更高光谱、空间和时间分辨率以及多种结构的遥感数据量越来越大。传感系统正在以极快的速度增长。例如,美国国家航空航天局 (NASA) 的机载可见红外成像光谱仪 (AVIRIS) [13] 可以生成大规模高光谱数据集,其大小通常超过数 GB,数据收集率为 2.55 MB /秒。 2019 年,从欧洲航天局 (ESA) Sentinel-1、Sentinel-2 和 Sentinel-3 轨道中提取的多时相图像数量已达到 PB 级 [14]。正如 NASA 地球科学数据系统 (ESDS) 计划 [15] 所报告的,2018 年和 2020 年遥感数据进入地球观测系统数据和信息系统 (EOSDIS) [16]、[17] 数据存档的年增长率为 5.2 PB预计到 2022 年将增加到 47.7 PB。根据这种数据摄取率,到 2025 年,EOSDIS 存档中的数据量预计将增长到 246 PB 以上。
遥感数据的爆炸式增长对及时高效处理以支持多种遥感应用提出了严峻挑战[18]-[21]。考虑到它们的高容量和快速生成速度,遥感数据的处理自然成为一个大数据问题[22]-[24]。另一方面,深度学习技术以分层的方式从数据中学习代表性和判别性特征,最近在遥感应用中被积极采用,如图像预处理、基于像素的分类、语义特征提取和场景理解[25]-[30]。根据这一趋势,大规模遥感数据集的处理不仅需要应对与巨大的存储和计算需求相关的高数据量和速度,还需要应对遥感图像解释算法的多样性和复杂性。挑战在于数据存储、管理、处理、分析以及当今遥感应用整个流程中的几乎每一个阶段。
贡献:本文对处理遥感大数据的最先进方法进行了调查,并彻底研究了基于众所周知的 HPC 技术的现有分布式和并行方法,例如图形处理单元 (GPU)、现场可编程 门阵列(FPGA)和云计算。 通过这些方法在多个方面的比较,包括易用性、能力、可扩展性、和可靠性,讨论它们的优缺点,并得出结论。 我们得出的结论是,云计算由于其与高性能和面向服务的计算相关的先进功能,为遥感大数据的高效和可扩展处理提供了一种自然的解决方案。
出于这个原因,我们对利用云计算平台上分布式处理的并行性进行全面调查,同时解决与数据存储和工作负载分配相关的问题。更重要的是,为了在多个计算资源上有效地分配遥感应用程序的数据工作量,我们研究了一系列调度算法(GS),以提高云系统在处理大规模遥感数据集时的效率。我们对不同的 GS 进行了简要回顾,根据它们的优化方案对其进行了分类,并揭示了在遥感大数据处理流程中采用调度策略来充分利用并行性的重要性。
特别是,我们提出了一个关于大规模遥感数据集的案例研究,以展示处理遥感大数据的不同并行和分布式方法和算法。展示了评估结果,并通过评估给出了一些有用的建议。我们还讨论了充分利用分布式计算平台来加速处理海量遥感数据的未来挑战,包括数据管理、多平台集成、多目标优化等。
范围:由于大量的研究工作可能属于遥感和高性能计算的主题,我们将本文的范围界定如下。我们回顾了分布式计算技术,用于在 HPC 平台上加速具有复杂处理流程的遥感应用程序。我们不包括为遥感图像解释开发的特定知识发现方法的细节,并假设遥感应用程序的串行处理流程是预先指定的。由于我们特别强调基于云计算的并行实现,所以我们将具体描述基于 Spark 的云系统的分布式计算框架,而跳过其他 HPC 架构的并行处理机制的介绍。最后但并非最不重要的一点是,在文献中,存在一些基于业务解决方案的分布式方法来遥感大数据,例如 Google Earth Engine (GEE) [31] 和 Sentinel Hub [32]。这类方法直接依赖于现成的应用程序接口来处理遥感大数据,因此,本文不予讨论。
二、概述和分类
为了应对不断增加的遥感数据量,有几个重要的问题必须妥善解决。首先,在传统的单机环境下,加载难度极大将大量遥感数据存入本地存储器[33]。因此,分布式平台已成为解决大规模遥感数据集存储和开发问题的相关解决方案,因为现代分布式计算平台(如集群和云)提供了高效存储数据集的可能性,并分配了所涉及的繁重处理负载。在这种情况下,有限网络带宽下数据块的存储、传输和管理变得更加复杂[34],[35]。其次,从遥感大数据处理的角度来看,计算负载对数据量的依赖性与计算范式有很大不同[36],[37]。这种差异导致了不同的并行级别和数据划分策略,使得遥感算法的并行解决方案具有极大的挑战性。因此,独立于体系结构相关细节的遥感应用的可靠分布式实现非常重要。最后,在分布式体系结构上执行遥感大数据应用程序时,由于整个应用程序流程通常由多个子任务组成,这些子任务之间具有优先关系[38]–[40],因此将这些子任务适当地调度到计算资源上并确定其执行顺序至关重要[41],[42]。这个调度步骤决定了分布式平台的利用效率,并直接影响分布式数据处理的并行性。
在文献中,HPC 架构和技术取得了非常显着的进步。 目前,有几个高性能计算平台被用来促进遥感大数据的处理。 例如,GPU 可以在具有海量计算能力和高有效带宽的单个中央处理单元 (CPU) 上实现显着加速 [43]。 通过整合多个计算节点,集群和网格计算平台还为计算密集型遥感应用提供强大的数据容量、吞吐量和可用性[10]。作为最具前瞻性的计算范式,云计算与其他 HPC 平台相比,由于其高吞吐量、快速弹性和面向服务的计算,最近成为并行和分布式处理遥感大数据的理想平台 [44]-[ 47]。 将云计算平台纳入遥感大数据处理中,在数据存储、分发和处理方面具有重要优势。 此外,云等分布式平台可以集成专门的 HPC 资源,以利用这些资源的高计算能力,同时解决与数据存储和分发相关的问题,这些问题阻碍了遥感大数据处理技术的传统 HPC 实施。
在这篇评论文章中,我们回顾了专注于遥感大数据的分布式和并行处理的最新研究。 我们将不同 HPC 平台上现有的并行解决方案主要分为两类,即在多核 CPU [40]、图形处理单元 (GPU) [48]、GPU 与 CPU [49]、FPGA [50] 上实现的板载数据处理方法 ,以及在集群 [51]、网格计算平台 [52] 和云计算平台 [24] 上实现的存储库数据处理方法。 所有要研究的分布式和并行方法的分类如图 1 所示。
多核 CPU 通过在多个内核上并行执行遥感应用程序的多个操作来提供并行计算能力 [40]。 近几十年来,GPU 得到了积极的发展,可以将许多内核集成到一个 GPU 中。 一般来说,GPU 的核数更多,在并行计算方面比 CPU 更强大。 因此,GPU 可以提供足够的并行计算能力来执行复杂的遥感数据处理应用程序 [53]。 但是,CPU 是为通用计算而设计的,不仅包括并行计算,还包括算术和逻辑计算,其中 GPU 是不专业。 出于这个原因,还努力在 CPU-GPU 平台上开发分布式和并行方法,其中 GPU 被指定用于并行计算工作负载,而控制和逻辑工作负载被指定给 CPU [49]。 这样,CPU 和 GPU 的能力都得到了充分利用。 除了并行计算能力之外,FPGA 还支持可重构编程,通过该编程可以根据遥感数据的特征并行调整和执行遥感算法[54]。 上述HPC平台提供了强大的并行计算能力,但受限于单个GPU/FPGA/计算机上有限的计算资源,尤其是有限的内存数量。 因此,它们通常用于车载数据处理场景,其中必须减少繁重的计算负载并实时获得分析结果,同时传感器同时收集遥感数据[10]。
随着对大规模遥感数据处理的需求不断增加,这种分布式技术在处理大规模数据集时可能会遭受极长的计算时间的困扰。以独特的方式,集群和网格计算平台可以集成许多计算节点,以增强大数据处理能力。在计算资源不足以处理遥感数据的情况下,可以部署更多的计算节点以增强计算能力。作为先前开发的技术的演进,云计算代表了遥感大数据的并行和分布式处理的自然解决方案,因为它不仅对HPC而且在面向服务的计算和互联网规模数据存储方面具有先进的能力。具体来说,可以在云计算平台上部署许多功能强大的软件套件,方便大数据处理,如Hadoop的分布式文件系统 (HDFS) [55] 用于管理大型数据集或Spark/Hadoop (使用MapReduce模型) [56]-[60] 用于大规模遥感数据的分布式并行处理。因此,这些平台被广泛用于处理数据存储库,即处理以数据收集形式收集和存储的大规模遥感数据集 [9]。表1显示了将在本文中讨论的用于遥感大数据处理的一些现有分布式和并行方法的摘要。
三、 板载数据分布式和并行处理方法
在本节中,我们回顾了现有的用于遥感大数据处理的机载并行和分布式实现。 根据所开发的 HPC 平台,我们将板载方法分为五类:多核 CPU、单 GPU、多 GPU、CPU–GPU 和 FPGA。 我们在下面描述了每个类别中并行实现的细节。
A. 多核 CPU 解决方案
曾等人。 [61]提出了一种并行差分盒计数(DBC)算法对遥感图像进行分类。并行方法是在多核 CPU 上实现的。通过从图像中提取有用的纹理信息并将其与光谱信息相结合来获得良好的精度,而使用并行实现来估计分形维数,该并行实现源自效率低下的顺序 DBC 算法,并通过使用多线程技术在多核计算机上实现 DBC 发展而来.与串行 DBC 算法相比,并行 DBC 实现了 4 倍以上的加速,表明计算效率显着提高。
伯纳布雷等人 [62] 开发了一种用于在多核CPU上遥感高光谱图像的并行解混链方法。为了提高解混精确度,除了光谱信息之外,还合并由与图像像素相关联的空间上下文提供的补充信息。该并行算法在多核平台上使用OpenMP和英特尔公司数学核库来加速解混过程。与其他针对CPU/GPU体系结构开发的并行实现相比,该方法具有更好的性能和更高的加速比。该并行算法能够满足所有测试用例的实时性要求。
李等人。 [40]设计了一种用于遥感图像分类的并行多类支持向量机(MMSVM)。 并行 MMSVM 在多核上实现以及由 Ivy Bridge CPU 和 Intel Xeon Phi 协处理器组成的多核混合架构。 为了充分利用混合架构提供的并行计算能力,在并行 MMSVM 方法中加入了一系列优化策略。 根据真实遥感数据集的实验结果,验证了并行 MMSVM 不仅分类精度高,而且计算效率高。 该方法还通过跨平台性能比较,为选择最合适的遥感图像分类并行实现提供了一些见解。
总之,通过充分利用多核 CPU 提供的并行计算能力,可以实现相当大的加速。 算法的独立计算操作在多个核上并行执行,从而在不损失精度的情况下提高计算效率。 为了更显着的加速,研究人员使用 GPU 来实现并行算法,考虑到与 CPU 相比,GPU 通常具有更多的内核并且更有能力完成并行计算。
B. 单 GPU 解决方案
GPU 是一种非常流行的商品平台,适用于许多计算和/或数据密集型应用 [136],并已广泛用于遥感图像的实时分析。 已经为开发基于 GPU 的并行解决方案付出了相当多的努力。 由于篇幅所限,我们在下面选择并描述了一组具有代表性的和最新的发展。 表 1 给出了基于 GPU 的解决方案的完整列表。
谭等人。 [63]提出了一种并行特征提取方法,称为高斯-伯努利限制玻尔兹曼机,用于遥感图像分类。 虽然这种方法涉及训练逻辑回归层的计算密集型过程,但基于 GPU 的特征提取模块的并行实现可以显着减少预测时间。 在三个遥感数据集上进行了实验,以证明 GPU 实施的效率。 与传统分类器相比,基于GPU的并行算法在更短的执行时间内实现了更高的分类精度。
张等人。 [64] 提出了一种并行遥感图像重建算法,该算法将乘法器的替代方向方法(ADMM)结合到基于全变分的正则化方法中,以提高收敛速度。 由于这种复杂处理流程的高度复杂性,通过利用并行计算能力来加速重建过程,开发了一种 GPU 实现。 具体来说,根据波长区分遥感图像的过程可以在多个GPU内核上并行处理。 对两者进行评估的实验合成数据集和真实数据集表明,这种基于 GPU 的并行算法实现了重建精度和计算效率。
在[65],一个平行的相位相关算法对遥感图像配准。该算法的处理流程包括快速傅里叶变换(FFT)计算,计算密集型和分布在GPU核心执行。这样一个分布式计算方案可以充分利用GPU的并行计算能力,大大提高计算效率。此外,内存优化技术结合,进一步减少图像配准的计算时间。实验结果表明,该并行算法会导致更高的登记的准确性和较短的计算时间与CPU串行版本执行。
在[66]中开发了一种并行迭代约束端元(ICE)算法,用于从遥感高光谱图像中提取端元。 ICE算法涉及一个迭代过程,该过程采用线性模型来计算收集到的高光谱的丰度,计算复杂度高且非常耗时。 因此,ICE 算法的并行版本是在 GPU 平台上使用并行编程语言 OpenCL 实现的。 评估结果证明了基于 GPU 的并行算法在处理具有大量端元的大规模高光谱数据集时的高计算效率。
希门尼斯等人。 [67] 介绍了一种用于高光谱图像分离的并行空间光谱预处理算法。 预处理算法被合并到一个完整的高光谱分解链中。 整个处理流程是在不同的 GPU 架构上实现的。 通过分解和分配计算负载,GPU 实现导致空间光谱预处理过程的显着加速,并且由于并行算法的高计算效率,完整的解混链可以实时处理高光谱图像 . 此外,GPU 实现已被验证可扩展到不断增加的遥感高光谱数据量。
贾拉马戈等人。 [68] 开发了一种并行双深度稀疏概率潜在语义分析算法,用于分离遥感高光谱数据。 基于统计方法,当高光谱数据表示为一个大立方体时,原始算法的复杂性很高。 并行算法是在由大量计算内核组成的 GPU 上实现的。 耗时的矩阵计算被分配给 GPU 内核并并行执行以减少计算时间。 在四个高光谱数据集和两个不同的 GPU 上评估实验。 评估结果表明,与单 CPU 上的串行版本相比,GPU 版本在不降低解混精度的情况下实现了显着的加速。
李等人。 [69] 介绍了在 GPU 平台上实现的并行等距映射 (ISOMAP) 算法。 原始的 ISOMAP 算法是一种用于遥感图像降维的流形学习方法。 在并行实现中,特征分解过程是 ISOMAP 流程中最耗时的组件,它被分配给 GPU 以加速其执行。 利用 GPU 的并行计算方案,可以在很大程度上减少特征分解过程的计算时间。 实验结果表明,基于 GPU 的算法在计算效率方面优于串行版本,同时保证了相似的分类精度。
吴等人。 [70]提出了一种并行版本的遥感信号子空间识别最小误差方法。 对于高维和复杂的遥感图像,这种方法的串行版本在计算上可能非常昂贵,尤其是在反转大矩阵和执行奇异值分解时。 为了克服这个困难,除了并行处理之外,基于 GPU 的并行版本还利用优化策略来优化 GPU 资源的使用,例如块大小和寄存器数量。 此外,通过减少数据交换开销,还减少了 GPU 主机内存的使用。 在 Nvidia GeForce GTX 580 和 Tesla K20 GPU 上的实验结果证明了并行实现在加速率方面优于串行版本。
桑托斯等人。 [71] 实现了有损遥感图像压缩算法的并行版本。 该算法针对 ESA-Exomars 任务,被称为“Exomars 的有损压缩”(LCE)。 并行实现将数据块上计算最密集的操作(包括压缩和相应的解压缩步骤)分布在多个 GPU 内核上,以促进并行处理。 在具有不同空间和光谱维度的多个遥感数据集上进行了实验。 与在 CPU 上执行的串行版本相比,并行算法实现了大约 15 倍的加速。 并行 LCE 算法也被验证能够实时处理机载遥感图像。
Jiménez 和 Plaza [72] 开发了一种 HyperMix 工具,该工具由多种光谱分离算法组成,用于遥感高光谱数据。 每个算法都在具有串行版本和相应并行版本的 GPU 平台上实现。 当 HyperMix 在计算机上启动时,它会自动检测这台计算机是否配备了 GPU。 如果可以检测到一个 GPU 或多个 GPU,则撤销并行版本以执行。 否则,选择串行版本进行光谱解混。 很明显,由于利用了 GPU 的并行计算能力,并行版本的性能优于串行版本。 HyperMix 工具提供了一个全面的解决方案来管理各种解混合算法,并支持灵活开发高光谱图像解混合方法。 HyperMix 已由作者作为开源软件套件发布。
李等人。 [73] 实现了用于解释高光谱图像的自动目标生成过程 (ATGP) 算法的并行版本。 传统的ATGP是一种串行算法,旨在在目标尺寸小于单个像素的情况下检测场景中的目标。 由于大量的遥感数据,串行版本的计算量很大。 出于这个原因,通过利用多种优化技术,例如一级缓存和 cuBLAS 函数,在 GPU 上实现了并行 ATGP。 在 Nvidia Tesla K20 上进行了实验,以检查这种并行方法的实时处理能力。 与单 CPU 执行的串行版本相比,基于 GPU 的并行版本实现了高达 362 倍的加速,并且能够实时处理遥感图像。
在 [74] 中,通过表达可以在 GPU 上并行处理的矩阵运算,开发了极限学习机 (ELM) 算法的并行版本。 为了提高分类精度,其他基于 ELM 的方法,例如空间正则化算法和使用集成,也在同一 GPU 上设计和实现。 依托这些并行方法,采用像素级光谱分类器和异步分水岭算法,建立了兼顾光谱和空间信息的并行分类算法。 实验结果表明,并行算法在分类精度方面优于支持向量机(SVM)算法。 与串行版本相比,并行算法实现的高加速度显示了其对遥感高光谱数据的实时处理能力。
杨等人。 [75]提出了一种基于多智能体系统(MAS)的人工蜂群(ABC)方法来解决高光谱图像处理中端元提取(EE)的问题。 该方法将 EE 过程建模为优化问题,并应用 ABC 算法来确定此过程中最合适的结果。 为了提高计算效率,EE算法是在支持分布式计算的MAS平台上实现的,称为MA-ABC-EE。 为了产生最佳的 EE 结果,解决方案探索过程分布在多个代理(即人造蜜蜂和食物资源)上,代理协作探索最佳解决方案。 MA-ABC-EE算法提高了EE的准确性和效率。
在 [76] 中,使用 OpenCL 编程在 GPU 和 FPGA 平台上开发了一种用于处理遥感高光谱图像的并行分解算法。 为了探索并行能力对于不同类型的 GPU 和 FPGA,并行算法分别在两种 GPU(Tesla K40c 和 Nvidia GeForce GTX 980)和一种 FPGA(Bitware Stratix V Altera FPGA)上实现。 实验结果表明,基于GPU的实现在处理大尺度遥感图像时优于基于FPGA的实现,而基于FPGA的实现在处理小尺度遥感图像时具有更好的计算效率。 两种实现都能够对遥感图像进行车载和实时处理。
吴等人。 [43]、[77]、[78] 开发了一系列基于 GPU 的并行方法,用于实时处理遥感数据。 第一项工作是一种并行稀疏表示分类算法,将相关正则化项和光谱保真度项合并到稀疏表示模型中,以提高图像分类精度[43]。 并行版本是通过使用 Nvidia 的计算统一设备架构 (CUDA) 接口在 GPU 上实现的。 实验结果验证了基于 GPU 的并行实现的高精度和计算效率。 以类似的方式,作者开发了一种用于遥感图像分类的稀疏多项逻辑回归算法的 GPU 并行实现 [78]。 串行版本的加速证明了 GPU 实现在实时遥感数据处理中的能力。 通过结合约束稀疏非负矩阵分解,他们进一步提出了一种基于 GPU 的并行解混合算法,用于遥感高光谱图像。 解混合模型引入了稀疏项和最小距离的概念,以分别放宽对丰度和端元的限制。 并行解混合算法在 GPU 上实现,并通过使用 CUDA 编程进行加速。 与其他基线算法的比较表明,这种 GPU 实现实现了 20 倍的加速,同时保持了类似的解混精度。
在Jimenez等人本文设计了一种用于遥感图像分析的空间-光谱EE算法。针对算法复杂度高、耗时长的缺点,在GPU平台上实现了该算法,以加快算法的执行速度。在Nvidia CUDA的支持下,还采用了其他几种优化策略进行进一步改进。将这种基于GPU的并行算法与著名的基线算法进行了比较。比较结果表明,充分利用GPU的并行计算能力, GPU实现在计算效率上优于基线算法,但保证了较高的EE精度。
Diaz等人[80]提出了一种并行有损压缩算法,该算法在两个配备低功耗嵌入式gpu的NvidiaJetson板上实现。考虑到压缩算法的高复杂性和不断增加的遥感数据数量,开发一个在有限的板载计算资源下实现低功耗和实时并行。 [80] 中的并行算法展示了其计算效率和实时车载数据处理能力。 此外,还验证了耗电量显着降低。
吴等人。 [81] 使用 CUDA 在 GPU 上开发了一种有效的并行像素纯度指数(PPI)算法。 当这种并行算法在 Nvidia GTX590 GPU 上实现时,与在单个 CPU 上执行的串行方法相比,使用 L1/L2 缓存和全局内存几乎可以实现 601 倍的加速。 结合其他几种优化方法(例如,使用共享内存设备),在 Tesla C1060 GPU 和 Fermi GTX590 GPU 上实现的并行 PPI 算法分别比基于 CPU 的速度提高了 1204 倍和 2465 倍 串行实现。 与商用图像可视化环境 (ENVI) 软件相比,Fermi GTX590 GPU 上的并行实现实现了 769 倍的加速。
TX590 GPU 实现了 769 倍的加速。 Quesada-Barriuso 等人。 [82]提出了一种基于GPU的并行分类算法,依靠光谱-空间信息对遥感图像进行分类。 串行分类流程涉及大量本地计算,这些计算可以通过 GPU 上的并行处理来加速。 此外,该分类算法还涉及去除噪声的预处理步骤和块异步更新步骤,两者都可以分解以方便并行处理。 实验结果表明,与在配备多核 CPU 的计算机上实现的 OpenMP 版本相比,在 GPU 平台上实现的并行算法实现了 8.2 倍的加速。
伯纳贝等人。 [83] 介绍了一种在 GPU 和多核计算机上实现的并行全高光谱分解链算法。 该算法由三个使用 OpenCL 和 clMAGMA 实现的子模块组成。 在 GPU 和多核 CPU 平台上的并行实现通过实验在准确性、计算效率和功耗方面进行了评估。 据报道,这两种实现都在满足实时应用程序要求的同时实现了很高的解混精度。 还报告了这两种方法在实时数据处理中的功率效率。
总之,上述方法证明在 GPU 上实现的并行遥感算法实现了显着的加速并能够进行实时数据处理。 一般来说,GPU 中的核心数量越多,实现的加速就越高。 同时,我们也可以确认良好的内存管理和优化是必要的。 全局内存和共享内存对于调解数据交互非常有用,为提高计算效率做出了相当大的贡献。 还可以观察到,除了最小化执行时间之外,一些工作还专注于节省功耗。 事实上,这个选项对于机载数据处理场景,应考虑最小化目标,其中有效载荷应最小化。 由于实现的加速取决于内核数量,研究人员进一步在集成大量内核的多个 GPU 上设计并行算法。
C. 多 GPU 解决方案
第 III-B 节介绍的 GPU 解决方案是通过使用单个 GPU 实现的。 还存在许多集成多个 GPU 的分布式和并行方法来加速遥感应用程序的执行,下面将详细介绍其中的一些方法。
马特尔等人。 [93] 提出了一种称为 pFUN 的并行算法,用于分别使用 CUDA 编程和 cuBLAS 库在两个 GPU 上完全分离遥感高光谱图像。 解混合流程中的某些计算密集型操作在这两个 GPU 上执行,以提高整个处理流程的计算效率。 此外,数据管理经过精心设计,可与 pFUN 算法协作。 取消混合过程中的所有数据都保存在内存中,以便有效加载。 全局内存和共享内存都用于数据重用。 共享内存还与并行缩减模式一起使用,以减少完全分离的执行时间。 通过这些方式,pFUN 方法优于文献中其他竞争的基于 GPU 的并行解混合算法。
Seville 和 Plaza [94] 开发了一个用于遥感数据存储的存储库系统,用户可以在其中通过 Web 服务上传和检索数据。 上传图像后,可以通过在多个 GPU 上实现的并行光谱分离算法生成其元数据,即光谱纯成分和分数丰度。 对该系统进行了评估,并在具有 44 个 Nvidia Tesla C2050 GPU 的 CETA-CIEMAT GPU 集群上评估了并行光谱分离算法。 评估结果表明,该存储库系统可作为有效的遥感数据存储库供公众使用。 并行光谱分离算法也被证实可以被这些 GPU 加速,并且能够有效地处理上传的图像。
李等人。 [95]提出了一种集群差分脉冲编码调制(C-DPCM)方法的并行实现,这是一种基于预测的遥感图像无损压缩算法。 这种方法的串行版本尽管具有良好的压缩性能,但计算复杂度高,执行时间长。 为了解决这个问题,在配备多个 GPU 的平台上实现了并行 C-DPCM。 一组架构策略,例如全局内存、共享内存、寄存器和多流,用于进一步提高计算效率。 GS 进一步用于将表示为类的计算任务分配到 GPU 上。 实验在由 GeForce GTX 1080Ti GPU 和四个 GPU 组成的多 GPU 平台上进行。TITAN X GPU,与串行版本相比,速度提升高达 1000 倍,而精度损失可忽略不计。
根据前面对多GPU解决方案的描述,我们注意到在多GPU上实现的并行算法总是可以在不损失精度的情况下获得很高的加速率,这与在单GPU上并行实现的讨论中得出的结论相似。 我们还注意到,在多个 GPU 上实现的并行算法比通过单 GPU 实现获得的加速更显着。 另一个观察结果是,调度策略对于确定将计算任务适当地分配到 GPU 内核上是必要的,因为由许多内核组成的多个 GPU 用于并行处理遥感数据。 前面讨论的基于 GPU 的方法都侧重于利用 GPU 的并行计算能力,而忽略了 CPU 处理通用计算任务的能力。 考虑到这一点,研究人员已经在 CPU-GPU 平台上开发了混合并行算法,这将在第 III-D 节中进行描述。
D. CPU–GPU 解决方案
与 CPU 不同,GPU 不适合执行通用计算,例如算术和逻辑运算。 在下文中,我们将介绍几项寻求 CPU-GPU 混合解决方案以加速遥感应用的代表性研究,例如遥感图像解混合和分类。
托蒂等人。 [49] 通过混合 CPU 和 GPU 设计了一种用于实时高光谱分解的并行算法。 解混合流包括三个主要步骤:估计端元的数量、估计端元的光谱特征和估计无约束的丰度。 这种分离算法的并行实现是分别使用 OpenMP 和 CUDA 在 CPU 上开发的,以及分别使用 cuBLAS 库在 GPU 上开发的。 通过充分利用 CPU 和 GPU 的并行计算能力,这种混合实现可以满足车载遥感应用的实时性要求。
吴等人。 [99] 提出了一种并行复合核方法,用于基于 SVM 的遥感图像分类。 并行算法在 CPU-GPU 平台上实现。 为了充分利用CPU和GPU的并行计算能力,将复合内核的计算指定给GPU,通过CUDA编程加速计算密集型任务,而将其他与控制和逻辑计算相关的任务分配给CPU . 在不同的遥感数据集上评估了这种混合并行算法的性能。 评估结果表明,与串行分类方法相比,CPU-GPU平台加速的并行实现可以在不损失分类精度的情况下实时处理遥感数据。
吴等人100提出了一种并行监督谱空间分类算法,该算法通过稀疏表示构造概率模型,并将空间先验作为吉布斯分布进行建模。为了提高分类性能,这些算法结合了稀疏表示和马尔可夫随机场,可由GPU加速。并行算法在混合CPU-GPU平台上实现,将海量数据处理操作分配给GPU,将其他计算任务分配给CPU内核。以这种方式,CPU和GPU的计算能力得到充分利用。实验结果表明, CPU-GPU混合实现为遥感数据的实时处理提供了有效的解决方案。
谭等人。 [101] 介绍了一种基于并行 SVM 的分类算法,并使用 CUDA 和 OpenMP 在 CPU-GPU 平台上实现。 带有 CUDA 的 GPU。 这样的实现可以大大减少 GPU 和主机处理器之间的通信开销。 另一方面,通过使用 OpenMP 编程在多核 CPU 上实现“一对一”算法来解决多类分类问题。 在实验中,著名的 LIBSVM 工具被用作性能评估的基准。 实验结果证明了这种 CPU-GPU 混合解决方案的高计算效率。
杨等人。 [102] 提出了一种并行的无监督波段选择算法,并在混合 CPU-GPU 平台上实现了它。 与 EE 方法类似,该波段选择算法通过使用 N-FINDR 解混合方法检测遥感图像中最独特的波段。 解混合流中涉及的辅因子扩展计算可能会导致无监督波段选择的沉重计算负担。 这些计算密集型任务在 CPU-GPU 平台上并行分解和处理。 实验结果表明,与在单个 CPU 上执行的串行版本相比,混合并行算法通过平衡 CPU 和 GPU 之间的计算负载实现了显着的加速。
简而言之,在 CPU-GPU 平台上实现的分布式并行方法可以通过充分利用 CPU 和 GPU 的并行计算能力来实现高计算效率并满足对性能敏感的遥感应用的实时性要求。 对于此类并行实现,算术和逻辑计算应分配给专门处理此类计算任务的 CPU,而海量数据处理操作应分布在由多个内核组成的 GPU 上以实现并行计算。 除了 CPU 和 GPU 之外,还有另一种类型的 HPC 设备可以提供并行计算能力。 在第 III-E 节中,我们回顾了在 FPGA 上实现的并行遥感算法。
E. FPGA 解决方案
广场等人。 [9] 对基于 FPGA 的解决方案进行了全面调查,这些解决方案有助于实时处理遥感图像 [103]-[106]。 在这篇评论文章中跳过了有关这些方法的实现细节。 我们专注于最近关于基于 FPGA 的解决方案的两项研究。
基于改进的顶点分量分析算法,Cervero 等人。 [107] 在 FPGA 平台上开发了一种灵活和自适应的高光谱分解算法,用于实时遥感应用。 由于 FPGA 的动态可重构编程特性,这种基于 FPGA 的方法的并行度可以通过在遥感数据的分布式处理过程中调整处理元件的数量来调整。 使用著名的 Cuprite 高光谱数据集在 Xilinx Virtex5LX110T FPGA 上进行了实验。 该 FPGA 实现经验证能够进行实时端元提取,并可扩展到处理单元的数量,而计算时间的增加微不足道。
冈萨雷斯等人。 [108]开发了一种并行图像空间重建算法,用于估计遥感高光谱数据光谱分离中的正分数丰度。 这种方法是在 FPGA 平台上实现的,其中包含一个直接内存访问模块,并采用预取策略来减少通信延迟。 在 Virtex-4 XC4VFX60 FPGA 上的实验结果表明,并行算法的 FGPA 实现比 CPU/GPU 版本实现了更显着的加速率。 因此,FPGA 实现能够以实时方式处理机载遥感数据,并且在集成到 FPGA 中的处理元件的数量方面表现出良好的可扩展性。
值得强调的是,在 FPGA 上实现并行算法实际上是一项面向硬件的任务,并且在计算效率方面往往优于 CPU 或 GPU 的软件实现。 除了并行计算能力之外,FPGA 还允许动态可重构编程,允许调整参数,例如处理元件的数量。 这一区别特性使得在 FPGA 上实现的并行算法不仅实现了实时遥感数据处理的计算效率的显着提高,而且通过协调 FPGA 内部的处理元件,提供了能源效率交易的灵活性。
F. 讨论
为了总结本节讨论的板载数据处理的分布式和并行方法,所有这些方法试图利用在其上实现的 HPC 平台的并行计算能力。 此外,一些方法使用了额外的优化方法来进一步提高计算效率。 对于单 GPU 和多 GPU 上的并行算法,由于需要累积生成的中间数据并在处理核上执行的计算任务之间交换这些数据,因此总是采用内存管理优化方法。 对于 CPU-GPU 平台上的并行算法,使用 GS 将计算任务分配给 CPU 和 GPU,以平衡它们之间的工作量。 对于在 FPGA 上实现的并行算法,通常使用动态可重构编程来调整处理元件的数量以实现良好的可扩展性。 但是,我们注意到这些加速方法中的每一种都是在特定的 HPC 平台上开发的。 开发一个能够为遥感数据处理应用程序构建端到端工作流的通用编排框架至关重要。 这些挑战将在后面的第七节中讨论。
四、 存储库数据并行和分布式处理方法
本节调查了用于遥感大数据的存储库处理的并行和分布式实现的最新发展。我们主要讨论在计算机网络上开发的三类存储库并行和分布式方法,即基于集群的解决方案、基于网格计算的解决方案和云计算的解决方案。我们在下面描述每个类别的现有方法的实现细节。
A. 集群解决方案
在处理大规模数据集时,板载分布式和并行方法可能会遭受极长的计算时间。 集群平台的主要优点是可以将更多的计算节点连接在一起,以解决计算负载大的问题。 在计算资源不足以处理遥感数据的情况下,可以部署更多的计算节点,以提高处理遥感大数据的效率和吞吐量。
张等人。 [109]根据遥感图像的组和区域提出了一种基于聚类的压缩方法。 串行压缩方法包括两个步骤,即用于将图像分配到不同适当区域的聚类信号子空间投影和旨在将光谱带分组的最大相关带聚类。 遥感影像先按组压缩,再按影像区域进行压缩。 并行版本在一个集群上实现,包括四台台式机,并通过一个实用的远程评估传感应用。 评估结果表明,利用集群的并行计算能力可以提高计算效率。 与台式机上的串行版本相比,并行算法平均实现了 2.3 倍的加速。
广场等人。 [110] 在美国宇航局戈达德太空飞行中心的贝奥武夫集群 Thunderhead 上研究了 EE 算法的几种并行化策略。 选择并评估了两类算法作为案例研究。 第一类包含基于凸几何概念的PPI算法和N-FINDR算法,而迭代误差分析算法属于第二类。 此外,通过考虑空间信息和光谱信息,设计了一种并行的自动形态EE算法。 与其他不考虑空间信息的并行算法相比,Thunderhead 上的并行实现可以保证高效而准确的 EE。 实验结果证明,基于集群的解决方案通过在多个集群节点之间分配计算负载并操纵这些节点之间的通信,显着提高了计算效率。
杜等人。 [111]采用主成分分析(PCA)对遥感数据进行光谱去相关。 通过研究去相关过程中数据压缩的性能,作者提出了一种并行分段 PCA 算法,以促进有效的遥感数据压缩。 考虑到主成分之间的依赖关系,PCA变换矩阵存储在压缩比特流中。 将遥感数据集分解为多个分区并存储在不同的集群节点上,以避免集群节点之间的频繁通信。 因此,并行实现显着提高了 PCA 算法的计算效率,而通信开销很小。 此外,这种基于集群的解决方案非常可靠,因为每个集群节点都存储了变换矩阵的副本。
总之,基于集群的并行实现可以通过利用集群的分布式和并行计算能力来显着加速遥感数据处理。 还有其他一些研究结合了额外的优化方法来减少集群计算引起的开销,例如[110]中用于减少通信开销的优化策略和[111]中用于减少数据传输量的数据管理策略。 然而,正如这些研究报告的那样,在集群上并行处理遥感大数据时,有必要考虑数据管理和流量控制策略。 分布式集群节点的集中协调将增加开发基于集群的解决方案的难度。
B. 网格计算解决方案
网格计算类似于集群计算,其中多台计算机相互交互,并一起工作来完成计算任务。因此,网格计算也是一个处理遥感大数据的合适平台。这两个计算范式之间的主要区别是,集群中的资源位于一个位置,通过快速局域网连接,而网格中的资源通常是地理分布在不同的位置和连接通过一个广域网或互联网。此外,集群计算以集中的方式组织和管理多个资源,但每个网格计算节点都有自己的资源管理器。
Sun 等人的工作 [115] 报告了一个基于网格的原型系统,名为 RSIGrid,用于基于语义的遥感图像检索。 RSIGrid 针对遥感影像的体积和复杂性不断增加的问题,提供了一种资源共享方案,可以共享大量分布式遥感数据集。 该检索系统依靠领域本体将遥感元数据转换为语义实例,从而可以通过抽象语义层面的知识推理来检索遥感图像。 在网格计算环境中的实验结果表明,基于语义的检索在召回率、精度和查询响应时间方面优于传统的基于关键字的检索方法。
由于网格系统中的终端用户和数据资源可以分布在不同的位置,因此由于网络连接的低速,远程感测数据的检索和存档可能会遇到较长的响应时间。王等人116采用了一个以网格为动力的地理信息科学系统,以加速对大量地球观测数据的存档和分发。为了弥补网格环境中高性能空间数据分布与网络延迟之间的差距,提出了一种优化协议GridJet。通过加速通信和异构网络的结合,GridJet大大提高了基于网格的地理信息系统的传输速率。与传统的网络传输协议相比, GridJet引擎在网格环境下的分布距离超过10000 km时,响应时间提高了8倍。
AI等人117提出了一种定量检索遥感图像的动态工作流表征方法。为了方便网格上大型数据集的处理,该方法首先利用抽象工作流模型描述遥感算法的工作流,并将抽象工作流映射到具体工作流上,以便在网格环境下执行。进一步介绍了一种新的基于网格的遥感定量检索(118)图形工作数据结构。图形工作可以映射到不同的网格平台根据遥感算法的实际要求。 因此,这种新的数据结构更灵活,更适应网格系统的动态特性。 上述两种方法都提供了一种方便的方式来利用网格计算服务进行数据检索,而无需额外管理异构和分布式资源。
库苏尔等人。 [119]、[120] 引入了基于网格的洪水监测系统,该系统集成了地面传感器数据和地理空间数据,以评估洪水灾害和与水有关的疾病的风险。 网格基础设施整合了地理上分布的多个组织的资源,并支持遥感数据处理的自动工作流管理。 一旦用户在系统中选择了一幅遥感图像,就会自动生成一个工作流,并在网格计算资源上执行以生成相应的洪水图。 在洪水测绘过程中,采用神经网络方法进行遥感图像分割和分类。 通过利用网格技术,基于网格的系统能够快速获取遥感数据,并大大减少了洪水测绘所需的计算时间。
与基于集群的解决方案类似,基于网格的并行实现可以通过集成多台计算机显着提高遥感大数据应用的效率,但需要复杂的资源协调策略。 由于网格中的计算资源分布在不同的位置,网格节点的分布和异构性会使开发基于网格的解决方案更加复杂。 为了克服集群和网格系统的限制,研究人员转向云计算平台,其中部署了强大的软件套件(例如 Hadoop 和 Spark)来管理大型计算资源池,以促进大规模遥感数据集的处理 . 在下一小节中,我们将回顾与云计算平台最相关的工作。
C. 云计算解决方案
作为先前开发技术的演进,云计算代表了遥感大数据并行和分布式处理的自然解决方案,因为它具有高性能和面向服务的计算以及互联网规模数据存储的先进能力。 具体而言,可以在云计算平台上部署许多强大的软件套件,以方便大数据处理。 已经有相当多的基于云的并行解决方案,其中最具代表性和最新的解决方案如下所述。
米什拉等人。 [123] 提出了一种基于云的系统,用于在由社区云、传感器云和计算云组成的多云平台上监测蓝藻有害藻华 (CyanoHAB) 的全球扩散。 三种云是很好地集成并用于不同的目的。 社区云用于识别受 CyanoHAB 影响的位置。 由许多传感器组成的传感器云负责验证这些位置。 计算云最终以有效的方式处理其他两个云收集的社交媒体数据和传感器数据。 实验结果表明,该监测系统可用于以较低的计算成本快速检测 CyanoHABs。
基里塔等人。 [47]提出了一种在云计算平台上对遥感图像进行监督分类的并行实现。 这种基于云的方法分别包括项目定义层、分类层和分布层三个主要步骤,以允许用户开发遥感大数据应用程序。 该云实现基于知名的 MapReduce 引擎和 Hadoop 平台,提供分布式存储和并行计算能力,以及高吞吐量和高可靠性,使用户可以方便地开发应用程序。 此外,可以很容易地结合外部分类算法来开发它们的并行实现,进而提高处理大量遥感数据的能力。
孙等人。 [24] 提出了一个有效的框架,用于加速云计算平台上的遥感大数据应用。 除了充分利用云提供的分布式和并行能力外,该框架还采用任务 GS 通过提高遥感数据处理过程的并行性来进一步提高计算效率。 首先,特定的遥感应用被描述为有向无环图(DAG)。 然后,构建优化模型以确定最小化应用程序总执行时间的最佳任务分配。 最后,采用基于量子启发进化算法 (QEA) 的任务 GS 来确定这些决策变量的值,包括 DAG 中可以并行处理的每个节点的并行度值。 实验结果表明,与串行处理流程相比,该框架使遥感大数据应用程序能够实现显着的加速。 除了计算效率高之外,该框架还被验证在大量遥感数据上具有良好的可扩展性。
郑等人。 [125]、[126] 提出了一种基于分布式解混合的算法,用于从云计算平台上的遥感图像存储库中检索内容。 在这种分布式算法中,EE和丰度估计以分布式方式设计,以加速光谱特征信息的收集。 光谱解混算法在集成HDFS和Spark的云计算平台上实现,以方便遥感高光谱图像的存储、管理和检索。 该云解决方案还通过以下方式提供应用程序接口其遥感图像的管理易于实现和验证。
Haut等[127]提出了一种遥感图像的分布式并行光谱分析和压缩算法。为了解决降维问题,该算法采用非线性深度自编码器神经网络来代替经典主成分分析算法中常用的线性神经网络。该分布式方法是在基于spark的云计算平台上实现的,该平台可以提供高效的内存计算能力和良好的可伸缩性。在两个著名的遥感数据集上进行了实验,以进行性能评价。评价结果表明,该云实现不仅能够有效地处理遥感图像,而且能够实现大规模数据集进行管理。
随着 PCA、总变异和软阈值的集成,Yin 等人。 [129]提出了一种遥感图像并行恢复算法,该算法在基于Spark的云系统上实现。 该方法采用数据传输、矩阵乘法和共享内存三种优化方法来实现高还原精度,不仅达到高精度,而且计算效率高。 实验结果证明了该方法在恢复大量遥感图像方面的能力。 同样,李等人。 [130]提出了一种并行PCA算法从遥感图像中提取特征。 该算法由两个主要过程组成,即协方差矩阵的特征分解和矩阵投影的变换,它们是在基于Hadoop的云系统上采用MapReduce分布式计算模型实现的。 与在单 CPU 上运行的串行版本相比,并行 PCA 算法导致计算时间显着减少。
夏等人。 [131]提出了一种并行的遥感图像分类方法,可应用于作物涝渍检测。 该方法利用Spark提供的库在云计算平台上实现了基于人工神经网络和SVM的两种分类算法。 这种云实现在分类准确性和计算效率方面都经过了彻底检查。 并行处理实现的加速与云计算节点的数量成线性关系。 同样,艾玛等人。 [132]在基于Hadoop的云计算平台上实现了另一种用于遥感图像分类的并行方法。 实验结果表明,这种云实现能够有效地处理 PB 级的大量遥感数据集,并且可以扩展到不断增长的数据量。
值得简要讨论其他几种基于云的遥感大数据并行处理解决方案。 吴等人。 [46] 在云计算平台上提出了一种分布式并行 PCA 算法方法。 通过使用 HDFS 和 Spark 来支持分布式对遥感大数据进行管理和计算,云实现实现高加速度,不损失精度。 顾等人。 [133] 开发了一种并行 PPI 算法,用于在基于 Spark 的云平台上分离高光谱数据。 进行了广泛的实验以验证这种基于云的方法的高计算效率以及与在单个 CPU 上运行的串行版本相比相似的 EE 精度。 Patterson 等人开发的并行方法。 [134] 在集成 Hadoop 和 Accumulo 的云计算平台上,能够分析卫星产生的大规模遥感数据。 该云解决方案采用多个可并行执行的数据共享服务,充分利用云计算资源的分布式计算能力。
值得一提的是,除了Hadoop和Spark平台(一般作为私有云上的计算引擎),还有一些知名的公有云提供了计算引擎处理遥感大数据的能力,比如 如 GEE2 和 ArcGIS Online (AO)。3 但是,当使用 GEE 和 AO 操作大数据工作负载时,用户需要通过服务提供商定义的应用程序接口使用特定的内置功能。 因此,由于缺乏必要的应用程序接口,一些特殊的数据处理程序无法在通用的 Hadoop/Spark 平台上实现。
总结本节,基于云的分布式和并行算法可以通过利用云计算提供的高性能和灵活的计算能力促进遥感大数据的高效处理。 除了计算效率之外,文献中还深入研究了不断增加的数据量和计算资源数量的可扩展性。 最近的一些研究试图引入业务流程,在云计算平台上构建完整的端到端遥感数据处理流程,其中特定应用程序的子任务被视为组件,并以顺序和并行方式集成[124]。更重要的是,通过确定可并行化组件的最佳数据分区策略和优先级约束组件到云计算节点上的最佳任务分配,GS 已被用于进一步提高数据处理工作流的并行性。
D. 讨论
基于对存储库数据处理方法的讨论,我们注意到,由于 Spark 和 Hadoop 框架提供的高性能和可扩展的计算服务,云计算平台优于集群和网格系统。 对于基于集群的解决方案,减少通信和数据管理是两个主要问题。 但是,这些问题可以通过集成到云系统中的 Spark/Hadoop 工具来妥善解决。 此外,Spark/Hadoop 还可以保证数据量和处理节点数量的可扩展性。 此外,尽管在开发用于处理遥感大数据的端到端框架方面做出了努力[124],但仍然需要妥善解决其他几个重要挑战,例如标准化和多平台集成,这将在后面讨论。
五、云计算架构的并行开发
通过比较所有用于机载和存储库数据处理的分布式和并行方法,在易用性、能力、可扩展性和可靠性方面,我们得出结论,云计算是高效处理遥感大数据的最有前途的范式,因为 它不仅具有高性能计算能力,还具有面向服务的计算能力。 简单地说,表 2 提供了不同 HPC 平台在开发用于遥感大数据处理的分布式和并行方法方面的比较。 综上所述,由于计算资源有限,机载分布式技术无法完全应对大规模遥感数据集。 它们更适用于实时遥感数据分析场景。 相反,存储库方法是在具有分布式计算资源的平台上开发的,因此可以扩展到增加具有高可靠性的遥感数据集的数量。 更重要的是,在虚拟化技术强大的管理工具的支持下,基于云计算的解决方案在快速部署和快速弹性方面优于基于集群和基于网格的解决方案。
考虑到这一结论,在本节中,我们将专注于云计算架构,并研究用于充分利用分布式数据处理的并行性的最新技术。 从初步介绍云计算的并行处理机制开始,我们研究了采用调度策略来增强数据级并行性和任务级并行性的意义。 此外,我们对流行的 GS 进行了调查,并简要讨论了如何开发基于元启发式的调度策略。
A. 云计算机制
云计算是一种流行的计算范式,可以提供分布式计算和大规模数据存储的能力。 云计算凭借其在高性能计算、可扩展性、可靠性和快速部署等方面的显着优势,已成为遥感大数据高效处理最有前景的平台。 在讨论基于云的遥感大数据处理解决方案的最新进展之前,我们简要介绍了云计算平台上的分布式编程模型、计算引擎和存储系统。
分布式编程模型:在分布式环境中处理大量数据的最广泛使用的模型是 Google 开发的 MapReduce [137]。 MapReduce 模型充分利用了云计算架构提供的 HPC 能力。 具体来说,通过使用 MapReduce 模型,计算任务的处理由两个分布式操作组成,即“map”和“reduce”。 将所有数据集组织为键/值对,“map”函数为每个数据对生成一组中间结果。 通过这种方式,一个任务被划分为若干个可以并行执行的独立子任务。 另一方面,“reduce”函数负责收集所有具有相同中间键的中间结果并将它们合并以获得原始任务的最终结果。 从根本上说,MapReduce 模型使开发人员能够以高效灵活的方式管理大型集群的计算资源。
计算引擎:Apache Hadoop4 因其可靠性和可扩展性以及开源特性而成为云计算中著名的分布式计算引擎。 Hadoop 已成功应用于工业和学术领域,用于构建各种云系统 [138]、[139]。 然而,Hadoop 的一个主要限制是它不支持复杂的数据处理流程。 Apache Spark,5 为内存计算实现了容错抽象,现已成为用于大数据分布式处理的最强大的云计算引擎 [46]。 Hadoop 和 Spark 的主要区别在于 Spark 中“map”函数的输出数据存储在内存中,而 Hadoop 数据需要写入本地磁盘。 Spark中的内存计算机制相比传统计算引擎显着提升了分布式数据处理的效率。 与 Hadoop 中的数据复制方案不同,Spark 使用弹性分布式数据集 (RDD) 的数据结构扩展了 MapReduce 模型,以支持容错数据存储,并提供允许快速数据恢复的接口。
存储系统:大数据应用的分布式处理需要一个动态的存储机制来将数据分布在多个地理位置。 HDFS很好地满足了这一要求,它可以为大规模数据集提供高吞吐量的服务。 Spark 提供了通用接口,允许使用存储在 HDFS 中的数据文件作为输入 RDD。 HDFS 是一个高度可靠的分布式文件系统,可以部署在集群上。 一个大型数据集被划分为多个相同大小的块(通常为 64 MB)[140]。 每个块都有多个(默认为三个)分布在不同机器上的副本。 因此,HDFS 实现了高容错性。 HDFS 提供了常用的操作界面,例如创建、写入、关闭和删除文件。 HDFS是在由一个主节点和多个从节点组成的主/从架构中开发的。
为了支持遥感大数据的并行和分布式处理,最好分别使用MapReduce模型、Apache Spark和HDFS作为分布式编程模型、计算引擎和存储系统,开发基于云的解决方案。 图 2 概述了用于海量遥感数据处理的云计算框架(改编自 [46])。 该框架建立在云环境之上,可以分解为三个层次:接口层、引擎层和硬件层。 硬件层包括所有计算资源,例如物理/虚拟机、存储设备和网络设备。 虚拟化过程对于将所有物理资源转换为虚拟资源是必要的,以构建一个提供分布式处理能力的高性能、灵活和共享的计算资源池。 引擎层包括一个主节点和一个处理 RDD 实例的从节点集群。 通过执行驱动程序,master与slave进行通信,完成分布式编程模型中的“map”和“reduce”操作。 在接口层面,Spark 提供了与 HDFS 的 MapReduce 接口,以支持大规模数据集的动态存储和分发。 通过利用分布式计算引擎和MapReduce模型,遥感大数据处理应用可以并行和分布式的方式实现。
B. 并行性开发
大多数现有的基于云的分布式方法只专注于通过对遥感数据进行分区并在云上并行处理它们来开发数据级并行性。 最近在 [24] 和 [124] 中的研究表明,通过在分布式数据处理过程中利用任务级并行性,采用任务调度技术进一步提高云系统的计算效率具有重要意义。 一方面,遥感应用程序的处理流程可能会对子任务的执行施加优先约束。 另一方面,在计算资源有限的情况下,每个可并行化任务的数据分区数量也直接影响 Spark 上应用程序流的并行性。 正如 [24] 和 [124] 中所揭示的,通过部署更多的执行器节点,分布式处理实现的加速不会线性增长,并且会由于执行器节点之间的通信开销大幅增加而受到影响。 在这种情况下,良好的任务分配调度和数据分区策略有利于提高云系统的利用率,减少并行应用流的执行时间。 最终进度的好坏从根本上决定了并行度,进而决定了遥感大数据处理的计算效率。
基于这一观察,我们意识到,当2.基于Spark的云计算框架,用于遥感大数据处理(改编自 [46] )。在云系统上对大型遥感数据集进行处理,需要一种有效的调度策略来寻求计算负载的划分和分布的优化解。考虑数据级并行性和任务级并行性的调度问题是复杂的,特别是对于大型数据集和复杂的遥感应用。Sun等人 [24] 开发了严格的优化模型,以将上述调度问题表示为整数程序。具体来说,大数据处理的时间框架分为一系列时间段。调度模型定义一组二进制变量以表示任务是否在特定时隙上执行,并且定义一组整数变量以指示为每个可并行任务指定的执行器节点的数目。依靠这两组决策变量,可以计算每个任务的开始时间和结束时间,并最终确定整个应用程序的完成时间。调度问题是在满足优先约束和资源约束的情况下,求决策变量的最优值,以达到最短的完成时间。
在Sun等人S调度模型 [24],优化目标是最小化大数据处理的总执行时间,这是许多遥感大数据应用程序的主要关注点。 但是,调度模型也可以包含其他优化目标或联合优化目标,例如云平台的能源消耗和货币成本。 例如,[135] 中遥感图像分类应用程序的云实现开发了一个多目标调度框架,该框架联合优化图像分类的执行时间和能源成本,以平衡计算效率和能源效率。
C.调度算法
已知任务调度在许多情况下是非确定性多项式时间硬 (NP-hard) [141]。传统的调度策略,例如循环 (round-robin,RR) 和先到先得 (first-to-first-service,FCFS),通常被云服务提供商使用。尽管简单明了且易于实现,但这些简单的调度规则无法解决第v-b节中描述的复杂调度问题。在遥感大数据的分布式处理场景中,解决调度问题的可行方案是启发式和元启发式 [142],[143]。启发式算法的关键是确定性启发式规则,该规则指导搜索过程在候选解的空间中探索高质量的解。但是,启发式算法在很大程度上取决于初始解决方案,并且很容易受到局部最优的影响。与启发式方法不同,元启发式方法结合了随机搜索和局部搜索在溶液勘探过程中,以避免被困在局部最优中。
图3总结了云环境下解决调度问题的现有算法,其中元启发式算法在调度方案探索中最为有效。在文献中,许多元启发式方法及其变体已经得到很好的确立。在接下来的内容中,我们选择了两种经典的元启发式方法和三种最新的方法,并介绍了它们的优化策略。运筹学和应用软件工程界也有相当数量的新兴新算法,由于篇幅所限,未列入本综述文章。
遗传算法 (GA) [144]、[145] 是一种受到自然选择过程启发的广泛研究的元启发式算法。 对于特定的调度问题,每个候选解决方案都被编码到 GA 框架中的一个单独的染色体中。 遗传算法从一组随机生成的染色体开始,执行一组遗传算子,包括变异、交叉和选择,以生成新一代染色体。 在每一代中,计算每个染色体的适应度,这通常是调度问题的优化目标,用于评估相应解决方案的质量。 具有最高适应度值的染色体保留在种群中以产生下一代。 迭代这个进化过程,直到达到最大代数已产生或已获得满意的解决方案。
粒子群优化 (PSO) [146]、[147] 是另一种经典的元启发式算法,已广泛用于各种优化问题。 群体中的每个粒子都与其位置和速度相关联。 其基本思想是通过控制和更新粒子的位置和速度,迫使每个粒子向粒子空间中位置最佳的粒子移动。 每个粒子的质量通过其适应度值(对应于调度目标)来评估。 适应度值越高,粒子及其对应解的质量就越高。 每个粒子的个人最佳值和群体中所有粒子的全局最佳值将被迭代更新以进行解空间探索。
ABC算法[148]-[150]模拟蜜蜂群体的觅食行为来进行搜索过程。 蜂群中的蜜蜂分为三类,即雇佣蜂、旁观者和侦察蜂。 在 ABC 框架中,调度问题的一个可行解由一个食物源表示,通过计算调度目标可以评估食物源的质量。 每只受雇的蜜蜂都会找到离它最近的食物来源,评估食物来源的质量,然后在蜂巢中跳舞。 每只围观的蜜蜂根据受雇蜜蜂的舞蹈来确定最佳食物来源,然后前往该来源。 一些受雇的蜜蜂在他们放弃食物来源并继续寻找新的食物来源后,改为侦察蜜蜂。 这个觅食过程反复进行,蜂群逐渐接近最佳食物来源。
免疫算法 (IA) [151]、[152] 是一种模拟生物有机体免疫反应的受生物学启发的元启发式算法。 在IA框架中,调度目标对应于免疫系统中的抗原,可行解对应于抗体,调度解的质量对应于抗体与抗原之间的亲和力。 IA 使用一系列免疫操作,包括抗体克隆、抗体突变和免疫抑制,来更新抗体群体。 迭代亲和力计算和免疫操作以识别最佳抗体和相应的解决方案。
QEA [124]、[153]、[154] 是一种基于量子计算理论的有效元启发式算法。 QEA 中的基本表示是一个 Q 位个体。 QEA 将调度问题的有效解决方案编码为由多个 Q 位组成的 Q 位字符串。 量子坍缩算子用于进一步将每个Q位个体转换为0或1。这样,Q位串可以表示为二进制串,从而可以计算出对应的适应度值。 此外,QEA 使用量子旋转门结构来操纵 Q 位个体坍缩为 0 或 1 的概率。旋转门和坍缩算子导致种群多样性的特性,这是 QEA 的主要优势。
值得强调的是,元启发式算法通常很少对调度问题做出假设。 在开发基于元启发式的 GS 时,必须解决两个主要问题。 一方面,一个好的解决方案表示很重要,这样每个调度解决方案都可以与元启发式框架中的个体相关联(例如,PSO 中的粒子和 QEA 中的 Q 位)。 另一方面,给定一个从个体映射的解决方案,需要一个有效的任务分配策略来通过计算调度目标(即个体的适应度值)来评估解决方案的质量。 算法 1 提供了元启发式 GS 的一般流程的高级抽象。
六、 案例研究
本文以一个具有代表性、处理复杂的遥感应用为例,在一个部署了32个执行节点的基于Spark的集群系统上进行了并行实现。本案例研究中使用的遥感应用是一种用于遥感高光谱图像分类的复杂特征融合方法【155】。该分类方法提取了高光谱数据的子像素级、像素级和超像素级特征,利用融合核获得了涉及多个相关子任务和可并行化任务的鉴别信息。用于性能评估的高光谱数据集由AVIRIS传感器通过“印度松”测试收集位于印第安纳州西北部的站点。 “印度松”场景包含三分之二的农业和三分之一的森林或其他天然多年生植被。 该遥感高光谱图像由 2166 × 614 像素和 220 个光谱反射带组成,波长范围为 0.4-2.5 µm。 原始高光谱数据集的大小为 690 MB。 我们通过删除覆盖吸水区域的 20 个波段将波段数量减少到 200 个。 除了这个原始数据集,我们还通过镶嵌原始的“印度松树”图像来生成额外的大规模数据集。
我们首先验证与在单个执行器节点上执行所有子任务的串行版本相比,Spark上的高光谱分类方法的云版本实现了相似的分类性能。在此阶段,我们假设不采用任何调度策略,并且仅利用数据级并行性。图4示出了串行版本和云实现之间的分类结果的比较。图4(b) 中的云实现的结果是通过使用所有32个执行器获得的。更准确地说,我们在表3中介绍了通过在Spark上使用不同数量的执行器来进行高光谱图像分类的总体精度。参考串行版本实现的分类精度,我们可以通过对高光谱数据进行分区并在Spark上执行基于融合的分类来观察到可忽略的精度损失。此外,随着执行程序数量的增加,精度损失略有增加。这种观察是由于这样一个事实,即通过在训练阶段和分类阶段执行 “地图” 操作,对高光谱数据进行并行分区和处理。当 “减少” 操作收集所有数据分区的结果时,最终分类结果可能会略有不同。通过非常微不足道的精度下降,我们证明了基于云的并行方法可以显着提高计算效率通过对遥感高光谱数据的分布式处理进行图像分类。 图 5 显示了通过在 Spark 上部署不同数量的执行器来提高串行方法的速度。 四个执行器并行运行,分类应用的总计算时间为 706 s,而串行版本需要 2422 s 才能完成分类应用,表明实现了 3.43 倍的加速。 随着执行器节点数量的增加,并行处理实现的加速变得更加显着,在部署了所有 32 个执行器时达到了 10.44 倍。 但是,如前所述,通过部署更多执行器节点实现的加速不会线性增长,并且会由于执行器节点之间的通信开销大幅增加而受到影响。
在第 V-B 节中,我们得出结论,通过在多个计算资源之间优化分配数据工作负载,GS 在处理大规模遥感数据集时提高云系统的效率是必要的。 为了证明这一点,我们开发了一个启发式 GS 和两个元启发式 GS(PSO 和 QEA)来解决在云上处理遥感大数据的调度问题。 我们通过使用这些 GS 来评估计算时间,并将它们与串行处理时间进行比较。 比较结果如图 6 所示。我们注意到,通过结合调度策略,分类应用程序的计算时间进一步减少。 随着执行器节点数量的增加,计算时间的减少更为显着。 全部部署 32 个执行器节点后,使用不使用调度的 QEA 调度计算时间分别为 232 和 177 s。 计算效率提高了 23.7%。 此外,这两种元启发式算法两者都优于 GS 启发式,并且 QEA 的计算效率略高于 PSO。
最后一组实验是检查基于 spark 的并行实现的可扩展性。 我们拼接原始遥感图像以生成大规模数据集。 DataSet1、DataSet2、DataSet3 和 DataSet4 的容量范围为 1.34 到 5.39 GB。 在部署了所有 32 个执行器后,我们分别使用无调度、GS 调度、PSO 调度和 QEA 调度策略来评估分类方法在这些大规模数据集上的计算时间。 图 7 的比较结果表明,与无调度和 GS 调度相比,QEA 算法在减少计算时间和提高计算效率方面略优于 PSO 算法。 我们还注意到,对于更大规模的数据集,调度策略将导致分布式数据处理的计算效率更大幅度的提高。
七、 未来
尽管为遥感大数据处理做出了广泛的努力,尤其是在云计算架构上实现的并行和分布式方法,但仍有几个具有挑战性的问题必须解决,以充分促进大规模数据集的可扩展和生产性处理。我们现在详细讨论它们。
A.标准化
可移植性是遥感数据处理应用的一个非常重要的特性。 在功能组件层面,一些工具包(例如 OpenCL)由于独立于计算平台而支持应用程序功能组件的可移植性。 例如,使用 OpenCL 实现的功能组件可以在任何支持 OpenCL 的设备上执行,支持 OpenCL 公开的标准接口。 然而,在应用层面,文献中缺乏描述遥感应用的标准。 此类标准应定义功能组件的标准化接口、应用程序工作流的标准化描述、标准化参数映射、数据表示、计算资源表示等。 在这些标准的帮助下,应用程序可以是可移植的,并且可以在与这些标准兼容的所有平台上运行。 目前,存在多个面向遥感应用的平台,例如 GEE [31]、Sentinel Hub [32] 和 pipsCloud [156]。 然而,这些平台中的每一个都有其用于表征应用程序的规范,导致需要标准接口来弥合各种平台之间的差距。
B. 数据管理
板载分布式处理方式的数据量较小,对数据管理没有要求。 相反,存储库数据处理的分布式方法能够处理大量数据,但迫切需要数据操作。 为了减少数据传输量,许多现有的方法将遥感数据部署在单个计算节点上,使得所有数据都在本地加载,目的是减少数据传输和开销。 然而,以这种方式,将浪费大量存储空间。 更重要的是,很难保证分布在多个处理节点上的所有数据副本都是一致的,尤其是在数据更新或数据插入的情况下。 此外,需要适当的数据管理策略来实现通信开销最小化和存储空间节省之间的权衡。
C.能效
能耗始终是各种HPC系统中的重要问题。如前所述,在GPU,cpu-gpu和FPGA平台上实现的板载方法通常用于远程感测数据的实时处理。由于这些HPC平台中的高频率和大量计算元素,并行处理所需的能源成本已大大增加。一些设备级技术 (例如,时钟门控 [157] 和功率门控 [158]) 和系统级策略 (例如,动态频率缩放 [159],[160] 和处理核心的选择性去激活 [161]) 已被用来降低HPC器件的功耗。未来工作的一个重要研究方向是开发有效的优化方案 (任务分配、任务迁移等),这些方案能够权衡HPC设备的工作频率和应用程序执行的并行性,以实现遥感数据工作负载并行处理期间的能效。
D.多平台集成
文献中的所有分布式方法都集中在特定的HPC平台上。但是,如果特定平台的资源不足,无法承受大规模数据集的计算负载,那么一个简单可行的解决方案是使用公共云,需要一些额外的和临时的成本。另一个典型的应用场景是多个组织 (每个组织都运行一个单独的平台) 相互协作以完成遥感应用。显然,在单个HPC平台上设计的并行算法不适用于这些复杂的多平台计算环境。因此,将来有必要集成多个平台来对遥感大数据进行分布式和并行处理。
E. 多目标优化
在文献中,除了通过利用 HPC 平台的分布式和并行计算能力来最小化执行时间之外,还有一些研究考虑了其他目标,例如最小化能耗。 这些研究集中在 GPU 和 FPGA 的能效上。 然而,缺乏与集群和云计算平台相关的研究,这些平台实际上比 GPU 和 FPGA 更耗电。 另一方面,我们还需要考虑优化公共云或混合云环境中云服务的货币成本。 考虑到这些问题,有必要设计多目标优化算法,特别是对于存储库并行和分布式方法,当遥感应用被表示为涉及多个功能组件的工作流模型时,确定任务执行的并行性并将任务调度到适当的计算资源 和多项任务。
通常,结合任务调度,负载平衡是另一种常用的方法,用于通过平衡应用程序在计算资源上的工作负载来提高系统性能和容量 [162],[163]。在并行和分布式框架中,可以合并负载平衡机制以执行一系列专门的运行时工作负载分配功能 [164],包括以下内容。
非对称分布: 考虑到来自遥感大数据应用程序的任务图的工作负载不平衡,预计将向具有更高处理能力的计算资源发布更大的工作负载。
在某些情况下的工作负载优先级: 我们可能会为遥感应用程序的子任务分配优先级,并根据其优先级对工作负载进行计划和分配。与任务调度类似,此机制用作系统级管理技术,可抽象执行其工作负载的计算资源。
F. 端到端编排框架
遥感应用程序的整个处理流程通常涉及多个数据处理算法,这些算法被认为是功能组件,应该按照实际工作流程顺序或并行集成。 孙等人。 [24] 试图在基于 Spark 的云计算平台上设计一个端到端的并行处理框架。 该框架规定了如何表征应用程序工作流、如何集成功能组件、如何优化任务调度和资源分配以及如何部署计算基础设施。 尽管如此,仍然迫切需要研究如何在其他 HPC 平台上构建端到端的编排框架。 在这些框架的帮助下,可以在应用程序级别吸引注意力以实现业务目标,而不是像大多数现有方法那样在功能组件级别。 很明显,端到端的编排框架可以有效地提高遥感数据处理算法在地球科学相关社区中的利用率。
八、 结论
在本文中,我们全面回顾了遥感大数据处理的并行和分布式方法的最新发展。 在板载数据处理类别中,我们研究了四种流行的 HPC 技术,包括多核 CPU、单 GPU、多 GPU、混合 CPU-GPU 系统和 FPGA。 在存储库数据处理类别中,我们特别强调在云计算平台上开发的并行实现。 此外,我们研究了调度引导的优化方法,以进一步提高资源利用率和计算效率的云系统。 我们得出的结论是,云计算是处理海量遥感数据的理想平台,考虑到其在数据管理、计算效率和可扩展性方面的优越优势。 未来的远程工作感知大数据处理可以直接解决几个具有挑战性的问题,包括标准化、数据管理、多平台集成、多目标优化和开发端到端的编排框架。