Page 170 - 《软件学报》2024年第6期
P. 170

2746                                                       软件学报  2024  年第  35  卷第  6  期


                    分别使用    TOS  图形化编程系统, Touch 语言和     SwarmL  语言编写上述基准程序. 然后使用         TOS  图形化编译器、
                 Touch  语言编译器和   SwarmL  编译系统编译这     3  个版本的基准程序并生成目标代码, 将目标代码部署到全分布式
                 智能建筑系统仿真平台上运行. 对于每个基准程序, 重复执行                  10  次, 记录平均运行时间, 并比较它们在         Touch  语言
                 版本应用程序运行时间         (归一化为   1) 上的加速比. 图   15  的实验结果表明, 相比于      Touch  语言编译器, SwarmL  语
                 言编译系统生成的目标代码平均加速比可达                1.527, 实现了性能提升. 本文分析这主要是由于           SwarmL  编译系统将
                 程序中的复杂表达式编译成嵌套的多个              if 语句代码, 并对部分循环进行合并, 尽量避免不必要的循环分支和计算,
                 进而减少了循环次数和性能开销. 另外, 与             TOS  图形化编译器相比, SwarmL      语言编译系统也具备更好的性能.
                 TOS  图形化编译器引入了较多的函数调用, 如参数传递, 这导致一些额外性能开销增加. 而                        SwarmL  编译系统将一
                 些计算逻辑内联到循环中, 减少函数调用次数, 一定程度上提升了目标代码运行性能.

                                                  表 4 基准程序的功能描述

                          基准程序                                         描述
                         vavControl                    多节点协作计算求取房间风阀开度和AHU风机转速
                        fireEvacuation               通过并行递归法计算疏散时间最短的逃生方向和逃生路径
                        faultDiagnosis                   通过邻居节点交互查找发生故障的传感器节点
                       storeManagement                 实现货物查询、存储和自动导向车 (AGV)路径规划
                         lightControl                  根据人员数量和房间照度的变化控制照明设备状态
                          checkEnd               根据节点协作调节水泵转速, 使得末端管网阻力最小, 降低水泵能耗
                      energyConsumption                   根据节点协作计算整个建筑系统中的能耗
                        chillerControl                        多台并联冷机的分配优化任务
                       flowIdentification      根据流体网络中安装的压力传感器, 对流体网络各管段的流量进行辨识计算
                         pumpControl           多台水泵协作计算效率最高时的开启台数和频率, 使得系统总体能效最优


                                            Touch 编译器     TOS 编译器     SwarmL 编译系统
                                     2.0
                                          1.56  1.48  1.75  1.67  1.59  1.48  1.46  1.67
                                                                               1.37
                                     1.5        与本文内容较为类似. 基于
                                                        1.24
                                    加速比  1.0
                                     0.5
                                      0
                                                                        flowIdentification
                                                 storeManagement
                                      vavControl evacuation faultDiagnosis  lightControl energyConsumption chillerControl  pumpControl
                                                              checkEnd

                                                            基准程序
                                                 图 15 基准程序运行性能对比

                    以上工作是与面向全分布式智能建筑的同类编译系统的性能对比. 在采用分布存储结构的其他相关工作中,
                 面向分布式    MPI 的并行化编译系统       [21,22]                  MPI 的分布式系统采用广播和收集模式进行
                 通信, 并行化编译产生的通信代码需要遍历系统中所有节点个体或者进程并发送广播消息. 而群体智能系统中个
                 体的通信范围仅限于邻居节点, 通过相邻节点局部交互实现全局层面的群体智能计算任务. 由于全分布式智能建
                 筑系统中每个节点实际连接的邻居数量最多不超过                  6  个, 从通信机制和循环遍历规模的角度定性分析, 本文编译
                 系统产生的通信代码规模和开销比面向              MPI 的并行化编译系统更小, 程序执行效率也将更高.

                 5   相关工作

                    由于群体智能系统和多核处理器系统对并行程序的迫切需求以及编程并行程序的复杂性, 并行化编译技术成
   165   166   167   168   169   170   171   172   173   174   175