CCF-ADL-105《面向大数据的系统软件与系统结构》

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(陈海波、舒继武)

智能计算系统(陈云霁)

详情见课程网站,部分章节内容如下:

  • 深度学习算法
  • 机器学习编程框架原理
  • 机器学习处理器结构原理与设计
  • 机器学习编程语言
  • 分布式智能计算系统
  • 智能计算系统测评
  • 智能计算系统软硬件协同优化

参考资料

  1. NVM的标志性里程碑是Intel制造出了Optane 3D XPoint实体商用NVM