异步并行可扩展的并行I/O图像重采样算法
立即解锁
发布时间: 2025-08-20 02:22:53 阅读量: 1 订阅数: 12 

### 异步并行可扩展的并行 I/O 图像重采样算法
#### 1. 引言
图像重采样算法处理两幅图像之间的几何变形和变换,在遥感图像处理中起着重要作用。大多数遥感图像预处理程序,如几何校正、图像融合和图像镶嵌,都涉及图像重采样。
图像重采样是一项计算密集且耗时的任务。随着空间和光谱分辨率的不断提高,前所未有的图像规模带来了诸多计算挑战。使用可扩展集群的并行计算是提高处理性能的有效方法。到目前为止,已经对图像重采样的并行化进行了许多研究,包括并行机上的 2D 和 3D 并行图像重采样算法,以及负载均衡的并行图像变形算法等。这些并行算法通常采用主从并行处理模型,主要关注如何减少计算开销,如降低算法复杂度、实现负载均衡等。
然而,这些算法中存在主节点大量耗时的全局操作,如串行数据加载和导出、数据散射和收集。此外,随着 CPU 的快速升级,CPU 和 I/O 之间的性能差距越来越大。当使用大量 CPU(计算节点)时,数据加载和数据散射导致的 I/O 开销变得不可忽视,I/O 很快成为性能瓶颈。
完整的图像重采样程序通常涉及几何映射和插值。当图像重采样应用于不同的图像处理程序时,构建几何映射的方法不同,所需的辅助数据也不同,这使得该算法的代码重用成为一个大问题。因此,构建不同的图像处理应用程序需要开发与之密切相关的相应图像重采样程序,这给遥感图像处理系统的设计和开发带来了另一个挑战。
为了解决上述问题,本文提出了 PIRA - PIO 算法,这是一种使用并行 I/O 的异步并行图像重采样算法。在 PIRA - PIO 算法中,采用并行文件系统的数据分布和并行 I/O 来消除 I/O 性能瓶颈,并使用 I/O 隐藏策略充分重叠计算时间和 I/O 时间以进一步加速。此外,通过使用设计模式对算法进行接口抽象和可扩展性设计,图像重采样程序可以在不同的图像处理应用程序中重用。
#### 2. 传统并行图像重采样算法
图像重采样算法复杂且耗时。在集群环境中,处理大量数据的传统并行图像重采样算法通常采用主从并行处理模型,其处理流程如下:
```mermaid
graph LR
A[主节点数据加载] --> B[主节点数据散射]
B --> C[计算节点等待数据]
C --> D[计算节点重采样]
D --> E[计算节点数据收集]
E --> F[主节点数据导出]
```
传统并行图像重采样算法使用经典的并行处理模型进行简单的并行化。该算法仅在图像失真较小时具有良好的数据局部性。此外,它还存在几个问题:
- **性能可扩展性受限**:如图所示,一些处理步骤是无法并行化的全局操作,如数据加载、数据散射、数据收集和数据导出。当主节点进行数据加载和数据散射时,计算节点都处于空闲状态,等待所需数据,只有从主节点获取输入图像子集后才能继续重采样。因此,重采样计算操作和 I/O 操作相互等待导致的开销直接影响了整个算法的并行效率。当使用大量 CPU(计算节点)时,I/O 和 CPU 之间的性能差距问题变得更加严重,最终会带来性能瓶颈。
- **不可重用**:传统并行图像重采样算法在某些方面与应用程序密切相关,不具有可重用性。
#### 3. PIRA - PIO 算法
为了解决上述性能问题,我们提出了 PIRA - PIO 算法,这是一种使用并行 I/O 的异步并行图像重采样算法。通过将基于集群的并行文件系统的数据分布和并行 I/O 与所有计算节点触发的并发数据 I/O 操作相结合,PIRA - PIO 算法在文件系统层和算法层两层提高了 I/O 性能。此外,基于 I/O 加速,还应用了 I/O 隐藏策略来重叠 I/O 时间和重采样计算时间。另外,为了提高该并行算法的可扩展性和适应性,在算法构建中进行了代码重用设计。
##### 3.1 算法介绍
PIRA - PIO 的主要思想是:主节点负责使用映射函数获取目标图像的范围,根据有效计算量测量的负载进行任务分区和任务分配。每个子任务处理一个数据块 block_t。每个作为从节点的计算节点同时执行三个操作:对当前块进行重采样、预取下一个任务和重采样所需的输入图像的下一个数据块、导出目标输出图像的上一个重采样数据块。并且每个从节点通过并行文件系统 PVFS2 支持的并行 I/O 并发地进行数据预取或导出。
在 PIRA - PIO 算法中,主节点维护一个任务池,并根据集中式负载平衡策略将这些子任务调度到从节点,这可能会导致从节点之间的负载平衡。此外,计算节点不是分割和散射输入图像,而是在需要时通过并行 I/O 加载数据,避免了计算节点之间频繁的数据交换。
```mermaid
graph LR
A[主节点获取目标图像范围] --> B[主节点任务分区和分配]
B --> C[计算节点重采样当前块]
C --> D[计算节点预取下一任务和数据块]
C --> E[计算节点导出上一重采样数据块]
```
##### 3.2 并行 I/O 和数据分布
为了消除 I/O 性能瓶颈,我们在 PIRA - PIO 算法中使用了数据分布和并行 I/O 技术。遥感图像都存储在并行文件系统 PVFS2 中。通过 PVFS2,挂载到集群中 I/O 节点的磁盘阵列等存储设备被虚拟化为一个单一的文件系统镜像。PVFS2 中的遥感图像数据被划分为数据块,并分散在计算节点的磁盘阵列中。
当对块进行重采样时,每个计算节点必须动态加载输入图像块中的数据。由于 pvfs2 的单一文件系统镜像,所有计算节点可以随时访问任何数据。多流并发技术也使得并发数据
0
0
复制全文
相关推荐








