UDN-企业互联网技术人气社区

板块导航

浏览  : 1255
回复  : 0

[资源分享] 分布式深度学习系统-容器化资源调度

[复制链接]
胭脂粉的头像 楼主
发表于 2016-10-21 10:54:53 | 显示全部楼层 |阅读模式
  一.为什么希望使用容器来作为深度学习系统的调度单元

  容器拉取/启动快速。隔离资源效果好。抽象来看,可以将容器的image作为job的一部分分发调度执行。但是容器化后会引入gpu,网络等性能的代价。nvidiagpu对Docker提供了支持,nvidia-Docker代替Docker执行create和run操作。cuda和cudnn镜像在这里

26326-5c514f7ca13fd681.png


  nvidia-Docker架构

  二.kubernetes(k8s)

  kubernetes作为google开源的容器编排工具,发展十分迅速。最近release的版本是v1.4.1,已经十分稳定。

26326-d598f137a746f486.png


  kubernetes架构

  说明

  每个node下面

  Dockerengine:负责下载运行镜像

  kubelet:管理pod已经里面的container

  kube-proxy:服务发现的proxy,代理网络流量

  kubernetes控制中心

  etcd:持久化支持观察者模式的配置中心,etcd高可用十分重要

  APIServer:操作的接口

  Scheduler:调度pods(container的小集合)到指定node运行,这个实际可以替换使用Mesos

  KubernetesControllerManagerServer:管理如保持副本个数等功能

  Kubernetes与mesos的区别@stackoverflow

  Kubernetesisagreatplacetostartifyouarenewtotheclusteringworld;itisthequickest,easiestandlightestwaytokickthetiresandstartexperimentingwithclusterorienteddevelopment.Itoffersaveryhighlevelofportabilitysinceitisbeingsupportedbyalotofdifferentproviders(Microsoft,IBM,RedHat,CoreOs,MesoSphere,VMWare,etc).

  Ifyouhaveexistingworkloads(Hadoop,Spark,Kafka,etc),Mesosgivesyouaframeworkthatlet'syouinterleavethoseworkloadswitheachother,andmixinasomeofthenewstuffincludingKubernetesapps.

  MesosgivesyouanescapevalveifyouneedcapabilitiesthatarenotyetimplementedbythecommunityintheKubernetesframework.

  Kubernetes可以代替Marathon,在Mesos之上搭建cluster的工具

  三.openai的分布式深度学习系统

  openai科学家们的训练日常需求

  小数据量,小模型的实验,快速尝试,一般需要几小时完成一次实验

  大数据量,大模型。一般需要几天完成一次实验

  日志对于分析定位十分重要,应该被持久化和更好的展示

  一般使用的工具箱

  python2.7,一般使用Anaconda

  使用tensorflow或者之上更高级的apiKeras

  分布式深度学习关键技术

  使用物理gpu机器和aws提供的cpu机器搭建混合集群

  使用kubernetes编排容器

  自定义组件来支持不同job动态扩容/缩容的需求,kubernetes-ec2-autoscaler

  使用 Terraform构建每个机器的基础环境,使用Chef统一服务器配置。

  四.tensorflow的分布式架构

  tensorflow从V0.8开始支持分布式训练,目前稳定的版本是r0.11。详细的分布式训练的方案在这里。

  几个主要的概念

  Cluster

  Cluser由一组Server组成,Server的功能可以是Worker也可以是PS。Worker中被client用session连接的作为master,提供协调,记录,checkpoint的功能

  Job

  Job包含多个Task,Job的典型角色是Worker或者PS

  Masterservice

  实现接口tensorflow::Session功能,协调worker工作。每个server都有实现

  TensorFlowserver

  每个server都实现了"masterservice"和"workerservice"

文章来源:简书
文章作者:skywalker

相关帖子

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部