白泽带你去参会@ChinaSys(上)

admin 2020年12月19日18:46:04评论51 views字数 8305阅读27分41秒阅读模式

 一起来探索计算机的奥秘

 To explore COMPUTER 


12月5日,第19届中国计算机系统(ChinaSys)研讨会在重庆开幕。本次会议由ACM SIGOPS和ChinaSys主办,中国科学院计算技术研究所和中科院计算所西部高等技术研究院承办。


ChinaSys旨在促进中国在系统相关领域的研究和实践,以期“在国际系统领域发出中国的好声音”。学术界的研究人员和工业界的从业人员聚集在此,分享计算机系统领域的最新研究成果,以交流促发展。


本次研讨会为期两天,第一天进行不同方向的主题演讲以及论文报告,第二天则邀请到知名学者和优秀博士们对科研过程中的经验与心得进行分享交流。本次研讨会中,复旦大学系统软件与安全实验室派出共3位师生代表参会。接下来,我们对会议主要内容进行介绍。

白泽带你去参会@ChinaSys(上)


DAY1

主题演讲及论文报告


Keynote Session 1


高性能固态存储系统的构建

第一个主题的演讲者是来自清华大学计算机系的舒继武教授。


随着目前存储数据规模的增大,固态存储逐渐成为主流,然而存储设备间性能差异较大。目前主流的固态阵列虽然具有延迟低带宽高的优点,但是其软件开销大,特别是存储系统中小写开销昂贵,且固态阵列对于多核系统的扩展性差。所以教授提出了两个方向的改进:


第一点是多核并发的闪存文件系统。通过充分的实验调研,教授发现多核扩展瓶颈在于文件系统对多核场景的调度支持较差,没有充分发挥闪存顺序存储性能。因此教授提出了新的方案,利用CPU调度器辅助的读写锁,通过本地计数器加上CPU调度器辅助查询,实现了并发性和局部性友好的文件子管理单元,并对数据结构切分重组,实现了高并发强一致的多流持久化技术。


第二点是软硬件协同的双接口文件系统。通过调研发现,传统块结构I/O目前在解决字节级别的非对齐I/O时仍存在很严重的效率问题,而目前系统中超过80%的页(4kb)更新大小均不超过800字节。因此教授提出了新的设计方案,将非对齐写派分到字节接口的数据路径上,同时加以硬件辅助;通过双接口的文件系统实现在不同场景下的高效读写。


最终教授总结到,高性能固态存储的兴起与发展给应用性能提供了机遇,但也给系统软件的设计带来了挑战。传统存储系统的设计理念,如针对单核系统设计,块设备抽象等,难以充分发挥高性能固态存储的高并发、高带宽、低延迟等新特性。作为展望,未来的发展需要内核态与用户态进行权衡和协同,尤其不可忽视虚拟化存储和分布式存储系统中存在的延迟问题。


下一代AI软件基础设施的构建

第二个主题的演讲者是来自于微软亚洲研究院的研究员张霖涛博士。


张博士为大家分享了针对深度学习的新一代支持系统Project Organon。底层深度学习系统需要众多基础软件支持,比如计算,交互,数据存储,任务管理等。目前系统的组件之间有着大量高耦合的交互,但是由于不同的组件是由不同的项目组进行开发的,互相间是黑盒的,难以进一步协同优化。因此张博士提出了一个各组件高度协同的深度学习系统来进一步优化深度学习的效率。具体来说,张博士等研究人员提出了NNFusion,Antares等技术,以实现超标量的并行训练,高效的DNN编译,自动化的kernel优化等目标,并将这些技术组成一个更好的生态环境,从而可以有更大的优化空间。

白泽带你去参会@ChinaSys(上)




Keynote Session 2


Tracking synchronization challenges in large scale industry code

第三个主题的演讲者是来自芝加哥大学的卢山教授,主题是传统的时序错误在新场景下所面临的问题以及解决的思路。


