dyweb / papers-notebook

:page_facing_up: :cn: :page_with_curl: 论文阅读笔记(分布式系统、虚拟化、机器学习)Papers Notebook (Distributed System, Virtualization, Machine Learning)
https://github.com/dyweb/papers-notebook/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3ATODO-%E6%9C%AA%E8%AF%BB
Apache License 2.0
2.14k stars 250 forks source link

Multi-tenant GPU Clusters for Deep Learning Workloads: Analysis and Implications #122

Open yylin1 opened 5 years ago

yylin1 commented 5 years ago

https://www.microsoft.com/en-us/research/uploads/prod/2018/05/gpu_sched_tr.pdf

yylin1 commented 5 years ago

此篇論文主要透過觀察企業分配多租戶集群下,影響DNN訓練工作中,集群使用率的的三個問題 (1) the effect of gang scheduling and locality constraints on queuing (2) the effect of locality on GPU utilization (3) failures during training.

gaocegege commented 5 years ago

这篇很赞,我也打算读一下。他们的集群是目前比较主流的 ML 集群的硬件配置。data 存储用 HDFS,调度是 Yarn,其中训练是跑在 Docker 容器里的

yylin1 commented 5 years ago

剛好搜尋到,最近一直在看相關論文,還在確定目前scheduling方向

gaocegege commented 5 years ago

这篇文章是基于 2 个月内,数百用户发起的 100,000 个任务和 YARN 集群的日志等的分析,得到了一些观察:

基于这些观察,文章提出了几个经验之谈:

gaocegege commented 5 years ago

关于工作负载,主要是分布式训练。

为了用更大的数据集扩展训练,许多作业使用跨机器的分布式训练。分布式训练通常使用数据并行,每个 worker 将模型的一个完整副本加载到自己的内存中。在每个迭代中,每个worker使用输入数据的子集执行训练,在迭代结束时,所有worker交换梯度来同步模型更新。此同步阶段使用MPI AllReduce[6]或参数服务器执行

所以是同步更新参数的方式

gaocegege commented 5 years ago

关于架构,如图所示:

Screenshot from 2019-08-13 11-35-58

gaocegege commented 5 years ago

一些可能导致训练停止的错误:

Screenshot from 2019-08-13 11-42-52

Screenshot from 2019-08-13 11-44-02

gaocegege commented 5 years ago

错误出现情况统计

Screenshot from 2019-08-13 11-44-39

OOM 最多,有点真实

gaocegege commented 5 years ago

这篇文章具有非常浓厚的工业界的味道,有很多干货