数值模拟的云化方法及Paralldroid框架性能分析
立即解锁
发布时间: 2025-10-21 00:26:57 阅读量: 17 订阅数: 55 AIGC 

面向未来的并行计算研究
# 数值模拟的云化方法及Paralldroid框架性能分析
## 数值模拟的云化方法
### 方法概述
随着云计算逐渐成为高性能应用和资源密集型模拟的可行替代方案,我们提出了一种将数值模拟转化为高度可扩展的MapReduce应用程序的通用方法。该方法利用MapReduce的任务独立性和以数据为中心的设计,将模拟负载分布到虚拟集群中的多个节点上,同时复用相同的模拟内核。
### 方法步骤
1. **应用分析**:目的是将应用程序划分为更小的模拟,这些模拟可以使用相同的模拟内核,但在完整分区数据集的片段上运行,从而实现并行执行并降低每个模拟的硬件要求。为此,需要分析原始模拟域,找到一个独立变量(如Tx),该变量可以作为分区输入数据和后续过程的索引。这个独立变量可以是输入数据或模拟参数中的一部分,例如独立的时域步骤、空间划分或一系列模拟参数。
2. **云化过程设计**:
- **适应阶段**:在map阶段读取输入文件,并为每次执行按Tx索引所有必要的参数作为中间输出。原始数据必须进行分区,以便后续模拟可以自主运行,所有必要的数据集中在一个唯一的 (Tx, 参数) 条目中。
- **模拟阶段**:针对独立变量的每个值运行模拟内核,同时结合上一阶段映射到它们的必要数据,以及每个分区通用的所需模拟参数。由于模拟可能会生成多个输出文件,映射器将使用文件标识符编号作为键来组织输出,以便归约器能够收集所有输出并提供与原始应用程序相同的最终结果。
### 案例研究
为了说明该方法在实际用例中的工作方式,我们将其应用于转换一个内存受限的铁路电力消耗模拟。考虑了四个测试用例,它们在模拟的初始和最终时间、输入数据量和内存消耗方面有所不同。
| 实验 | 模拟时间(小时) | 输入大小(MB) |
| ---- | ---- | ---- |
| I | 1 | 1.7 |
| II | 33 | 170 |
| III | 177 | 1228.8 |
| IV | 224 | 5324.8 |
从图2可以看出,该应用程序在独立环境中对于大型测试用例的内存使用扩展性不佳。我们相信通过将应用程序云化,可以实现更大的可扩展性,因为可以将模拟负载分布到多个节点上。
### 评估
为了评估应用程序的性能,我们比较了它在集群和云上的执行时间。
| 配置 | 平台 | 底层基础设施 |
| ---- | ---- | ---- |
| 1 | 多线程集群节点 | - |
| 2 | MRv1 | 集群节点 |
| 3 | MRv2 | 集群节点 |
| 4 | MRv2 | EC2 |
评估结果表明:
- **云化阶段**:对于最大的实验,EC2上的数据适应阶段比本地集群中相同的MapReduce版本慢65%。这是由于所选EC2实例的特性,内存优化机器更适合内存受限的内核执行阶段。此阶段使用计算优化实例会更有利,因为大量核心可以允许同时执行更多映射器。
- **内核执行**:算法执行阶段是整个过程中最关键的阶段,在EC2上的案例I中占整个执行时间的48%,在相同环境的案例II中占89%。物理集群在内存方面的总资源在此阶段产生了显著差异,平均而言,模拟时间比EC2低2.1倍。云的虚拟化和通信开销也可能分别影响模拟执行和映射器输出的洗牌,从而降低与单节点环境相比的性能。
- **总时间**:包括两个MapReduce作业和输入数据上传的应用程序总执行时间表明,在单节点集群和弹性云上使用MapReduce on Yarn获得的性能明显优于原始多线程应用程序。对于最大的实验,总模拟时间分别减少了68%和25%。共享内存模拟器的结果可能是由物理内存和磁盘构成的瓶颈造成的,在原始模拟器中,所有线程在执行计算时将结果写入磁盘,磁盘问题尤为关键。最小的实验是一个有趣的例外,所有平台上的执行时间比原始应用程序长十倍。这反映了与原始应用程序基准相比,MapReduce框架的开销显著影响了完成如此小的模拟所需的时间。
- **可扩展性研究**:在EC2上运行YARN时,增加从节点数量可以减少总模拟时间,但性能并不随节点数量线性扩展。例如,16个节点时的加速比为3.3,64个节点时仅为7.6。这是因为随着节点数量的增加,问题规模相对于集群规模变小,每个从节点分配的数据减少,一些资源未得到充分利用。此外,在非常小的实验中,测量的执行时间大部分花在平台的任务准备和调度上,而不是实际模拟中,由于平台开销导致性能下降。因此,为了实现线性可扩展性,需要增加问题规模和从节点数量。
### 结论
0
0
复制全文


