覆盖计算系统调度与容量设计及caffa3d.MB模型GPU加速研究
覆盖计算系统调度与容量设计实验
在覆盖计算系统的研究中,进行了一系列计算实验,以评估不同算法在系统调度和容量设计方面的性能。所有算法均使用C++实现,其中整数线性规划(ILP)模型通过CPLEX 11.0求解器中的分支切割算法来获取最优结果。
实验目标主要有三个:一是根据算法的调优参数考察启发式算法的性能;二是将启发式方法的结果与CPLEX提供的最优结果进行比较;三是分析分割比率参数对分布式计算系统运营成本(OPEX)的影响。
实验在配备Intel Core i7处理器和4GB RAM的PC上运行,随机生成了两种规模的分布式计算系统:小型系统包含20个节点和10个项目,大型系统包含200个节点和120个项目。对于每种系统规模,测试了162种独特配置,即27种节点和项目配置以及6个分割比率值(2、4、6、8、10和V)。
| 系统参数 | 小型系统 | 大型系统 |
|---|---|---|
| 计算节点数量 | 20 | 200 |
| 项目数量 | 10 | 120 |
| 容量模块成本 | 120 - 400 | 120 - 400 |
| 单位处理成本 | 50 - 150 | 50 - 150 |
| 单个节点处理限制 | 10 - 40 | 10 - 40 |
| 目标节点数量 | 1 - 4 | 1 - 8 |
| 输入输出数据速率 | 5 - 15 | 5 - 10 |
实验的第一部分是对进化算法(EA)和禁忌搜索算法(TA)进行调优。以下是EA算法的调优参数及最终选择值:
| 调优参数 | 测试值 | 选定值 |
|---|---|---|
| 种群大小 | 50, 100, 200, 300, 400 | 100 |
| 子代种群大小 | 125, 250, 500, 750, 1000 | 250 |
| 变异概率1 | 0.0, 0.05, 0.01, 0.02, 0.04, 0.05 | 0.01 |
| 变异概率2 | 0.0, 0.05, 0.01, 0.02, 0.04, 0.05 | 0.02 |
| 个体年龄 | 3, 10, ∞ | 10 |
| 增加分割频率 | 10 | 10 |
| 减少分割频率 | 50 | 50 |
对于TA算法,调优过程针对两种系统规模和不同的分割比率分别进行。以下是TA算法调优参数的测试值和选定值:
测试值
| 系统规模 | 探索范围 | 探索深度 | 禁忌列表类型 | 禁忌列表长度 | 搜索方法 | 期望类型 |
| — | — | — | — | — | — | — |
| 小型系统 | 10, 20, 30, 40, 50, 60, 70, 80, 100, 120, 150, 200, 300, 350, 400, 450, 500 | 1 to 10 | Equality, Similar | 10 to 180 | by project, by node | better than best, better than current |
| 大型系统 | 10, 20, 40, 60, 80, 120, 160, 200, 250, 300, 400, 500, 600 | 1 to 10 | Equality, Similar | 10 to 800 | by project, by node | better than best, better than current |
选定值
| 系统规模 | 分割比率 | 探索范围 | 探索深度 | 禁忌列表类型 | 禁忌列表长度 | 搜索方法 | 期望类型 |
| — | — | — | — | — | — | — | — |
| 小型系统 | 2, 4, 6 | 20 | 3 | Equality | 60 | by project | better than best |
| 小型系统 | 8, 10, 20 | 30 | 8 | Similar | 50 | by node | better than best |
| 大型系统 | 2, 4, 6 | 600 | 1 | Similar | 20 | by project | better than best |
| 大型系统 | 8, 10, 200 | 400 | 1 | Similar | 20 | by node | better than best |
实验的另一个目标是比较所开发的启发式算法与CPLEX求解器的性能。对于小型系统,CPLEX运行以找到最优结果,执行时间不受限制,而启发式算法的执行时间最长为20分钟。对于大型系统,CPLEX在合理时间内无法提供最优结果,因此其执行时间限制为20分钟,启发式算法的运行时间也相应限制为20分钟。
| 算法 | 小型系统平均差距 | 小型系统95%置信区间长度 | 大型系统平均差距 | 大型系统95%置信区间长度 |
|---|---|---|---|---|
| RA | 22.93% | 0.41% | 21.97% | 0.82% |
| GA | 8.49% | 0.31% | 12.65% | 0.60% |
| EA | 2.99% | 0.21% | 10.28% | 0.55% |
| TA | 0.38% | 0.05% | 0.54% | 0.88% |
从结果可以看出,禁忌搜索算法(TA)表现最佳。在小型系统中,TA与最优结果的平均差距仅为0.38%;在大型系统中,TA在所有启发式算法中也提供了最好的结果。此外,EA算法与CPLEX相比性能有所下降,表明其可扩展性不佳。
由于TA算法显著优于其他启发式算法,后续重点分析了TA算法与CPLEX在大型系统中不同分割比率下的详细比较结果:
| 分割比率 | TA与CPLEX平均差距 | TA > CPLEX的案例数量 |
|---|---|---|
| 2 | -9.04% | 26 |
| 4 | -3.14% | 20 |
| 6 | 1.86% | 11 |
| 8 | 3.50% | 1 |
| 10 | 4.08% | 0 |
| 200 | 5.64% | 0 |
可以发现,对于较小的分割比率(如2和4),TA方法优于CPLEX。这是因为在这些情况下,由于分割比率约束,可行解空间非常小,优化难度较大。
同时,由于TA方法具有随机性,对其收敛性进行了检验。对选定的小型和大型系统,在所有测试的分割比率值下运行该算法20次,结果表明TA算法非常稳定,标准差始终低于平均值的0.5%。
最后,研究了覆盖计算系统的性能与分割比率的关系。结果表明,运营成本(OPEX)随分割比率的增加而降低,但两个边界情况(分割比率为2和20)之间的成本差距非常小。对于所有测试的小型系统,平均差距为1.41%;对于大型系统,基于TA算法的结果计算得到的相应值为1.58%。因此,可以得出结论,OPEX成本对分割比率值不太敏感,但分割比率值对评估算法的性能在结果可行性和方法差异方面有很大影响。
caffa3d.MB模型GPU加速研究
caffa3d.MB是一个开源的流求解器,可对复杂几何形状中粘性流体运动的方程进行数值求解。该模型基于原始的2D caffa模型实现,目前被不同实验室广泛使用。然而,流体模拟的高运行时间促使人们寻求高性能计算(HPC)技术。
近年来,图形协处理器(GPU)取得了显著发展,不仅在计算能力上有提升,在编程的容量和灵活性方面也有很大改进。自2007年NVIDIA发布CUDA(Compute Unified Device Architecture)以来,GPU成为易于编程的多处理器,能够通过单程序多数据(SPMD)范式执行并行算法。
CUDA架构具有独特的内存层次结构,包括寄存器、共享、本地、全局、常量和纹理内存等多个内存级别,程序员需要明确指定使用的内存级别。此外,CUDA还提供了多种在CPU和GPU内存之间交换数据的技术,如普通传输、页面锁定传输(使用固定内存)和直接访问。
鉴于数值模型的重要性、高计算成本以及GPU的不断发展,对将caffa3d.MB模型移植到基于GPU的计算进行了分析。首先对caffa3d.MB的计算性能进行分析,以确定模型中最耗时的阶段。
caffa3d.MB模型介绍
caffa3d.MB模型采用有限体积法,用于对粘性和/或湍流流体的3D数值模拟,并考虑了通用标量传输。其域几何由块结构曲线网格表示,允许描述复杂场景。块之间的界面是完全隐式的,以避免降低方法的性能和数值结果。该模型还允许在域中纳入刚性物体,通过浸入边界条件方法研究其与流体的相互作用。
-
数学模型 :包括不可压缩牛顿流体的质量和动量平衡方程,以及通用被动标量的守恒定律。
-
质量平衡方程:$\int_{S} (v \cdot \hat{n}_S) dS = 0$
- 动量平衡方程(以速度向量$v = (u, v, w)$的第一个分量$u$为例):$\int_{\Omega} \rho \frac{\partial u}{\partial t} d\Omega + \int_{S} \rho u (v \cdot \hat{n} S) dS = \int {\Omega} \rho \beta (T - T_{ref}) g \cdot \hat{e} 1 d\Omega + \int {S} -p\hat{n} S \cdot \hat{e}_1 dS + \int {S} (2\mu D \cdot \hat{n}_S) \cdot \hat{e}_1 dS$
- 通用被动标量守恒定律:$\int_{\Omega} \rho \frac{\partial \varphi}{\partial t} d\Omega + \int_{S} \rho \varphi (v \cdot \hat{n} S) dS = \int {S} \Gamma (\nabla \varphi \cdot \hat{n}_S) dS$
这些方程以积分形式呈现,符合有限体积法,便于离散化。
-
迭代方案 :在每个时间步,交替并依次求解速度各分量的方程和压力校正方程,同时也求解标量传输方程。目前,caffa3d.MB模型使用强隐式过程(SIP)方法迭代求解这些线性系统。SIP算法在计算流体动力学(CFD)中广泛应用,既可以作为求解器本身,也可以作为多重网格方法的平滑器。
-
模型运行时间分析
- 实验平台 :使用了两个不同的CPU,每个CPU连接一个不同的GPU。具体信息如下表所示:
| 平台 | CPU | 核心数 | GPU型号 | 多核数 | GPU核心数 |
|---|---|---|---|---|---|
| I | Intel E5200 @ 2.5 GHz 2GB | 2 | 9800 GTX+ | 16 | 128 |
| II | Intel QuadCore E5530 2.4GHz 48GB | 8 | C1060 | 30 | 240 |
- 测试用例 :考虑的应用是雷诺数(Re)为1000的立方腔体内的顶盖驱动流。这是Navier - Stokes求解器的传统测试用例,文献中提供了良好的数值解用于验证结果。对所有壁面应用无滑移边界条件,顶部壁面以恒定速度$V_0$滑动。根据腔体高度$h$和顶盖速度$V_0$设置流体粘度$\nu$,使$Re = 1000$。计算运行至达到稳态。
评估了两个不同网格尺寸的测试用例:一个是64 × 64 × 64网格,另一个是128 × 128 × 128体积的离散化网格,分别命名为Cavs64和Cavs128。
- 运行时间评估 :仅使用平台II进行模型评估,模拟了Cavs128案例的10个时间步。
通过以上分析,确定了caffa3d.MB模型中最耗时的阶段为SIP七对角线性系统求解器。后续将提出基于GPU的版本,以加速计算。初步结果表明,使用成本低于标准多核服务器10%的GPU卡,可获得显著的加速因子(整个模型最高可达24%),这为基于GPU的有限体积流求解器(如caffa3d.MB)的全面实现提供了有前景的展望。
覆盖计算系统调度与容量设计及caffa3d.MB模型GPU加速研究
求解NLA问题及SIP方法并行化相关工作与实现
在数值线性代数(NLA)问题求解领域,利用GPU进行计算已经有了不少相关研究。许多科学家都关注到了GPU在解决NLA问题上的潜力,并且取得了显著的性能提升。对于SIP方法的并行化,也有一些研究成果。接下来详细介绍相关的实现和解释。
相关工作回顾
在GPU上解决NLA问题的研究中,众多学者通过不同的方法和技术,展示了使用GPU能带来的性能改善。在SIP方法的并行化方面,也有一些前期的尝试和探索,为本次研究提供了一定的基础。
实现方案
为了加速caffa3d.MB模型的计算,将SIP求解器移植到了GPU上。具体的实现过程如下:
1.
确定关键阶段
:通过对caffa3d.MB模型的计算性能分析,确定SIP七对角线性系统求解器是最耗时的阶段,因此将其作为移植的重点。
2.
GPU内存管理
:根据CUDA架构的内存层次结构特点,合理安排数据存储在不同的内存级别中。例如,将频繁访问的数据存放在寄存器或共享内存中,以提高访问速度。
3.
并行算法设计
:设计适合GPU并行计算的算法,利用GPU的多线程特性,同时处理多个数据元素。例如,将SIP求解器中的矩阵运算进行并行化处理。
4.
数据传输优化
:使用CUDA提供的多种数据交换技术,优化CPU和GPU之间的数据传输。例如,采用页面锁定传输(使用固定内存)减少数据传输时间。
通过以上实现方案,对SIP求解器在GPU上的性能进行了实验评估。结果表明,与CPU版本相比,能够实现显著的运行时间减少,加速值最高可达10倍,并且这一改进显著降低了模型的总运行时间。
结论与未来工作展望
通过对覆盖计算系统调度与容量设计以及caffa3d.MB模型GPU加速的研究,得到了以下重要结论:
覆盖计算系统调度与容量设计
- 算法性能 :在覆盖计算系统的调度和容量设计中,禁忌搜索算法(TA)表现最佳。在小型系统中,TA与最优结果的平均差距仅为0.38%;在大型系统中,TA在所有启发式算法中也提供了最好的结果。
- 分割比率影响 :运营成本(OPEX)对分割比率值不太敏感,但分割比率值对评估算法的性能在结果可行性和方法差异方面有很大影响。
caffa3d.MB模型GPU加速
- 加速效果 :将SIP求解器移植到GPU上,能够实现显著的运行时间减少,加速值最高可达10倍,整个模型的加速因子最高可达24%。
- 成本效益 :使用成本低于标准多核服务器10%的GPU卡,就能获得显著的加速效果,具有很高的成本效益。
未来工作展望
- 覆盖计算系统 :考虑进一步优化覆盖计算系统的调度和容量设计,考虑更多的约束条件,如生存性问题和更复杂的工作流。
- caffa3d.MB模型 :继续探索基于GPU的caffa3d.MB模型的全面实现,进一步优化GPU上的算法和内存管理,提高计算效率。同时,研究如何将GPU加速技术应用到更多的数值模型中。
综上所述,本次研究为覆盖计算系统和caffa3d.MB模型的优化提供了有价值的参考,未来的工作将在这些基础上进一步深入和拓展。
以下是一个mermaid格式的流程图,展示caffa3d.MB模型GPU加速的主要流程:
graph TD;
A[caffa3d.MB模型分析] --> B[确定最耗时阶段];
B --> C[SIP求解器移植到GPU];
C --> D[GPU内存管理];
C --> E[并行算法设计];
C --> F[数据传输优化];
D --> G[实验评估];
E --> G;
F --> G;
G --> H[获得加速效果];
同时,为了更清晰地展示不同算法在覆盖计算系统中的性能对比,再次列出相关表格:
| 算法 | 小型系统平均差距 | 小型系统95%置信区间长度 | 大型系统平均差距 | 大型系统95%置信区间长度 |
| — | — | — | — | — |
| RA | 22.93% | 0.41% | 21.97% | 0.82% |
| GA | 8.49% | 0.31% | 12.65% | 0.60% |
| EA | 2.99% | 0.21% | 10.28% | 0.55% |
| TA | 0.38% | 0.05% | 0.54% | 0.88% |
通过这些表格和流程图,能够更直观地理解研究内容和结果。
超级会员免费看
7748

被折叠的 条评论
为什么被折叠?