传统的时序错误通常是由于多线程软件的同步机制实现存在问题,从而影响到了程序的执行。而现如今,随着计算机系统的逐渐庞大和使用场景的复杂化,时序错误由原本的单机错误变成了分布式场景下多个节点间的时序错误。除了传统的因素,在分布式场景下,同步还会受到rpc和网络等因素的影响,这使得时序错误在分布式场景下出现的情况相比于单机场景要高得多。在单机场景下,传统的检测思路是首先把所有的访存先找出来,再定位到保护这些访存的同步操作。对这些同步操作进行happen before relationship分析,可以得出这些操作的并发逻辑关系及同步策略。通过进一步分析出其中不一致的同步策略,就能发现程序中存在的时序问题。


而在分布式场景下,很多同步指令和同步方式是之前单机情况下所从未遇到过的,对于一些大型程序,也根本不可能通过人工去标注,因此对同步指令的识别成为了巨大的挑战。因此演讲者提出了新的解决思路(tsvd),使用Delay injection的技术,通过观察延时注入前后线程的执行时序来判断同步关系,而不再需要对同步指令进行识别。具体来说,该技术通过直接执行程序,发现同步进程中两个距离接近的操作。如果存在,则再次执行程序,并延迟第一个操作,看第二个操作是否有和第一个操作相关的同步行为,若没有,则存在时序错误。


同样利用这个方式,对于存在同步行为的操作,可以识别出潜在的同步操作指令集合。为了进一步识别具体的同步操作指令,演讲者提出将一个指令是否是同步指令作为一个变量,将同一个函数中的指令关系构建成一个线性方程,通过收集所有的潜在函数,构建出线性方程组,通过对线性方程组求解,变量的解为1的操作就识别为同步操作(SHERLOCK)。



系统优化在PAI的实践

最后一个主题的演讲者是来自于阿里巴巴的林伟博士,演讲的主题是如何由系统基础设施PAI完成业务模型的高效高性能执行。阿里希望给用户提供一个大型的AI训练平台,不同用户可以提交训练任务,并进行高效的模型训练。但目前的GPU集群并不适合多线程,在大规模分布式训练、模型迭代、异构硬件、编译优化以及多租户大集群下资源调度和框架联合优化等方面仍旧存在大量需要改进的地方。因此,他们提出了PAI平台,在显存、通信、性能预估、软硬件协同这四个方向进行了优化,以支持复杂的多租户任务调度场景。

白泽带你去参会@ChinaSys(上)



Paper Session 1: OSDI

1

Rammer: Enabling Holistic Deep Learning Compiler Optimizations with rTasks

目前虽然出现了很多AI加速硬件,但仍旧面临着硬件利用率过低,编程模型不统一等众多问题。。此外,从模型角度来看,单个op的调度时间开销大,且op的并行度不足以满足gpu的核心计算,这进一步地影响了模型训练的效率。因此作者希望通过在现有模式上打补丁,实现在gpu上支持通用op融合的优化方法来提升效率。该工作的核心思想在于,在编译时将整个数据流图的所有rtask静态的编排成一个确定的执行方案,通过vdevice映射到物理device的执行单元,并对dnn计算的表达层和硬件层进行重新抽象,提供硬件通用的全局优化dnn计算的空间。最终通过实验证明了该方案相较于现有系统在效率上有了极大的提升。


白泽带你去参会@ChinaSys(上)


2

Write dependency desentanglement with Horae

作者:Xiaojian Liao, Youyou Lu, Erci Xu, and Jiwu Shu


本文工作尝试解决存储中的写依赖问题。现代存储的带宽和并行性越来越好,但应用需要保持一系列数据持久化的顺序,也就是系统要确保存储顺序,但是目前的IO栈并不会保证该顺序。通过实验,作者发现有顺序依赖的写请求,性能很差,而且并不会随带宽上升而相应上升,但乱序的请求表现较好,两者性能差8倍以上。所以作者希望在保证顺序的同时,尽可能跑满带宽。作者提出两个方面的改进。第一个是将IO栈分为两条路径,一是传统栈的路径,一个是顺序控制路径,并基于CMB构建一个保序队列,实现控制路径。第二个思路是对存储的任务进行优化,通过分布式存储的后端引擎,对事务的并行化进行优化,将保序任务拆离出来进行单独管理。通过在块设备层,文件系统层及应用层面以及在单盘和多盘两个场景下进行分别测试,作者所提出的系统相较于之前系统都有极大的提升。


