近日,计算机学院软件研究所金鑫副教授、刘譞哲研究员课题组传来喜讯,课题组在泛在计算系统下的软件定义方法和系统连续取得进展,在国际顶级会议ACM SIGCOMM 2022上录用论文2篇,在ACM MobiSys 2022上录用论文1篇。
互联网及其延伸正在驱动信息空间、物理世界和人类社会的不断渗透并融合,形成泛在计算环境,计算系统的形态正在发生新一轮的变化。为了建设“高速泛在、天地一体、云网融合、智能敏捷、绿色低碳、安全可控”的新型数字信息基础设施,基础系统软件必须支持分布、异构的资源之间高效、按需、智能的共享和调度。自“软件定义网络”在网络资源管理中取得巨大成功后,“软件定义”被认为是构造下一代泛在计算系统的主流思想之一,相关研究十分活跃。
近年来,北京大学计算机学院金鑫副教授与刘譞哲研究员一起,围绕“泛在资源虚拟化+管理任务可编程”的软件定义基本原理,在泛在计算系统软件的基本性质、形态结构、构造方法和运行机理,开展了一系列的探索和研究,连续取得了一系列重要进展。
软件定义的基础在于构造可靠的可编程平面。而泛在计算环境下,各类领域特定硬件(ASIC)、管理程序、编译器均不可避免会产生错误,且彼此交织混杂。论文《Meissa: Scalable Network Testing for Programmable Data Planes》针对等多源复杂错误对可编程数据平面可靠性问题的挑战,提出了一种基于领域特定代码概要(code summary)的高可扩展自动化测试技术,在不损失覆盖率的前提下约减了程序控制流图,实现生产级规模的可编程数据平面程序100%的路径覆盖率。该论文发表于顶级会议ACM SIGCOMM 2022,第一作者为计算机专业2018级本科生郑乃千同学,这也是中国首篇本科生作为独立第一作者的SIGCOMM论文。
图 1 Meissa:基于领域特定代码概要的可编程平面的可靠性增强方法
软件定义需根据工作负载和应用场景来支持可编程平面对底层各类资源的按需调度。随着机器学习成为一类重要的工作负载,课题组围绕集群分布式机器学习(Distributed Machine Learning)和终端机器学习(On-Device Machine Learning)两类场景下的模型训练任务,分别提出了新的资源管理和调度方法。
分布式机器学习的模型训练是学术界研究热点。但现有方法大多假设训练任务负载独占GPU,且均未考虑共享多种资源,导致了较低的资源利用率,并限制了任务完成效率。论文《Multi-Resource Interleaving for Deep Learning Training》提出针对CPU、GPU、存储和网络等多种资源的协同调度方法MURI,根据深度学习分阶段、迭代的训练特征,设计了细粒度的深度学习负载共享资源的多资源交错(multi-resource interleaving)机制,并提出了基于带花树算法的调度算法,以最大化交错效率,显著提升资源利用率并缩短任务完成时间。基于真实集群和生产环境轨迹的实验表明,该方法可缩短平均任务完成时间(JCT)3.6倍,缩短总完工时间(Makespan)1.6倍。该论文发表于顶级会议ACM SIGCOMM 2022,第一作者为2021级直博士生赵怡浩同学。
图 2 MURI:面向分布式机器学习多资源管理的软件定义方法
终端机器学习在隐私计算、恶劣环境(如无网络连接)等场景下独具优势,但终端设备计算、存储和电能资源受限也带来更多挑战。论文《Melon: Breaking the Memory Wall for Resource-Efficient On-Device Machine Learning》提出了Melon内存自适应优化框架及其三项创新技术,即,面向深度学习的内存分配、渐进式重计算策略生成和动态内存预算调整,实现对终端内存管理的深度软件定义。实验表明,相比于基线方法,Melon可以在终端设备上提升至多4倍的训练批大小,大幅缩短联邦学习场景中终端训练的收敛时间,大幅减小动态内存场景中上下文切换的开销,而且极大地降低了能耗。该论文发表于顶级会议ACM MobiSys 2022,第一作者为2020级直博生王启鹏同学。值得一提的是,这是课题组继DeepCache(MobiCom 2018)、ELSA(WWW 2019,中国学者首个WWW最佳论文奖)、Elf(MobiSys 2020)、FLASH(WWW 2021)之后,在面向终端机器学习系统的软件定义方法方面取得的又一新进展。
图 3 Melon:面向终端机器学习内存自适应管理的软件定义方法