CCF-ADL-面向大数据的系统软件与系统结构
2019年9月7日至9日,中国计算机学会(CCF)于北京中科院计算所开展了第105次学科前沿讲习班(ADL),主题为《面向大数据的系统软件与系统结构》。这次讲习班请到了国内做系统做得最为出色的那些学者过来做报告,我也有幸到现场去学习,本文为简要的会议记录。
请到的几位老师以及他们的报告题目如下:
| 讲演者 | 单位 | 题目 | 
|---|---|---|
| 周礼栋 | 微软亚洲研究院 | 《大数据系统的演化:理论、实践和展望》 | 
| 谭焜 | 华为中央研究院 | 《从虚拟化到“在网计算”:智能网卡和在数据中心网络中的应用》 | 
| 陈海波 | 上海交通大学 | 《面向新存储介质的文件系统设计、实现与形式化验证》 | 
| 陈云霁 | 中科院计算所/寒武纪 | 《智能计算系统课程》 | 
| 郭振宇 | 阿里巴巴/蚂蚁金服 | 《大数据系统实践:从MapReduce到融合计算》 | 
| 舒继武 | 清华大学 | 《大数据场景下的持久性内存存储系统构建探讨》 | 
| 包云岗 | 中科院计算所 | 《面向下一代计算的开源芯片与敏捷开发实践》 | 
下面的笔记对各位老师的报告做了一定整合。
大数据系统的演化(周礼栋、郭振宇)

Foundation
MapReduce刚出来时,被喷得很厉害,甚至有人说这是”A major step backwards” (by David Dewitt)。
Jeff Dean, Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, OSDI, 2004
可以对比看看
| Database | MapReduce | 
|---|---|
| Hash/B-tree | brute force w/o indexing | 
| Relational algebra | Dataflow | 
| SQL (select from where) | None | 
所以有了SCOPE [VLDB’08]

- Express computation in declarative data parallel language
 - Compile to high-performance dataflow engine
 
Holistic Code Optimization
Express computation in declarative data parallel language
Compile to high-performance dataflow engine
- 问题在于编译器分别对命令式和声明式程序段进行编译,Compiler only has local view
 - Make the compiler have global view!
 
所以就有了PeriSCOPE [OSDI’14]的工作。

Key:更好融合DB & Dataflow
- 将SQL-like code编译成过程式语言
 - 与原来的数据流图打乱融合优化
 
Scheduling and Resource Management
单机优化好了,分布式规模上去了又该怎么办?
- 问题:资源利用率低,未能发挥大规模集群的优势
 - 做调度和资源管理!
 

Beyond Batch Processing
- StreamScope [NSDI’16]
 - Wolong [Eurosys’19]
 


Opportunities when DL meets RDMA
- One-side RDMA R/W; GPU-Direct RDMA
- Efficient memory copy between host and device memory across servers
 - Enables to manage global memory similar to local one
 
 - Many data operated and transferred are dense tensors
- Do NOT require variant data serialization / deserialization
 - Do NOT require extra batching since access pattern is already sequential
 
 - Many runtime information can be decided statically
- Workload patterns are repeated across mini-batches in iterative way
 - Shape and placement of tensors can be known beforehead
 
 



注意DL应用对于错误也不敏感,因此在DL系统设计中也很少考虑容错。
Summary
- 关键是问题,与以前的问题有什么本质的区别
 - 找到系统的痛点,这就是问题所在(应用导向,自上而下)
- 传统DB没法高效进行大数据处理->MapReduce
 - MR丢失了DB的特性,难编程->SCOPE
 - MR+DB易编程,但性能差->PeriSCOPE
 - 规模变大资源利用差->Scheduling
 - DL/Graph时代有状态/迭代类型数据流->Wolong
 - 框架太多不易编程部署->Fusion Computation
 
 - 设计高效易用且正确的抽象
 

大数据时代的网络(谭焜)

RDMA Advantages
- Zero-copy: Maximumly reduce duplication
 - Kernel bypass: Do not go through network stack
 - No CPU involvement: Same as DMA
- Three modes (One-side R/W, Two-side)
 
 - Message-based transactions: Not stream (socket)
 - Scatter/Gather entries support
 
Summary
- 大背景:网络速度»CPU处理速度
- PCIe、InfiniBand、NVLink
 
 - 新的机遇在于如何最大程度利用网络资源
- 当传输速度上去时,CPU本身就成了瓶颈
 - RDMA是一个值得关注的点
 
 
面向新型存储设备的系统设计(陈海波、舒继武)
Tape is Dead</br>Disk is Tape
Flash is Disk
RAM Locality is King
--- Jim Gray (Turing Award'98), Microsoft, Dec 2006
而当引入非易失内存(Non-Volatile Memory, NVM)1之后,整个存储层次结构都会发生改变。

| NVM | Disk | |
|---|---|---|
| 寻址粒度 | 字节 | 块 (CHS) | 
| 读写特性 | 读写非对称(读比写快,但还是比DRAM慢) | 读写对称 | 
| 何时写入? | 频繁刷Cache? | 积攒一定程度DMA | 
| 断电处理? | Cache未写入的数据会丢失 | DRAM未写入的数据会丢失 | 
| 文件组织 | 内存有限 | 容量巨大 | 
| 多核/多机处理 | 多核一致性/读写冲突问题一定要考虑 | 单机共享内存无冲突 | 
NVM真正开创的一点在于推动存储层次结构上移
- 不对称的加速比(Incommensurate Scaling)导致新的瓶颈出现(木桶原理:某一部分速度变快了,另一部分速度慢,那快的会被慢的拖慢,进而产生系统瓶颈)
 - 进而整个系统软件栈+应用都需要重新设计
 - 新的机遇!
 

NVM面临的挑战:
- 抽象:操作系统(内核态、用户态)、文件系统
 - 崩溃一致性(crash consistency):用了NVM后崩溃的数据就在cache里了
 - 内存碎片
 
云时代的体系结构设计 (包云岗)
Summary of All
系统发展的两大驱动力
- 自顶向下-应用驱动
- 大数据->流、图、DL(周礼栋、郭振宇)
 - 云服务(包云岗)
 
 - 自底向上-工艺/硬件革新驱动
- PCIe->InfiniBand->NvLink(谭焜)
 - NVM、RDMA(陈海波、舒继武)
 
 
智能计算系统(陈云霁)
详情见课程网站,部分章节内容如下:
- 深度学习算法
 - 机器学习编程框架原理
 - 机器学习处理器结构原理与设计
 - 机器学习编程语言
 - 分布式智能计算系统
 - 智能计算系统测评
 - 智能计算系统软硬件协同优化
 
参考资料
- NVM的标志性里程碑是Intel制造出了Optane 3D XPoint实体商用NVM ↩
 
以上是 CCF-ADL-面向大数据的系统软件与系统结构 的全部内容, 来源链接: utcz.com/a/128153.html