白泽带你去参会@ChinaSys(上)


3

Retiarii: A Deep Learning Exploratory-Training Framework

作者:Lingxiao Ma, Zhiqiang Xie, Zhi Yang, Jilong Xue, Youshan Miao, Wei

Quanlu Zhang, Zhenhua Han, Fan Yang, Yuge Zhang, Zhe Liu, Mao Yang, and Lidong Zhou

Cui, Wenxiang Hu, Fan Yang, Lintao Zhang, and Lidong Zhou


现实场景中的DNN应用越来越普遍,而设计DNN过程是一个探索迭代的过程(Exploratory-Training),需要不断地尝试找到最佳模型,而不是一个one shot的过程。但是目前的深度学习框架对于exploratory-training的支持还比较差。因此作者希望设计一个Exploratory-Training的框架,使得训练过程可以更加的可控。其核心思想是将探索过程转变成一个不断mutate的过程。最终,作者提供了一个接口来指定要探索的DNN模型空间和探索策略,策略决定了训练模型的优先级顺序和训练终止条件。同时作者还尝试识别出模型之间的相关性,并通过跨模型优化,改善整体探索训练的过程。最终通过实验,作者极大地改善了(8.58倍)总体探索训练的效率。


白泽带你去参会@ChinaSys(上)
白泽带你去参会@ChinaSys(上)



Paper Session 2: Storage

1

Spool: Reliable Virtualized NVMe Storage Pool in Public Cloud Infrastructure

作者:Lingxiao Ma, Zhiqiang Xie, Zhi Yang, Jilong Xue, Youshan Miao, Wei Cui, Wenxian

Shuai Xue, Shang Zhao, Quan Chen, Gang Deng, Zheng Liu, Jie Zhang, Zhuo Song, Tao Ma, Yong Yang, Yanbo Zhou, Keqiang Niu, Sijie Sun, Minyi Guo

g Hu, Fan Yang, Lintao Zhang, and Lidong Zhou


对于大型云平台而言,确保虚拟化NVMe存储系统的高可靠性和可用性是十分重要的,然而目前的I/O虚拟化系统仅关注到了如何提高I/O性能,在可用性上还存在诸多缺陷。因此作者提出了可靠的NVMe虚拟化系统Spool。该系统主要有三个优势。一是它可以诊断设备故障类型,并且仅去替换出现了异常的真实存储介质上的NVMe设备,而其他的错误则通过重置设备控制器来处理,从而最大程度地减少了由于不必要的设备更换而导致的数据丢失。二是保证了在重置控制器和存储虚拟化系统升级的同时数据的一致性和正确性。三是大大减少了NVMe虚拟化系统的重启时间。通过快速重启,减少系统升级和故障恢复的时间,增加服务的可用性。通过评估可以发现,Spool提供了可靠的存储服务,而且性能损失小于3%,同时和SPDK相比,重启时间减少了91%。


白泽带你去参会@ChinaSys(上)


2

HDDse: Enabling High-Dimensional Disk State Embedding for Generic Failure Detection System of Heterogeneous Disks in Large Data Centers

作者:

Ji Zhang, Ping Huang, Ke Zhou, Ming Xie, Sebastian Schelter


在大型数据中心中,存储系统的可靠性十分重要。而磁盘故障是一个十分普遍的问题,严重的磁盘故障可能导致系统中断甚至永久性数据丢失。现有的解决方案通常包含两个方向,一是通过磁盘保护,进行数据备份;二是对磁盘故障进行预测。目前大多数故障预测的方法仅考虑了针对同一磁盘模型下的磁盘集合利用深度学习进行检测,但当训练集数量相较少或者检测时出现了未知数据时,预测效果会变得不理想。因此,作者针对异构磁盘提出了一种通用的磁盘故障检测方法,减少误报率,提高磁盘故障预测的recall。作者提出了基于长短期记忆(LSTM)的孪生神经网络,动态地学习磁盘健康状态的长期变化行为,并生成统一且有效的高维磁盘状态嵌入,以用于异构磁盘的故障检测。该方法不仅可以提高性能,对训练集外的磁盘具有良好的适应性,也可以在规模较小的磁盘集合中进行使用。


