Docker在云平台上的最佳实践: 当容器服务遇到深度学习

12月9日云栖计算之旅线下沙龙第2期《Docker在云平台上的最佳实践》,阿里云技术专家必嘫给大家带来了“当容器服务遇到了深度学习”的演讲。本文主要从深度学习的兴起开始谈起,进而介绍了Docker技术、阿里云容器服务,重点介绍了支持云上的高性能计算应用需要哪些,包括GPU的调度、隔离和监控。

视频回顾

深度学习

人工智能已经进入了深度学习时代。传统的让机器自动化的方式已经不再适合解决一些问题,机器学习开始兴起,让机器像小孩子一样自己去认识世界。而深度学习本身是机器学习的一个算法,深度学习想用数字化的方式模拟神经元进行运算,对于变量的抽取完全是基于数据的。

f67fceec747ca93eb7418c6bcae29d2efad76681

基于深度学习的机器视觉能力上已经接近人类。传统的机器学习方法在2011年之前一直使用,识别的准确率不会高过77.5%;2012年开始引入深度学习,识别准确率得到大大提升,错误率接近5%。在ILSVRC的ImageNet计算机视觉系统识别项目上,基于深度学习的机器视觉能力已经接近人类(如上图)。今年初AlphaGo与韩国棋手李世石4:1的比赛结果,再次向人们展示了人工智能的强大之处。

f5b13ee36ef4d1b3b0fb59073f29dd445cbbb02f

深度学习起起伏伏,1960年代开始有了单层神经网络,80年代算法模型已经相对完备,2009年GPU的出现,提供了巨大的计算量,使深度学习真正的应用起来。

554571835c9e03638e113da97e65133153923b17

深度学习许多算法依赖于矩阵的乘法,是CPU速度的45倍左右。但是,当深度学习应用越来越广泛时,提供数据量越来越巨大时,目前常用的单GPU并不满足深度学习井喷式的计算需求。

当我们进行GPU资源管理时,要向韩信点兵一样多多益善。但是,并不是对每个人来说,GPU越多,管理能力就越高,而是有没有能力将集群管理起来,我们需要对GPU进行统一规划和管理的角色存在。

Docker

9a8431dc40069355be82f16e6e134498441b8bce

Docker搭建了一个从软件、开发、测试、交付、到运维的潜在规约,将应用的运行环境固化,一层层向下交付。一个Dcoker镜像只能跑一个容器,但多数复杂应用并不是一个容器能够完成的,这需要Docker Compose完成,Docker提供了资源分配方式,Docker Engine通过Docker Registry分配部署的。

阿里云容器服务

f4d6687f02eac34f518703e69cdd266414bfd68c

阿里云容器服务底层为容器层,不存在公有云专有云分隔,相当于无边界计算,可以在任何环境下部署;阿里云在调度上进行了扩展,在阿里云不同地区部署容器服务时,可以根据高可用性把同样两个前端Web部署到不同地方,对GPU的支持,阿里云也在已有Swarm基础上进行了扩展,用户可以支持真实的应用软件的开发部署场景,阿里云也将云监控、日志服务等集成在了一起。

GPU

为了能够支持云上的高性能计算集群,我们需要按GPU调度、按GPU隔离、按GPU监控。

74a60307cf066cdf48ca0ebafa73277f2fc1b264

当向一块机器要两块GPU卡时,选择两块不同的GPU,性能是完全不一样的。

ad90053a661401fddda3368cc523fc432a5ece39

当同时调度GPU资源和CPU资源的时候,当指派多个GPU资源给一个任务时,当调度多个GPU任务完成同一个工作的时候,和GPU相关的拓扑结构很重要。

42d8c18ed7c5e10d6f14ce8dd923d9fcfce3e683

阿里云容器服务支持GPU的调度,对于最终用户来说是一个透明的过程,用户只需要在label下描述需要一个GPU,我们就会负责帮您选择要使用的GPU,并将其隔离好。

GPU监控

b5a2defa1ec3f5f53f9c83f1f00afd1273850d14

当使用GPU运算时,我们会让用户观测到GPU状况,监控GPU关键指标包括资源使用量、内存使用量以及温度等;我们也会自动恢复,kapacitor触发容器服务弹性伸缩功能,OSS保存checkpoint或Model。

 

云上的高性能计算应用还需要什么

无缝连接阿里云的云服务,构建完整的深度学习应用。

00ee74e11132ea254e62fb0da8b4f8f746c0dd53

简单的深度学习离线训练架构需要有HPC、需要在GPU上有应用、容器服务在调度上有优势,需要分布式存储把数据、计算隔离开;复杂的深度学习离线训练架构在这个基础上,还需要数据库、大数据的服务。

0504eba151e24eae8681fa99b8c0922c05f906f1

简单的深度学习在线预测架构,首先要保证高可用性,前端需要负载均衡,后端需要OSS;复杂的深度学习在线预测架构还需要云监控和云盾以及数据库。

基于HPC的深度学习解决方案

72238d989f9d7646ae1a898ac2c475797a4d5761

其中包括TensorFlow应用、Caffe应用,结合容器服务,释放HPC威力,快速创新、持续进化,打通从学习到服务价值链路。

 

必嘫:阿里云技术专家,在应用性能监控和软件交付方面有丰富的实践经验,目前专注于容器服务,微服务以及机器学习等领域。

 

关于云栖计算之旅

云栖技术之旅,是由阿里云云栖社区主办,整合了阿里集团内部多个领域顶级技术专家与技术资源,通过线下技术培训的方式,为热爱技术的朋友提供一个交流&分享技术观点、碰撞精彩火花的平台。

第1期精彩回顾:https://yq.aliyun.com/articles/62414

第3期预告(12月23日前端专场):https://yq.aliyun.com/promotion/140

 

关于阿里云容器服务

阿里云容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造Docker云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

阿里云容器服务:https://www.aliyun.com/product/containerservice

 

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/68351

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。