Page 151 - 《软件学报》2024年第6期
P. 151
陈文杰 等: 面向全分布式智能建筑系统应用程序的并行化编译方法 2727
群体智能系统 全分布式智能建筑系统
群体行为
下载
应用程序
智能节点
图 1 全分布式智能建筑系统架构
SwarmL 是用于开发全分布式智能建筑系统应用程序的编程语言, 简单而富有表现力. 其建立了用于描述建
筑控制任务中的建筑物理对象及其动态执行机制的高级编程抽象, 支持用户以串行思维方式和全局视角编程并行
化的全分布式智能建筑系统应用程序, 而无需考虑通信协议和数据分布等底层细节. 主要包含以下编程概念.
的典型群体智能控制算法描述
● 节点 (node) 对应于群体智能系统中的个体, 是构成全分布式智能建筑系统的基本单元. 应用程序的部署执
行以及数据的存储和处理都在各个节点上分布完成. 根据所管理的建筑单元类型和功能差异, 全分布式智能建筑
系统中包含不同类型的节点, 如房间, 空调箱, 冷机等.
● 域 (domain) 对应于全分布式智能建筑系统中的各类建筑功能系统, 例如变风量空调系统, 水泵系统等. 域表
示若干节点的集合及连接这些节点的拓扑关系, 其可以指定某段应用程序的执行范围, 通过域中节点的相互协作
完成特定建筑控制任务.
● 场变量 (field-oriented variable) 是某个有具体含义的建筑物理量在全分布式智能建筑系统中的分布场, 即该
量在若干节点上的分布数据集合. 场变量对应于全分布式智能建筑系统中的各类建筑物理信息, 例如温度, 湿度
等. 在场变量定义语句中, 节点类型和域名指定了场变量的有效数值的分布范围.
● 参数 (parameter) 是场变量的数据属性, 表示场变量在计算域节点集合上的数据投影, 其能够直接代入表达
式或函数进行运算. 通过对参数的定义, 可以根据计算需求灵活选择将哪些节点范围内的场变量数值代入计算表
达式. SwarmL 语言支持用户从网络全局和邻域角度分别编程全分布式智能建筑系统控制任务, 既能声明式、粗
粒度的描述网络全局计算任务, 也能细粒度的描述本节点与邻居的交互行为.
● 动态计算域 (computational scope) 是在描述群体智能计算操作时用到的一些具有共同功能角色属性的节点
集合, 并作为界定场变量映射到参数的对应关系的通用描述方法, 其显式定义了应用程序执行所涉及的节点范围.
用户可以根据计算域向符合特定条件的节点分配计算任务, 进而直观表达复杂的群体智能算法.
● Swarm 并行语句 (Swarm parallel statement) 通过细粒度描述本节点和邻居节点的信息交互实现网络全局层
面的并行计算逻辑. 由某个节点作为发起点触发计算任务后, 网络中各个节点都执行相同的计算逻辑, 并行处理
Swarm 并行语句中的各条子语句. Swarm 并行语句中出现的参数都是局部参数.
后文图 2 给出 SwarmL 关键语言元素的类图, 具体语法请参考附录中的图 A1.
1.3 基于 SwarmL
本节介绍 3 个利用 SwarmL 开发的全分布式智能建筑系统应用程序段, 来展示 SwarmL 如何简洁编程分布式
并行的群体智能系统应用程序, 进而分析编译群体智能系统应用程序所面临的挑战.
(1) 全局扩散任务
全分布式智能建筑系统中的人员疏散系统控制任务将火灾报警信号从发生火灾的区域扩散到所有空间区
域 [29] . 在该操作中, 由发生火灾的节点作为发起点触发计算任务, 并将报警信号发送给它的邻居, 经过层层传递,
所有节点都收到火灾报警信号. 通常, 编程用户需要从单个节点的角度描述节点如何与邻居交互数据, 并考虑消息
发送、接收等底层通信细节. 而 SwarmL 允许用户从系统全局角度来声明式编程并行的扩散任务, 这符合用户的