通过在两个实际的数据中心进行评估,该系统确实优于现有的解决方案。此外,作者也成功地将该系统应用于实际的数据中心来提高中心的可靠性,并在使用中展现出了真实的长期可用性。


白泽带你去参会@ChinaSys(上)

3

Improving System Performance via Fine-Grained In-DRAM Data Relocation and Caching

作者:Lingxiao Ma, Zhiqiang Xie, Zhi Yang, Jilong Xue, Youshan Miao, Wei Cui, Wenxian

Shuai Xue, Shang Zhao, Quan Chen, Gang Deng, Zheng Liu, Jie Zhang, Zhuo Song, Tao Ma,

Yaohua Wang, Lois Orosa, Xiangjun Peng, Yang Guo, Saugata Ghose, Minesh Patel, Jeremie S. Kim,Juan Gómez Luna, Mohammad Sadrosadati, Nika Mansouri Ghiasi, Onur Mutlu

Yong Yang, Yanbo Zhou, Keqiang Niu, Sijie Sun, Minyi Guo

g Hu, Fan Yang, Lintao Zhang, and Lidong Zhou


目前,访问DRAM造成的主存的延迟成为了许多应用的性能瓶颈。一种减轻延迟的方案是引入in-DRAM cache,即使用较小但快速的区域作为cache来存放经常被访问的数据。但作者发现,目前的in-DRAM cache设计中,将数据移入或者移出快速区域(数据重定位)的机制是十分低效的。这种低效主要由以下两点引起:


(1)数据重定位的粒度是DRAM的整行,但由于数据局部性,其中的许多内容其实并不会被访问,大大浪费了昂贵的快速区域的空间;


(2)由于重定位的开销和快速区域与慢速区域之间的距离相关,目前往往使多个快速区域与慢速区域物理交错排布,但这同时增加了设计复杂性。


为了解决这两个问题,作者提出了FIGARO。该技术的核心思路是使用了DRAM中的share global buffer来以cache数据块为粒度实现数据的重定位。该技术的延迟与区域间的物理距离无关,因此不需要针对DRAM结构进行复杂设计。由于该技术实现了更细粒度的缓存机制,大大提升了被缓存的经常被访问的数据块的数量从而提升了缓存命中率。


作者使用了传统的DDR4和目前最好的in-DRAM caching技术LISA-VILLA进行了对比试验。在多个应用上的实验表明,该技术与DDR4相比性能提升了16.3%,与LISA相比提升了4.6%。此外该技术还降低了系统运行的功耗。


白泽带你去参会@ChinaSys(上)


4

HDDse: Enabling High-Dimensional Disk State Embedding for Generic Failure Detection System of Heterogeneous Disks in Large Data Centers

作者:Xiaojian Liao, Youyou Lu, Erci Xu, and Jiwu Shu


本文工作尝试解决存储中的写依赖问题。现代存储的带宽和并行性越来越好,但应用需要保持一系列数据持久化的顺序,也就是系统要确保存储顺序,但是目前的IO栈并不会保证该顺序。通过实验,作者发现有顺序依赖的写请求,性能很差,而且并不会随带宽上升而相应上升,但乱序的请求表现较好,两者性能差8倍以上。所以作者希望在保证顺序的同时,尽可能跑满带宽。作者提出两个方面的改进。第一个是将IO栈分为两条路径,一是传统栈的路径,一个是顺序控制路径,并基于CMB构建一个保序队列,实现控制路径。第二个思路是对存储的任务进行优化,通过分布式存储的后端引擎,对事务的并行化进行优化,将保序任务拆离出来进行单独管理。通过在块设备层,文件系统层及应用层面以及在单盘和多盘两个场景下进行分别测试,作者所提出的系统相较于之前系统都有极大的提升。


白泽带你去参会@ChinaSys(上)
白泽带你去参会@ChinaSys(上)




Paper Session 3: Performance

1

Effective Detection of Sleep-in-atomic-context Bugs in the Linux Kernel

作者:

Jia-Ju Bai, Yu-Ping Wang, Julia Lawall, Shi-Min Hu


