CCF-ADL-105《面向大数据的系统软件与系统结构》
Sep 15th, 2019
0
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处理速度
- 新的机遇在于如何最大程度利用网络资源
- 当传输速度上去时,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)之后,整个存储层次结构都会发生改变。
|
NVM |
Disk |
寻址粒度 |
字节 |
块 (CHS) |
读写特性 |
读写非对称(读比写快,但还是比DRAM慢) |
读写对称 |
何时写入? |
频繁刷Cache? |
积攒一定程度DMA |
断电处理? |
Cache未写入的数据会丢失 |
DRAM未写入的数据会丢失 |
文件组织 |
内存有限 |
容量巨大 |
多核/多机处理 |
多核一致性/读写冲突问题一定要考虑 |
单机共享内存无冲突 |
NVM真正开创的一点在于推动存储层次结构上移
NVM面临的挑战:
- 抽象:操作系统(内核态、用户态)、文件系统
- 崩溃一致性(crash consistency):用了NVM后崩溃的数据就在cache里了
- 内存碎片
云时代的体系结构设计 (包云岗)
Summary of All
系统发展的两大驱动力
- 自顶向下-应用驱动
- 大数据->流、图、DL(周礼栋、郭振宇)
- 云服务(包云岗)
- 自底向上-工艺/硬件革新驱动
- PCIe->InfiniBand->NvLink(谭焜)
- NVM、RDMA(陈海波、舒继武)
智能计算系统(陈云霁)
详情见课程网站,部分章节内容如下:
- 深度学习算法
- 机器学习编程框架原理
- 机器学习处理器结构原理与设计
- 机器学习编程语言
- 分布式智能计算系统
- 智能计算系统测评
- 智能计算系统软硬件协同优化
参考资料