【内容前瞻】EPCC实验室3篇论文被ASPLOS'23,VLDB接收

近日,ASPLOS 2023,VLDB等顶级学术会议放榜,EPCC有3篇高质量工作获接收,恭喜同学们!


图片.png       图片.png


ASPLOS是计算机系统领域的顶级国际会议,涉及体系结构、编程语言和操作系统等多个方向,尤其重视不同方向之间的交叉,该会议曾推动了多核处理器、虚拟化、RAID、RISC、深度学习处理器等计算机系统领域的核心创新,在学术和工业界都有巨大的影响力。ASPLOS全年共有598篇论文投稿,128篇被接收,接收率为21.4%。


VLDB 会议,全称 International Conference on Very Large Data Bases,是全球数据库系统领域最负盛名的三大顶会之一。从 1975 年开始举办,每年一次,全球各地顶尖高校的大量研究者、各大高科技公司都会将自己的学术研究进展或工业界成果以论文形式投递到 VLDB 组委会,而组委会会审阅并接收其中最前沿、最具影响力的一批,并召开线下会议,供论文作者们分享、交流。


论文1:Efficient Scheduler Live Update for Linux Kernel with Modularization - ASPLOS 23


作者:Teng Ma, Shanpei Chen,Yihao Wu, Erwei Deng, Zhuo Song,Quan Chen, Minyi Guo


工作简介:

调度器是操作系统(OS)的关键组件,与Linux紧密耦合。生产级云通常托管各种工作负载,这些工作负载需要不同的调度器来实现高性能。而内核发布周期很长,升级内核的成本通常较高,优化无法快速规模化部署。并且针对特定应用的调度器优化,常常造成其他场景的性能回退,发生问题也难以回滚。通过传统热修复技术,可以在不升级内核的情况下,实现内核局部更新和优化,针对性提升一些应用的性能。但传统技术无法实现整个子系统升级,不支持大型调度特性,停机时间长。因此,在不重新启动操作系统的情况下实时更新调度程序的能力对于生产环境至关重要。

图片.png

然而,新兴的实时更新技术只适用于细粒度的函数级更新或需要额外的约束,如微内核。它无法实时更新整个繁重的进程调度程序子系统。因此,我们提出了Plugsched来启用调度程序实时更新,其中有两个关键的创新之处。首先,通过模块化的思想,plugsched将调度器从Linux内核中解耦为一个独立的模块;其次,Plugsched使用数据重建技术将状态从旧的调度器迁移到新的调度器。该方案可以直接应用于生产环境中的Linux内核调度器,而无需修改内核代码。与当前的函数级实时更新解决方案不同,Plugsched允许开发人员通过重建技术更新整个调度器子系统并修改内部调度器数据。此外,还引入了一种优化的堆栈检查方法,进一步有效地减少了更新造成的停机时间。

通过上述优化,应用实例减少了约 10% 的 P99 延迟,并降低了性能的抖动,大幅降低了启动时间。同时,资源开销稳定减少了 5% 的 CPU 资源浪费,在 40,000 线程的环境中,停机时间小于 12 ms。目前,plugsched 生产的插件已在蚂蚁集团、阿里云和国内某大型互联网企业规模部署。Plugsched的开源链接为https://gitee.com/anolis/plugsched


论文2:uGrapher: High-Performance Graph Operator Computation via Unified Abstraction for Graph Neural Network - ASPLOS 23

作者:Yangjie Zhou, Jingwen Leng, Yaoxu Song, Shuwen Lu, Mian Wang, Chao Li, Minyi Guo, Wenting Shen, Yong Li, Wei Lin, Xiangwen Liu, Hanqing Wu

工作简介:

图神经网络相对于传统深度学习引入了特有的新型不规则算子,即图算子。随着图神经网络算法演进,图神经网络所使用的图算子的可变性和复杂性不断增加,其计算也变得更加复杂。同时,具有差异化的分布特点的图数据作为输入也给图神经网络的计算带来了特有的复杂性。现有的图神经网络框架依靠手写静态算子来实现图算子的计算操作,难以在变化的图神经网络模型或输入图数据上维持较好的性能结果。

针对这一问题,uGrapher提出了一个统一的高性能接口,通过将所有图算子抽象为一个统一的稀疏稠密混合循环的中间表达形式,解耦图算子的计算和调度,并探索了对应于GPU 上不同图算子的不同循环变换所得到的不同的执行策略之间的权衡关系,以针对不同图神经网络算子和数据集的动态变化的场景自适应的提供高性能的计算支持。对比DGL, PyG, GNNAdvisor,uGrapher平均可以取得3.5倍的性能提升。

目前,阿里云正在将uGrapher的关键设计集成进PAI自研的大规模图神经网络框架GraphLearn中,从而为工业级别的图神经网络应用带来性能加速。


论文3:Async-fork: Mitigating Query Latency Spikes Incurred by the Fork-based Snapshot Mechanism from the OS Level - VLDB

作者: Pu Pang, Gang Deng, Kaihao Bai, Quan Chen, Shixuan Sun, Bo Liu, Yu Xu, Hongbo Yao, Zhengheng Wang, Xiyu Wang, Zheng Liu, Zhuo Song, Yong Yang, Tao Ma, Minyi Guo.

工作简介:

得益于超快的查询速度,内存键值对数据库(In-memory key-value store, 下称IMKVS)被广泛使用于延迟敏感的在线应用程序中。为了支持数据持久化,流行的IMKVS(例如 Redis 与 KeyDB)使用系统调用 fork 定期获取内存数据的快照。然而,这种基于 fork 的快照机制可能会引发在快照生成期间到达的查询延迟大幅增加,进而影响在线程序的服务质量。这是因为 IMKVS 引擎在调用 fork 期间陷入内核态,为了保证数据的一致性,在此期间无法处理用户查询请求。而当 IMKVS 内存占用较大时,fork 调用过程耗时非常长。为此,我们优化了 fork,这可以在不修改 IMKVS 的基础上,解决快照期间查询延迟大幅增加的问题。

具体而言,我们设计了一个新的 fork(称为 Async-fork),将 fork 调用过程中最耗时的页表拷贝部分从父进程移动到子进程,父进程因而可以快速返回用户态处理用户查询,子进程则在此期间完成页表拷贝。为了保持父子进程之间的数据一致性,我们设计了一套高效的主动同步机制。实验结果表明,与Linux中的默认 fork 相比,Async-fork 显著减少了快照期间到达请求的尾延迟(在 8GB IMKVS 实例上,p99 延迟减少了 81.76%;在 64GB 的实例上 p99 延迟减少了 99.84%)。

Async-fork已合入龙蜥操作系统(Anolis OS),并在阿里云Redis数据库产品中实装。