现在操作系统的内核模块通常会使用自旋锁和中断处理程序来独占CPU,从而在原子上下文中执行并发的代码。若在这过程中内核执行进入休眠状态,则可能导致系统被挂起或者崩溃。这种错误被称为“原子休眠”错误(SAC)。由于多种原因,这种错误很难被找出来,一是很难判断一个系统操作是否会休眠,另一个是错误的触发并不一定会引起一个显示的崩溃,难以在运行时判断。最后如果需要对内核进行一个完整的过程间分析,需要对函数指针的具体指向信息进行准确的分析。为了解决这些困难,作者首先通过基于成员变量的指针分析,构建准确的函数指针分析,接着提出了基于摘要的分析用来识别可能在原子上下文中执行到的代码,并通过启发式的方法提取存在的休眠内核接口。最终通过基于路径的检查方法,有效过滤重复和错误的检测结果。通过在Linux,FreeBSD和NetBSD上的实验,作者总共发现了401个新的错误,并且内核维护人员已经确认了其中的272个。


白泽带你去参会@ChinaSys(上)


2

Alita: comprehensive performance isolation through bias resource management for public clouds

作者:

Quan Chen, Shuai Xue, Shang Zhao, Shanpei Chen, Yihao Wu, Yu Xu, Zhuo Song, Tao Ma, Yong Yang, Minyi Guo


公有云平台的用户在同一个节点上会共享同样的硬件资源,然而这有可能导致潜在的性能干扰(或者恶意攻击)。通过实验,作者找到了三种会被竞争的资源:总线,LLC和电源。若一用户过度使用资源,则会极大降低其他用户的使用性能。为了解决这个问题,作者提出了Alita,一个在线资源竞争识别和自适应资源隔离的运行时系统。该系统会通过统计硬件和系统层面事件信息来识别出现竞争的资源和恶意的使用者,并且通过隔离系统限制恶意使用者的资源。通过在具有30000个节点的实验平台和生产环境下的云平台进行试验,作者发现Alita可以显著提高公有云平台在遇到资源竞争时虚拟机的性能。


白泽带你去参会@ChinaSys(上)


3

Characterizing Serverless Platforms with ServerlessBench

作者:

Tianyi Yu, Qingyuan Liu, Dong Du, Yubin Xia, Binyu Zang, Ziqian Lu, Pingchao Yang, Chenggang Qin, Haibo Chen


无服务器计算保证了高效软件开发的可自动扩展性和高成本效益。这些优点推动了云平台上产生越来越多的新应用程序和服务。但同时这也带来了新的挑战,例如:如何设计高性能的无服务器平台以及如何在平台上实现高效地编程。文章作者提出了ServerlessBench,一个无服务器平台开源的基准测试套件。其中的测试样例会从不同的维度评估无服务器平台,例如通信效率,启动延迟,无状态开销和性能隔离等。作者利用该套件评估了最流行的无服务器计算平台,包括AWS Lambda,Open-Whisk和Fn,通过评估结果总结出了一些关于无服务器平台的启示,比如将应用程序分离为无服务器函数的组合可以节省成本并提高性能,但“无状态”属性可能会损害无服务器功能的执行性能。这些启示可以为后续平台设计人员优化无服务器平台提供一些设计准则,并帮助应用程序开发人员设计最适合平台的功能。


白泽带你去参会@ChinaSys(上)


白泽带你去参会@ChinaSys(上)



会议后半程的内容将在《白泽带你去参会@ChinaSys(下)》中呈现,敬请期待~

参会代表 丨 赵钱孙 Robin

文案编辑 丨 赵钱孙 Robin

版面设计 丨 Wisher

什么?你还没有关注白泽?

了解更多更新鲜的安全攻防信息、想要深入认识白泽战队、联系或者加入我们——

欢迎扫描下方二维码关注公众号“白泽战队”,我们在这里等你来!

白泽带你去参会@ChinaSys(上)

公众号:白泽战队

一个有情怀的安全团队

本文始发于微信公众号(复旦白泽战队):白泽带你去参会@ChinaSys(上)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月19日18:46:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   白泽带你去参会@ChinaSys(上)https://cn-sec.com/archives/210484.html

发表评论

匿名网友 填写信息