分布式算法运算,有人用过吗

关于分布式计算的专题-阿里云资讯网
分布式计算
分布式计算是一种计算方法,和集中式计算是相对的。随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
近日在《量子杂志》上的一篇文章,作为物理学的专栏作家,作者向我们讲述了在量子物理学研究的过程中,各种计算机技术的变迁,文中虽然没有提到专业的计算机知识,但也让人在一个新的角度看到了近年计算机发展的情况。 以下为译文: 10月8日,瑞典皇家科学院10月8日宣布,将2013年诺贝尔物理学奖授予比利時理论物理学者Fran&ois Englert和英国理论物理学家Peter W. Hi...
编者按:要开发出用户满意的软件并不是件容易的事,软件架构师必须全面把握各种各样的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。在UPYUN&Open&Talk&第二期“移动时代互联网金融架构趋势”的技术分享中,挖财首席架构师王福强带来了《挖财的互联网金融技术探索》,王福强重点分享了当前挖财架构设计中的6大关键点: 1. 系统层级分离 从大的体...
在今天,我们频繁地地接触到“大数据”这个术语。不过业内还是对大数据究竟是什么缺少一种标准化的定义。那么,大数据对数据存储基础架构中有意味着什么呢? 企业战略集团(ESG)对大数据作出的定义是“大小规模超过常规处理能力边界的数据集,它使得你不得不采取非常规手段。”简单来讲,我们可以将大数据这个词使用在任何突破了传统IT处理支撑日常业务运作能力边界的数据集合上。 这些边界可能会出现在以下几种...
Distributed computing - http://www.aliyun.com/zixun/aggregation/13452.html&&分布式计算 一门计算机科学,利用互联网上计算机的 CPU 闲置处理能力来解决大型计算问题。分布式计算把需要非常巨大的计算能力才能解决的问题分成许多小部分,然后分配给众多计算机进行处理,最后将这些计算结果综合起来得到最终结果。...
当下中国超大规模的单Master节点Hadoop集群在哪里?在淘宝。 据悉,淘宝Hadoop集群拥有2860个节点,清一色基于英特尔处理器的x86服务器,其总存储容量50PB,实际使用容量超过40PB,日均作业数高达15万,为淘宝网的日常运营做出了关键支撑。对了,它还有一个很美丽的名字:“云梯”。 近日,《网络世界》记者有幸采访到了阿里集团技术共享平台核心系统研发部海量数据技术专家罗李。...
问:最近一段时间,包括Pentaho、Actuate、http://www.aliyun.com/zixun/aggregation/13432.html&&Tableau、EMC、SAS、Jaspersoft 以及Birst等许多厂商都开始提供Hadoop工具。但是目前公司中懂Hadoop的人很少,厂商说他们的工具都有不错的易用性,即使Hadoop知识储备不足的用户也可以使...
现在许多行业或者服务都打着云计算的旗号,但并不是所有的都是云计算,一年一度的3.15即将到来,在这个特殊的日子里,让我们一起来关注如何辨别真假云计算,揪出“冒牌云服务”,去伪存真看云计算,就是要抓住云计算真正的内核,云计算实际有两个重要方面,缺一不可,不可偏废,一是集中计算,一是http://www.aliyun.com/zixun/aggregation/13452.html&&...
欧洲核子研究中心(http://www.aliyun.com/zixun/aggregation/38733.html&&CERN)正在通过LHC@home项目寻求普通PC和笔记本的帮助,共同“寻找希格斯玻色子”,最新版本是2.0,参与这个实验的节点们需要利用自己的笔记本和台式机组成一个“志愿者云”,共同利用计算机闲置时间的计算性能来模拟大型强子对撞机(LHC)光速的质子束发...
  在SIP项目设计的过程中,对于它庞大的日志在早先就考虑使用任务分解的多线程处理模式来分析统计,在前面有一篇Blog中提到了那部分的设计,但是由于统计的内容暂时还是十分简单,所以就采用Memcache作为计数器结合Mysql完成了http://www.aliyun.com/zixun/aggregation/38609.html&&访问控制以及统计的工作。但未来,对于海量日...
  在SIP项目设计的过程中,对于它庞大的日志在开始时就考虑使用任务分解的多线程处理模式来分析统计,在我从前写的文章《Tiger Concurrent Practice --日志分析并行分解设计与实现》中有所提到。但是由于统计的内容暂时还是十分简单,所以就采用Memcache作为计数器,结合MySQL就完成了访问控制以及统计的工作。然而未来,对于海量日志分析的工作,还是需要有所准备。现在最火...
  大http://www.aliyun.com/zixun/aggregation/14345.html&&数据处理模型MapReduce   (接《大数据处理——Hadoop解析(一)》)   大数据时代生产的数据最终是需要进行计算的,存储的目的也就是为了做大数据分析。通过计算、分析、挖掘数据背后的东西,才是大数据的意义所在。Hadoop不仅提供了数据存储的分布式文件系统...
  大数据处理技术正在改变目前计算机的运行模式。我们已经从中获得了大量收益,因为正是大数据处理技术给我们带来了搜索引擎 Google。然而故事才刚刚开始,基于以下几个原因,我们说大数据处理技术正在改变着这个世界:* 它能处理几乎各种类型的海量数据,无论是微博、文章、电子邮件、文档、音频、视频,还是其它形态的数据。   * 它工作的速度非常快速:实际上几乎实时。   * 它具有普及性:因为它所...
当蛋白质产生时,他们经历了一个称为折叠的复杂过程,正所谓:因为蛋白质分子从氨基酸长链变换到一个复杂形状(它称做“折叠”)。最后形成的蛋白质确定了其关键的性质与功能。科学家编写软件模拟蛋白质折叠的过程,以了解它们如何工作,从而开发新药,治疗疾病等。 Folding@Home是由http://www.aliyun.com/zixun/aggregation/13438.html&&gt...
大数据这个名词,它的官方定义是指那些数据量非常大、数据类别有非常复杂的数据集,这种数据集无法用传统的数据库进行存储,管理和处理。那可见,大数据的主要特点为数据量大(Volume),数据类别复杂(Variety),数据处理速度快(Velocity)和数据真实性高(Veracity),合起来被称为4V。 & 大数据中的数据量非常巨大,动辄就能达到PB级别。而且这庞大的数据之中,不仅仅...
动态负载均衡
分布式系统负载均衡策略研究 中南大学& 李登 虽然负载均衡研究至今已有近20年的研究历史,但由于负载均衡策略是NP完全问题,真正令人满意的实现系统并不多。 本文首先讨论了分布式系统及分布式对象技术,然后分章节详细而全面地研究了负载均衡的算法和模型,研究了产生额外开销的原因,负载均衡策略研究中的困难。 本文的创新之处首先是在于提出了信息中心调度策略,该策略是在广泛研究了目前典型的负载...
大规模数据
分组Dantzig选择器
分组Dantzig选择器的大规模分布式求解 中国科学技术大学 李良 本文的主要工作包括: (1)利用Dantzig选择器的解路径分段线性的特质,以改进的DASSO算法来求解Dantzig选择器,通过与线性化的交替方向乘子法进行对比,突出了改进算法的优越性。 (2)克服了分组Dantzig选择器中约束条件给求解带来的困难,引入中间变量进行简化,并应用交替方向乘子法(ADMM)和线性化的交替方向...
适用于海量遥感影像的分布式计算框架设计与实现 程付超 苗放 杨文晖 陈垦 针对海量遥感影像的处理与计算问题,在MapReduce计算模型的基础上,设计并实现了一种适用于海量遥感影像的分布式计算框架SPC(Split Process Cluster)。SPC框架能够对遥感影像数据进行分割,再通过Hadoop进行分布式处理,最后采用聚类算法对结果进行归并,从而实现海量遥感影像的分布式处理。测试结...
基于MapReduce的城市道路旅行时间实测计算 张帅 赵卓峰 丁维龙 王晓晖 城市道路旅行时间计算一直是智能交通系统中研究的核心问题之一,准确高效的旅行时间计算可以有效地帮助道路管控,减少交通拥挤。然而面对巨大而且快速增长的城市道路交通检测数据,如何将分布式计算模式融合到传统的旅行时间计算问题中已成为一个亟待解决的问题。论文基于海量道路车牌识别数据,设计了基于MapReduce编程模型的城...
“云”,既是对那些网状分布的计算机的比喻,也指代数据的计算过程被隐匿起来,由服务器按你的需要,从大云中“雕刻”出你所需要的那一朵。实在是非常浪漫的比喻。 云计算是一个新兴的商业计算模型。利用高速互联网的传输能力,将数据的处理过程从个人计算机或服务器移到互联网上的计算机集群中。这些计算机都是很普通的工业标准服务器,由一个大型的数据处理中心管理着,数据中心按客户的需要分配计算资源,达到与超级计算...
基于Hadoop 平台的数据分析方案的设计应用 姜文,辛阳,陈林顺 摘要:面对互联网上的海量数据,单台主机已无法满足其存储和计算要求,分布式存储和分布式计算的应用成为必然的趋势。其中Hadoop 是应用较多的分布式存储和计算框架之一。本文在该平台下,通过对国内某搜索引擎两个月内的上千万条用户搜索日志进行数据统计分析,给出相应Map/Reduce 程序的设计思路和实例,并提出Map/Reduc...
&& Cloud computing is“a style of computing where massively scalable IT-related capabilities are provided ‘as a service’ across the Internet to multiple external customers using Internet t...
在今天,我们频繁地地接触到“大数据”这个术语。不过业内还是对大数据究竟是什么缺少一种标准化的定义。那么,大数据对数据存储基础架构中有意味着什么呢? 企业战略集团(ESG)对大数据作出的定义是“大小规模超过常规处理能力边界的数据集,它使得你不得不采取非常规手段。”简单来讲,我们可以将大数据这个词使用在任何突破了传统IT处理支撑日常业务运作能力边界的数据集合上。 这些边界可能会出现在以下几种...
【编者按】Hadoop的缺点也和它的优点同样鲜明——延迟大,响应缓慢,运维复杂。被人广受诟病,但是 有需求就有创造,在Hadoop基本奠定了大数据霸主地位的时候,很多的开源项目都是以弥补Hadoop的实时性为目标而被创造出来,Storm正是在这个时候横空出世,Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时...
若您要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在5个工作日内回复。
售前咨询热线
服务与支持
账号与支持
关注阿里云
International分布式计算模式 一个让人又爱又恨的东西
  【PConline 杂谈】现在的数据环境已经发展的相当复杂和迅速,随着大数据和云计算技术的不断发展,已经使得数据中心的动态性方面开始被更多的人所关注,安全政策被诸如IP地址,端口,子网和区域等网络参数所绑定。这样就导致安全管理成为了高度手动且容易出错,缺乏能见度,以及能够随着云的迁移或应用程序和环境的变化而进行相应调整的灵活性。  分布式计算已经成为了这个云计算时代非常重要的计算方式之一,对于企业而言,分布式计算不仅能够让企业的计算模式和服务模式变得更加高效,同时在计算模式的可扩展性方面也变得尤为突出。  在许多企业,部署新的应用程序,改变现有的应用程序,或将应用程序迁移到云,需要其安全团队花费相当大的努力。诸如像防火墙、VLAN的划分和配置以及云计算系统的安全等诸多方面都受到很多用户的关注。  企业对于其数据中心和公共云环境的应用程序工作负载之间东西走向的流量普遍缺乏可视性。他们需要对基于个别工作负载所构成的应用程序之间的流量的多层应用程序有一个图形视图。  这种应用程序的拓扑视图可以提供南北走向和东西走向的互动,灵活的工作负载全貌,并连接来自外部实体的未经授权的请求。此外,安全性也是现在很多用户所关注的。很多时候,企业在投资了强大的外围防御之后,就觉得自己可以高枕无忧的假定这些防御背后的工作负载是安全的了。然而,在过去相当长一段时期,大多数黑客攻击所导致的数据泄露,均是由于黑客入侵了企业内部的某一台服务器而造成的。  企业的安全团队往往担心缺乏对于在云中部署的网络的控制。大多数数据中心的安全策略对于网络存在依赖,这意味着在私有数据中心的应用程序的安全较之在云中的应用程序的安全往往是非常不同的。  在分布式计算环境中,应用程序的工作负载需要跨公共和私人网络进行通信,因此,加密数据是必要的。IPSec连接可用于应用程序工作负载之间的通信加密。但是,尽管IPSec提供节点之间永久性的,与应用无关的加密连接,其也很难建立和维护。&
服务器论坛帖子排行
最新资讯离线随时看
聊天吐槽赢奖品从分布式计算到分布式训练 - 简书
从分布式计算到分布式训练
对计算机来讲,所谓的计算,不过是将存储在各个地方的数据通过数据总线进行传输,然后经过算术逻辑单元执行一系列预设好的规则,最终再将输出写入到某个位置。
在计算能力有限、存储成本偏高的情况下,就需要利用好计算机的资源,让它的计算能力发挥出最大的价值,所以在编程初期用指令直接操作硬件,例如汇编语言中常见的操纵寄存器,本质上都是为了减少数据传输的时间,充分利用CPU的计算能力,避免因为数据的长时间传输导致CPU进行过长的等待。
分布式计算的到来
随着科技的发展,“数据存储”领域有了质和量的双向发展,除了稳定性、安全性的提升外,容量也呈指数级增长。因此可以在单机上直接构建整套服务,类似LAMP类似的这种一键搭建服务器的套装软件有了更多的应用场景。
然而随着业务的发展,另一个问题逐渐显现出来:虽然磁盘容量增加了,但是机器的访问速度并没有变快。
什么意思呢?举个例子:虽然20年前一个盘最大的存储空间只有100MB,但是读取完整磁盘只需要1分钟。如今虽然磁盘容量可以轻易的变成1TB、1PB,然而读取完整个盘的数据需要数小时之上。
这背后的问题在于技术发展的限制:磁头在磁道上移动速度的增速远远低于磁盘容量的增长。用通俗的话来说就是,仓库的面积已经从10平米扩展到100平米甚至到1000平米了,但是一个搬运工一天搬运货物的速度并没有显著的提升,所以虽然仓库的容量越来越大,但是搬完整个仓库的货物需要的时间却越来越多。
不过好在我们还有另一个好消息:带宽逐渐变得廉价。相比20年前,GB带宽的光纤已经非常普遍,网络能够实现一秒传输,数据量已经远远超过了整块盘的容量。于是一个大胆的想法被提出来了:既然读取完一个盘的数据需要几个小时,那把数据分成N份,分别放在不同的机器上并行读取,是不是一秒钟就读取完了?
采用网络并行的方式进行读取,将瓶颈从磁头移动转移到了网络,而要增加一条高速带宽,已经不需要付出多么大的代价。
还是仓库的例子,既然一个搬运工速度这么慢,搬完1000平米仓库需要1000分钟,那么我用1000个搬运工搬1000平米是不是1分钟就完了?这个时候影响搬运工的,仅仅是大门的大小,需要同时容纳1000个搬运工进出而已,但是开个大门似乎成本并不高,大不了把四面的墙都拆了做成门嘛。
一个优秀的思想被提出来后,总会有许多追随者尝试将其落地,Google率先丢出了三大论文:BigTable、GFS、MapReduce,从理论上讲述了在分布式下如何做到数据的存储、计算,甚至提出了可以在分布式下做结构化的检索。
三大论文开启了分布式计算的时代,然而对于工程界来说,仅有三篇论文并不足以解决生产上的问题,Google并没有将内部实现的内容进行开源,于是另一帮团队:Yahoo,自行根据论文进行实现,而后将其贡献给Apache,逐渐发展成时至今日依旧如日中天的:HDFS、Mapreduce、HBase。
其中尤为重要的分布式计算模型:MapReuce,我们常称为第一代MR,也就是:MRV1。
上图是MRV1的主要架构图,我们可以看到,在MRV1里面,主要分为两个部分:运行环境和编程模型,所谓的运行环境,指的是用来进行分布式任务调度、资源分配等任务运行过程中涉及到的信息,而编程模型,则指的是提供给开发人员进行开发的接口。
对于MRV1来说,它的运行结构图如下所示:
可以看到,在MRV1里面,当我们的一个任务被提交上去之后,由统一的调度器进行任务的监控、分发,以及资源的申请、回收控制等操作。
MRV1有着明显的两个阶段:Map和Reduce,Map阶段主要负责处理输入,每一个Map任务对应一个分片的数据,而后将数据送入到一个特有的数据结构:环形缓冲区。所谓的环形缓冲区,是用来记录数据和索引的一个区域。当环形缓冲区快要溢出的时候,数据将会被落地到磁盘。在数据输入完成后,将会调用用户自己实现的map函数,而后通过与jobtracker的通信,保持着联系,然后分别进入到reduce的阶段,renduce阶段会汇集所有的数据,这个动作在广义上会被很多人称为:shuffle。实际上shuffle并不是reduce才发生的,对于MR来说,从数据从HDFS上加载开始,shuffle就已经开始了,一直伴随到reduce结束。
MRV1类似于工厂生产辣椒酱,很多工人负责把流水线送到自己身边的辣椒切碎,这个就是Map操作,所有工人切碎的辣椒汇集在一起做成辣椒酱,这个就是Reduce操作。也许某个工人把辣椒切成块的速度赶不上流水线送给他辣椒的速度,那么他就需要把辣椒从流水线拿下来放在他的自己的某个地方存着慢慢切,这个动作就相当于shuffle操作。因为最后汇总会等到所有的人都把辣椒切成块之后再处理,所以如果有一个人没有完成,就需要等待,这个时候就发生了我们常说的,数据倾斜。
MRV1是统一管理资源的,类似于一家公司的所有决策都需要通过CEO来发出指令,所有人都听命于CEO,每个人做什么事全都是CEO一一安排,所以如果CEO忙不过来了,或者有事联系不上了,整个组织就成了无头苍蝇、完蛋了。
因此对于MRV1来说,虽然它实现了一个并行计算模型,但是其暴露出来的问题也显而易见:
固化的两阶段模式,限制了迭代任务的进行
多次数据落地,整个运行时间大大延长
所有任务由统一的jobtracker调度,存在单点故障。
对资源的控制不到位,没有明确的任务优先级
资源利用不合理,例如在V1里面,资源分为map solt和reduce solt,导致运行map的时候,reduce的solt全部闲置
在这些问题逐渐暴露出来后,有很多补救的措施逐渐出现,例如Tez就是一个非常好的例子,它通过接管MRV1的输入和输出,减少其落地到磁盘的动作,目前Tez已经是Hive的内置计算模型。
但是这些补救框架,并不能从根本上解决MRV1的问题,于是第二代MR被研究出来,也就是MRV2,那么对于MRV2来说,它是怎么做的呢?既然一个公司全靠CEO去安排任务和进行管理有风险,那么我们就把公司的所有人分成N个小团队,每个团队有自己的Lead负责进行工作安排,CEO干什么呢?CEO只负责把要做的事情丢给小团队的Lead,小团队的Lead自己去安排手下的人干活。
大多数时候我们对MRV2这个名字并不熟悉,但是我们一定熟悉一个名字:Yarn。Yarn就是MRV2下最核心的功能。
通过上面的图我们发现,对于MRV2来说,它的资源的申请、控制、回收,不再由统一的jobtracker(前面举例中的CEO)来调度了。在MRV2里面,它产生了几个新的概念:
Resource Manager:负责统一管理所有资源
Application Master:负责一个任务的监控、资源分配、回收等工作(前面例子中的小团队Lead)
Node Manager:各个节点的资源监控
这里面并没有提到Yarn,因为Yarn并不是一个技术,而是一个概念,代表V2里面整个任务调度和资源管理系统。我们合并起来统一称为:Yarn。
我们可以对比一下MRV1和MRV2的机构图:
在MRV2里面,依旧分为两个部分:运行环境和编程模型。然而不一样的地方在于,每一个应用程序需要实现自己的Application Master,也就是资源管理系统。Resource Manager进行一次统一的资源分配,由Application Master自己去决定怎么把资源分给每一个Task,在实际开发中,我们发现自己似乎并没有写过资源分配相关的代码,MR的代码依旧可以运行,那是因为MRV2里面,默认提供了MR的Application Master,在MRV2里面,API也发生了变化,而为了兼容MRV1,分别存在两套API。
同时由于MRV2的超高思想,将整个资源调度独立出来,这带来一个好处,那就是Yarn不单单能调度MR计算引擎,还能调度其他计算引擎,例如Spark。虽然目前有Mesos,但是大多数情况下我们还是会选择采用Yarn去作为资源调度器。
Spark分布式计算模型
看起来似乎MRV2向前迈进了一大步,解决了不少问题,然而对于MRV2来说,依然存在它无法跨越的问题。首先为了兼容MR计算模型,它依然保留着两阶段计算的模型,因为对迭代计算基本乏力。MR模型就像一个工厂流水线要生产辣椒酱,要先把辣椒切碎,然后再汇集起来做成辣椒酱,固定的2步操作,如果想在切碎之前再做点啥,或者做成辣椒酱之后再贴个标签啥的,MR模型就支撑不了,因此“需要任意灵活的进行迭代”这一需求就出来了,这个就是Spark的特点。
同时,MR的核心思想是:运行在廉价服务器上,挪数据,所以对于实时计算,MVR2基本抓瞎。
在这些问题之上,Spark诞生。Spark的思想比较简单:挪计算不挪数据。既然要挪计算,那怎么去描述这个计算呢?于是通过RDD封装一个针对数据对应关系记录,在这个封装之上来记录计算。所以在Spark里面,操作分为两类:Action和Transformation。
为什么会有这两类操作?我们可以想一下,如果数据被分散在100个节点,我们需要做的是查询某个字段大于0的数据,那么这个计算根本不用把数据汇集在一起,统一过滤,分别在不同节点进行过滤就行了。
而如果我们的操作是统计共有多少条数据,则需要将数据汇总,所以对于Spark来说,Action才真正会触发“挪数据”这个动作,Transformation只是做了一个标记转换。我们对Spark的各种调优,大部分时间也是在尽量减少Action的操作。由于在Spark里面,RDD是只读的,所以每一次操作,都会产生一个新的RDD,因此可以形成一系列的RDD依赖,我们也叫RDD链。
模型训练更多的偏向于AI领域,在AI领域有两个明显的分支:概率论和神经网络。在计算能力欠缺的时候,概率论模型是最为普遍的做法,但是近年来发展起来的计算能力,让深度神经网络模型逐渐的展现出风采,很多框架都表明自己就是一个深度学习框架。
模型训练本质上是对数据特征的提取,训练本身和大数据没有必然的关系,但是却相辅相成,数据量越大,提取的特征越多,模型训练出来的效果自然越好,然而数据量越大,对计算的要求就越高,也正因为如此,对模型的探索始终是在小数据、抽样领域进行尝试。
那么什么是特征呢?举个例子,我们如果想要预测一个人能活多少岁,最简单的办法就是返回已知去世的人的平均年龄,无论是谁都返回这个值,要做这样的系统当然没有问题。但是仔细观察就会发现,男性能活多少岁和女性似乎不一样,那么我们可以简单的修改一下,在预测之前先判断一下性别,如果是男的就返回男的平均,女的则返回女性的平均。在这里我们已经无形的用了性别这个特征,是因为我们认为性别对结果是有影响的,而训练就需要找出无数个这样的特征。
然而目前对于大数据的处理能力,似乎已经发展到了一个非常好的阶段,至少在分布式计算上,理论上是可以通过水平扩展无限的增加计算能力。
可是模型的训练和应用在工程中的发展一直不是那么顺利,大约总结起来有如下几个原因:
门槛较高,首先需要有比较专业的背景知识,同时还需要具备较强的编程能力,方能将其应用于工程之上。
对于模型训练来说,没有大数据量的支持,生产上的效果始终差强人意,而数据量增大,如何去处理数据又成了另外一个领域的问题,能够同时处理好两方面的问题,人员较少。
在实际工程中,我们获取到的数据集,往往不是训练模型直接能用的,要达到能够直接用于训练模型,还需要非常多的额外处理,这些代价甚至会高于模型训练本身,因此让模型训练这件事的成本变高。
部分使用者,往往并没有达到模型训练的程度,例如连基本的数据平台都不存在,茫然的使用模型,导致效果不如预期,而将结果归结于模型本身的好坏之上。
虽然模型训练的发展过程中有诸多问题,但是依旧能够看到其在向前发展,目前来说,基于GPU的训练,已经成了所有做模型训练的人的标配,Google甚至研发了自己的GPU:TPU。而很多芯片研发公司,也在致力于研究开发出专门用于模型训练的芯片。
对于模型训练来说,目前一般会有两种做法:
单机模型训练
分布式模型训练
单机模型训练
所谓的单机训练,其实就是在一台机器上训练了,对于单机模型训练来讲,瓶颈主要在于提升单机的性能配置,例如不停的提高单个GPU的计算能力。而对于数据来说,大部分都是利用本地数据,虽然我们可以读取分布式文件系统的数据,但是实际上还是经过了shuffle操作,将数据读取到本地,而模型的训练,都是全程单机训练,我们可以通过各种优化算法,例如奇异值分解等手段,来降低计算成本。
分布式模型训练
对于单机训练来说,单个GPU,始终会陷入瓶颈,所以对于模型训练,也有人开始尝试,是否可以分布式训练?
模型的分布式,相对于其他分布式计算会困难许多,首先模型依赖于数据,而模型本身的计算又要依赖于GPU,那么要如何将数据和计算能力结合?
对于目前来讲,模型的分布式一般会有以下几种做法:
数据分布式训练
模型分布式训练
上面的图片比较形象的描述了几种不同的训练方式,首先对于数据分布式来说,每一个节点都有一个完整模型的副本,而对于模型分布式来说,模型的计算会被分散到不同的节点上,例如Tensorflow就通过图形化的表达方法,将计算描述为一个图,然后再判断图中的哪些计算可以并行运行,分别拆分到不同的节点上进行训练,从而达到分布式训练的效果。在混合训练中,模型训练会被分散,同时数据也会分散,无论是哪种分布式训练,最终都会涉及一个操作:模型的归一。在目前来说,有不同的做法,可以将模型最终归一,例如集成算法就是逻辑上实现了模型的归一。
对于大数据和人工智能来讲,现在仅仅是萌芽时期,后面还有大量的工作要做,而模型的训练无论是单机还是分布式,都还没有达到真正稳定的生产批量效果,这些挑战,不仅仅来自于技术的实现,同时也来自于业务的配合,如何利用现有的技术能力,将其推广到业务上解决问题,才是重点需要关注的地方。
文/ThoughtWorks白发川
姓名:李兴宇 学号: 转载自:http://www.jianshu.com/p/b8,有删节。 【嵌牛导读】:随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该...
//我所经历的大数据平台发展史(三):互联网时代 o 上篇http://www.infoq.com/cn/articles/the-development-history-of-big-data-platform-paet02 编者按:本文是松子(李博源)的大数据平台发展史...
Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD 抽象 2.2 Spark 编程接口 2.2.1 例子 – 监控日志数据挖...
Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD 抽象 2.2 Spark 编程接口 2.2.1 例子 – 监控日志数据挖...
该论文来自Berkeley实验室,英文标题为:Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing.可在谷歌学术中搜索到。注意是2011年的,...
“请问你有看到我的猫吗?他叫汤姆,英国蓝猫。” “汤姆?是动画片《汤姆和杰瑞》里面的汤姆吗?” “是,是,是,就是那种猫,蓝色的,哦,不,蓝灰色的毛,金色的眼睛,肥嘟嘟的,很可爱。你有看到吗?” “没看到呢,这里是地铁站,现在新规定已经不允许带宠物进来了,最近宠物的品种又多...
edgesForExtendedLayout属性介绍: 在iOS 7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:],它的默认值为UIRectEdgeAll。当你的容器是navigation cont...
5月20日,区委书记宋洁就全区“双迎攻坚”工作进行了现场督导检查。其中“六小门店”治理工作以聂寨村为例提出几点问题和要求:一是工作主动积极性不够;二是仍然采用关门迎检的应付办法;三是要攻克市场、医院、车站等问题集中区域;四是要全面看齐示范街示范店标准。 针对督导意见,区卫计...
地点.深圳梧桐山 时间.十月一号
十一长假前一天晚上邀请几位好友一同去爬梧桐山,约好第二天梧桐山大门见面,无奈第二天清早7点醒来窗外居然下起了小雨,内心小小的挣扎了一下,还是决定在爬山群里说了一句:爬山活动取消,大家可以继续睡觉了。实际上我的内心并不想取消,上了一周...
来源:http://yp.oss.org.cn/blog/show_resource.php?resource_id=1018 安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相 应的配置。配置...

我要回帖

更多关于 分布式算法 的文章

 

随机推荐