基于Spark平台的GPU调度研究

上传人:zh****u6 文档编号:189206635 上传时间:2023-02-21 格式:PPTX 页数:40 大小:1.14MB
返回 下载 相关 举报
基于Spark平台的GPU调度研究_第1页
第1页 / 共40页
基于Spark平台的GPU调度研究_第2页
第2页 / 共40页
基于Spark平台的GPU调度研究_第3页
第3页 / 共40页
点击查看更多>>
资源描述
基于Spark平台的GPU调度研究苏鹏飞ICT-HPC目录2动机现有编程模型(MapReduce)是一种非循环数据流抽象模型,不适用于需要重复使用数据集的应用:迭代计算(机器学习)交互式数据挖掘工具(R,Excel,Python)MapMapMapReduceReduceDiskInputDiskOutput特性 分布式内存抽象 支持数据延迟查询 支持比Map和Reduce更多的函数 提供交互式的Scala shell和Python shell 保留MapReduce优点 容错 数据局部性 可扩展性生态圈架构 数据存储 资源管理 计算架构sc=new SparkContextf=sc.textFile(“”)f.filter().count().programSpark client(app master/driver)Spark workerHDFS,HBase,Block managerTask threadsRDD graphSchedulerBlock trackerShuffle trackerClustermanagerRDD 全称:Resilient Distributed Datasets 容错的、只读的、分布式数据集 允许用户指定数据的存储级别(内存/外设)提供丰富的并行操作 Reduce Collect Count RDD 操作类型 变换(Transformation)不计算,仅返回新RDD 行动(Action)进行计算,返回新值给driver程序RDD 一个例子:日志挖掘lines=spark.textFile(“hdfs:/.”)errors=lines.filter(_.startsWith(“ERROR”)messages=errors.map(_.split(t)(2)cachedMsgs=messages.cache()Block 1Block 2Block 3WorkerWorkerWorkerDrivercachedMsgs.filter(_.contains(“foo”).countcachedMsgs.filter(_.contains(“bar”).count.tasksresultsCache 1Cache 2Cache 3Base RDDTransformed RDDCached RDDParallel operation对Wikipedia 全文搜索耗时 map.put(pair._1,pair._2)map Collect实现剖析def collect():ArrayT=val results=sc.runJob(this,(iter:IteratorT)=iter.toArray)Array.concat(results:_*)Collect实现剖析rdd.collect()RDD Objectsbuild operator DAGDAGSchedulersplit graph into stages of taskssubmit each stage as readyDAGTaskSchedulerTaskSetlaunch tasks via cluster managerretry failed or straggling tasksClustermanagerWorkerexecute tasksstore and serve blocksBlock managerThreadsTaskCollect实现剖析Collect实现剖析(接上)顺序顺序操作操作1sc.runJob-dagScheduler.runJob-submitJob2DAGScheduler:submitJob会创建JobSummitted的event发送给内嵌类eventProcessActor3在submitStage中会计算stage之间的依赖关系,依赖关系分为宽依赖宽依赖和窄依赖窄依赖两种4eventProcessActor在接收到JobSubmmitted之后调用processEvent处理函数5job到stage的转换,生成finalStage并提交运行,关键是调用submitStage6如果计算中发现当前的stage没有任何依赖或者所有的依赖都已经准备完毕,则提交task7提交task是调用函数submitMissingTasks来完成8task真正运行在哪个worker上面是由TaskScheduler来管理,也就是上面的submitMissingTasks会调用TaskScheduler:submitTasks9TaskSchedulerImpl中会根据Spark的当前运行模式来创建相应的backend,如果是在单机运行则创建LocalBackend10LocalBackend收到TaskSchedulerImpl传递进来的ReceiveOffers事件11receiveOffers-executor.launchTask-TaskRunner.run
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!