Page 281 - 《软件学报》2025年第8期
P. 281

3704                                                       软件学报  2025  年第  36  卷第  8  期


                 叉口数据从内存拷贝到        DSP  高速带宽共享内存以及将计算结果从             DSP  共享内存拷贝到内存的时间开销. 上述计
                 算和传输的时间开销与车辆、车道和交叉口的规模相关.
                                                                                               N/P, 根据公
                    简单起见, 假定每个节点的车辆数为            M/P, 且根据提出的路网划分策略, 每个节点的路网大小为
                 式  (12), 可以得到每个计算节点进行每一步模拟的时间为              T (M/P,N/P) ≈ T (M,N)/P. 在算法  1  的第  17  行中, 多个
                                                                   m 辆车需要将其大小为   的状态信息发送到其他
                                                                                     k
                 节点下每一步仿真车辆可能需要进行通信, 假设每个节点平均有
                 节点, 则每个节点的通信时间为:

                                                       C (m) = mk/B                                  (13)
                 其中,  B 为节点之间的传输带宽. 因此, 可以得到算法           1  的加速比为:

                                            T(M,N)           T(M,N)            1
                                    S =                =               =                             (14)
                                       T (M/P,N/P)+C (m)  T (M,N)/P+mk/B  1     mk
                                                                           +
                                                                         P   B·T(M,N)
                    则其并行效率为:

                                                        1               1
                                           E = S/P =           /P =                                  (15)
                                                   1     mk              mkP
                                                     +             1+
                                                   P  B·T(M,N)        B·T(M,N)
                    根据公式    (14) 和公式  (15), 算法加速比  S  与节点数  P 和计算时间    T(M,N) 相关, 当节点数增加或增加车辆或
                 路网规模时, 都能提升算法加速性能. 而并行效率              E  与计算时间   T(M,N) 和节点数   P 有关, 当加大模拟的车辆规模
                                                                                     E  不会降低, 可以增加模
                 和路网规模时, 计算时间       T(M,N) 也会随之增加. 当节点数       P 增加时, 为了保证并行效率
                 拟车辆或路网的规模. 此外, 当节点数          P 不变时, 增加车辆和路网规模也能提高并行效率.

                 4   测试分析

                 4.1   软硬件设置
                    平行交通仿真框架按照上述的并行优化方案部署并运行在国产天河超算平台的多个计算节点, 每个节点包
                 括  16  个通用  CPU、96  个控制核心和   1 536  个加速核心, 节点内    DDR  内存大小为    32 GB, 带宽达到  204 GB/s, 而
                 DSP  内高速带宽共享内存大小为         48 MB, 带宽达到  307 GB/s. 仿真框架采用的是     C++编程语言以及      HThread  编程
                 框架进行开发, 该框架是由国防科技大学自主研发的面向数字信号处理的编程框架, 而节点间采用                               MPI 进行通信,
                 节点内并行计算采用        OpenMP  共享内存的多线程程序方式. 仿真程序模拟了北京五环内                  7 797  个路口和  17  万条
                 车道的真实交通状况, 测试了在不同计算节点下               (1、2、4、9   和  16  节点), 执行不同车辆规模    (40  万、80  万、160
                 万和  240  万车辆) 的仿真性能. 对于不同数量节点的路网划分, 将按照               1×2、  2×2、 3×3、  4×4 的划分方式将子
                 图分配到   2  节点、4  节点、9  节点和   16  节点.

                 4.2   测试结果与分析
                    图  7  展示了在不同计算节点下, 执行计算的车辆数量逐渐增加时, 每个时间步长所需的计算时间. 可以观察到
                 随着计算车辆数量的增加, 仿真执行时间呈现出一定的加速效果. 这是因为在节点数较少的情况下, 每个计算节点
                 能够有效地分担计算负载, 实现并行化计算. 随着节点数的增加, 可以看到执行时间呈现出更显著的下降趋势. 值
                 得注意的是, 在节点数达到        16  并且计算车辆数量达到       240  万时, 可以观察到明显的加速效果. 每个时间步长仅需
                 要  0.37 s 的计算时间, 相比单个节点下      240  万辆车的执行时间减少了        1.8 s. 此外, 对于相同数量的计算节点, 由于
                 增加了车辆数量, 模拟的规模增大, 仿真的执行时间也会随之增加.
                    图  8  反映了图  7  中的性能加速比情况, 对于不同数量的车辆模拟, 增大计算节点的规模, 都能提高仿真的性
                 能, 而对于固定的计算节点, 增加车辆数也可以提高仿真的性能, 这一规律可以从公式                          (14) 中体现. 对于车辆和路
                                           1/P+mk/B·T(M,N) 减小, 从而可以算法提高加速性能          (图  8  中每一行的测试结
                 网规模固定时, 增加节点数, 式中
                 果); 对于节点数固定时, 增加车辆数, 计算时间           T(M,N) 增大, 导致  1/P+mk/B·T(M,N) 减小, 同样也能提高算法的
   276   277   278   279   280   281   282   283   284   285   286