分布式实时处理系统浪潮——浅析“深度学习”看未来发展

卢誉声

Autodesk资深系统研发工程师,从事平台架构方面的研发工作。曾在思科系统(中国)研发中心云产品研发部工作多年,全程参与了海量数据实时处理、分析系统的构建与实施,并参与了大规模分布式系统的服务器后端、前端以及SDK的设计与研发工作,在分布式系统设计与实现、性能调优、高可用性和自动化等方面积累了丰富的敏捷实践与开发经验。译有《Storm实时数据处理》《高级C/C++编译技术》《JavaScript编程精解(原书第2版)》。

在分布式计算系统中,最早也是最有名的就是Hadoop。Hadoop利用MapReduce模型让我们开始有能力将大量的数据分布在不同的廉价机器集群中完成运算。但是Hadoop的致命问题是必须将所有数据处理完成后才能得到最后的输出,但如果是在视频流这种处理场景下,实时性非常重要,Hadoop完全无法满足要求,因为我们无法将所有数据处理完然后返回结果。

这种情况下Storm应运而生。Apache Storm采用了类似的计算模型,将所有的处理流程划分成一个个的组件,然后将这些组件组合成一台永不停息的网络机器,随时等待数据流入,处理完数据马上返回对应的结果,有效地解决了大部分问题。而最近开源的Twitter Heron则是Apache Storm的后继者(或者说是强有力的改进版),采用了和Storm一样模型和接口,但在平台架构、易用性和性能上都做出了非常大的改进,相信不久之后就能成为Storm的有力竞争者。

但这些计算系统基本都局限在一个通用的计算平台上,在应付某些特定问题上需要开发者做出相当多的工作,比如机器学习。目前机器学习技术得到了越来越广泛的应用,在图像处理、模式识别、决策支持等领域发挥了很大作用,已经成为了最重要的计算机技术之一。近几年非常火的深度学习(Deep Learning)更将机器学习提高了一个层次,而深度学习对浮点数的运算性能提出了非常高的要求。这么冷不丁的把深度学习这个概念摆上来,可能有些突兀,我们这里就先了解一下不久之前大热的Google AlphaGo,AlphaGo使用了大量的机器学习算法,包括传统的机器学习算法和深度学习,其中深度学习是提高AlphaGo机器学习能力的关键。因此,分布式的多机多GPU运算很可能会成为一个新趋势。而就目前来说,除了这些通用计算系统以外,在深度学习中,大家会使用特殊的机器学习框架来完成训练等计算任务,但大多数此类框架在分布式上还并不成熟(比如Caffe和MXNet等),要不就是难以将训练结果直接用到产品中,往往需要大量的裁剪和移植工作。而许多框架也与CUDA完全耦合,完全没有CPU和AMD显卡的市场,而在某些特定应用场景,这是不切实际的。

Hurricane实时处理系统(目前还处于原型和初期开发阶段,最新版本号为0.5)是一个使用C++开发的分布式实时计算系统,其架构上仿效了Apache Storm,保持了接口的高度一致,并期望能够在实时数据处理、机器学习训练预处理和高性能运算方面做些工作。同时,为了应付新的应用场景,比如VR的云渲染问题,正计划开发一个Hurricane的子项目——sewedBLAS——这是一个BLAS(Basic Linear Algebra Subprograms,即基础线性代数子程序)库的高层抽象,希望整合现有BLAS库,比如使用CPU的MKL/OpenBLAS,使用GPU的CUDA(来自于NVIDIA)和ACML,构建一个易于使用、跨平台的高性能线性代数库,并与Hurricane进行原生C++层级的深度整合,期望能够在分布式和科学计算、深度学习、VR渲染中找到一个切合点,减少从科研到产品的转换难度。与此同时,还希望能够帮助开发者更轻松地提高工作单元的运算能力。

说了这么多,其实Hurricane实时处理系统v0.5已经开源啦(访问http://github.com/samblg/hurricane了解详情),而且还把其中的设计细节、架构设计以及思想融入了《分布式实时处理系统:原理、架构和实现》(由机械工业出版社华章于2016年7月上市,访问http://product.china-pub.com/4970346了解详情)一书当中。本书由多位大数据专家联袂推荐,资深研发工程师撰写,参透大规模分布式实时处理系统。抽丝剥茧,从概念、原理到分布式实时计算框架实现,兼顾理论与实践,带领读者逐步实现一个高性能、基于C++11的分布式实时处理系统Hurricane。

END

版权声明:如需转载,请发邮件至holly0801@163.com申请授权。非常感谢!

原文发布于微信公众号 - 大数据(hzdashuju)

原文发表时间:2016-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

百度IDL最新成果:从自然语言入手,教AI智能体像人类一样学习

尽管人工智能取得了巨大的进步,但在许多方面仍然存在局限。例如,在电脑游戏中,如果AI智能体未预先编程游戏规则,则必须尝试数百万次才能确定正确的选择。人类可以在更...

31660
来自专栏媒矿工厂

广播电视拥抱人工智能

最近几年人工智能(AI)领域出现了许多令人惊叹的发展。尽管如此,AI仍然是一个容易被炒作和误解的术语。

44950
来自专栏CSDN技术头条

数据可视化方法、工具、核心理念及需要警惕的深坑

大数据是当下最火爆的话题之一。随之而来的,是数据可视化技术的持续发展,它用来展现和阐释大规模的数据。但是数据可视化技术并非千篇一律。 数据可视化是展现数据的最强...

223100
来自专栏新智元

Michael I. Jordan联合UC伯克利13位重量级学者:下一代人工智能系统的4大趋势和9大研究课题

【新智元导读】最近,加州大学伯克利分校大学的大牛们针对目前AI的火爆形势,又总结了一篇《A Berkeley View of Systems Challenge...

434100
来自专栏人工智能头条

谷歌工智能开源项目Tensorflow预示着硬件领域的重大变革

16930

“机器学习”自学手册

在自学“机器学习”方面,你能做的事其实很多。你可以参考一些书籍或者相关的课程、参加一些竞赛,或者使用一些你能用到的相关的工具等等。在本文中,我将结构性的阐述一下...

216110
来自专栏BestSDK

Oculus PC SDK新增NVIDIA镜头匹配底纹,减少像素渲染

Oculus PC SDK版本1.19现在支持NVIDIA的VRWorks Lens Matched Shading(LMS)技术,在支持的GPU上提供“性能提...

11250
来自专栏CDA数据分析师

自学机器学习向导

这里,你在学习机器学习的过程中,可以做很多的事情。这里有很多来自书籍和课程的资源给你提供参考,甚至你可以参加比赛和属性使用工具。在这篇文章里,我想对这些活动提供...

21470
来自专栏CSDN技术头条

谷歌工智能开源项目Tensorflow预示着硬件领域的重大变革

谷歌宣布将其最重要的创新项目之一 —— 人工智能引擎 ——作为开源项目发布到网上供大家免费使用,这展示了计算机软件行业正进行着什么样的变革。 最近,互联网巨头们...

212100
来自专栏人工智能头条

去苹果做 AI 一共分几步?看看这套面试指南吧(附面试题)

21420

扫码关注云+社区

领取腾讯云代金券