第六讲 并行算法设计与并行模式 课程网站:CourseGrading 主讲教师: 赵长海

Slides:



Advertisements
Similar presentations
大数据基础技术和应用. 大纲 大数据概述 大数据基础技术 工程技术 策略技术 典型应用 我们处于数据爆炸的时代 数据库 文字记录 照片 线下数据信息化 网页数据 用户行为记录 数字图像 互联网 - 移动互联网 设备监控 智能家居 摄像头 传感器 地球上至今总共的数据量: 在 2006 年,个人用户才刚刚迈.
Advertisements

极目古今话短长 ——中国侠的历史文化文化诠释 汪聚应
第5讲 索引构建 Index construction 授课人:高曙明
广州市档案专业技术资格 申报评审有关事项 姓名:付建华 联系电话: 联系地址:广州市番禺区大学城档案馆路33号A403科教处
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
班級:醫管3B 組別:第二組 組員:王品媛、郭雅瑄、謝淑玲、蔡孟蔙
善始善终 永不言弃 学 情 通 报 会 涪陵区教育委员会 中国教师研修网 2013年9月9日
Word2010的使用 讲解人:常蕊.
高一年级过渡性学习 活动汇报 高一年级组 教科研室 汉滨高中.
杜芹 律师 婚姻律师专业化与业务拓展 主讲介绍 北京市盈科(深圳)律师事务所 高级合伙人,婚姻家事法律服务部主任;
述职报告书.
四資二甲 第三週作業 物件導向程式設計.
基于Hadoop的Map/Reduce框架研究报告
PB级科研数据集的管理和应用 曙光信息产业(北京)有限公司.
(讲座幻灯课件请在网上下载,让我们一起思考!)
导 师: 张 伟 答辩人: 王 雄 专 业: 计算机科学与技术
浙江省小学数学六班班级学习简报(八) ●.
面向海量数据的 高效天文交叉证认的研究 答辩人:赵青 指导老师:孙济洲 教授 天津大学计算机学院
Socket.
模块七 信息获取与发布 第8章 计算机网络信息的获取与发布.
中共盘县卫生和计划生育局党组落实主体责任情况汇报
Introduction to MapReduce
舞台劇在香港的前途.
TCP、UDP 通信实践 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
CHAPTER 6 認識MapReduce.
Ch13 集合與泛型 物件導向程式設計(2).
第四讲 MPI并行程序设计 课程网站:CourseGrading buaa.edu.cn 主讲教师: 赵长海
走进编程 程序的顺序结构(二).
Homework 1(上交时间:10月14号) 倒排索引.
Qt网络编程实战之HTTP服务器 安晓辉(foruok)
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
浙江省教育科学规划课题管理系统 2015年新版申请人培训手册
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
Online job scheduling in Distributed Machine Learning Clusters
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
珠海圖書館資料有限 論文數據庫沒有原文 時間有限 原版書很貴
DevDays ’99 The aim of this mission is knowledge..
105年度 大專校院校外實習學生 團體保險 第一產物保險股份有限公司 營業二部 蔡承瑋.
SOA – Experiment 2: Query Classification Web Service
生涯手冊第18頁 生涯統整面面觀.
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
C语言程序设计 主讲教师:陆幼利.
_08遍历物理网卡 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
Unit 05 雲端分散式Hadoop實驗 -I M. S. Jian
DQMClientDim.cxx及双光子练习
OpenMP程序设计 2019/4/25.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
《高中信息技术校本课程》解析 知识单元三 文档编辑与处理 编写:南京五中 孙泓 汪斌 内容解析:孙泓
面向非连接的 SOCKET编程 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
信号量(Semaphore).
解决“最后1公里”问题.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
挑戰C++程式語言 ──第9章 函數.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
Cloud Computing Google云计算原理.
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
阻塞式模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
印天电子白板软件使用讲解 -杨馥宇 QQ:
计 算 机 应 用 基 础 潍坊学院 计算机工程学院 主讲人:李凤慧.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
PROGRAM 1 Simple E. Angel, Interactive Computer Graphics A Top-Down Approach with OpenGL, Third Edition Addison-Wesley Longman, 2003.
東吳大學『樂齡大學』 外雙溪環境與生態 產業 黃顯宗 東吳大學 微生物學系 101.
Presentation transcript:

第六讲 并行算法设计与并行模式 课程网站:CourseGrading http://judge.buaa.edu.cn 主讲教师: 赵长海 主讲教师: 赵长海 办公室: 新主楼G910 Email: zch@buaa.edu.cn Spring 2013

本章内容 6.1 并行算法设计基本方法 6.2 常用的并行模式 6.3 Google的MapReduce编程框架

分解(decompositon) 执行 6.1 并行算法设计基本方法 并行设计关键步骤 将计算分成很多小的计算 将计算分到不同处理器上并行执行

例 数据分解 (Data Decomposition) 一.数据分解 第四讲的矩阵相乘 第五讲的统计数组中10的个数 即,数据并行。将数据分成很多块,每个计算任务处理一部分数据 数据分解 (Data Decomposition) 第四讲的矩阵相乘 第五讲的统计数组中10的个数 例 Google的MapReduce

数据分解方法:

例 功能分解 (Functional Decomposition) 二.功能分解 Office Word QQ ... 即,任务并行。将计算根据功能划分,每个任务处理整个工作的一部分。 功能分解 (Functional Decomposition) Office Word 例 QQ ...

6.2 并行模式 流水线并行(pipeline) 常用的并行模式 主从(Master/worker) 线程池(thread pool) 分而治之(Divide & Conquer)

流水线并行模式 一.流水线 流水线是生产者-消费链。数据流通过一串计算任务,前一计算任务的输出是下一个计算任务的输入。 Stage 1 Time C1 C2 C3 C4 4个阶段的流水线

流水线分类: 线性流水线 非线性流水线 Stage 1 Stage 2 Stage 3 Stage 4 Stage 1 Stage 2

主从(master-worker)并行模式: 二.主从 一个进程(线程)作为master,其它进程(线程)作为worker: master产生和管理任务; master调度并分派任务给worker; worker完成分派的任务之后,向master请求更多 的任务 主从(master-worker)并行模式: A B D E tasks queue C master worker

线程池(thread pool)并行模式: 四.线程池 创建一定数量线程,配备一个任务队列,存放其它线程提交的任务。线程池内的线程从队列中取任务执行,如果队列中没任务,线程池内的线程挂起。 线程池(thread pool)并行模式:

应用 消除频繁创建撤销线程的开销 较快的响应速度 避免过量占用系统资源(相比每到达一个任务就创建一个线程的方式) 使用线程池的优势 Web服务器,例如Tomcat服务器可以配置线程池内的线程数 应用

例:TCP服务器 创建线程池 int main(int argc, char **argv) { …… 参考:Network Programming Volume 1, Third Edition: The Sockets Networking API 创建线程池 int main(int argc, char **argv) { …… listenfd = Tcp_listen(argv[1], argv[2], &addrlen); for (i = 0; i < nthreads; i++) Pthread_create(&tptr[i].thread_tid, NULL, &thread_main, (void *) i); Signal(SIGINT, sig_int); for ( ; ; ) pause(); /* everything done by threads */ }

一个线程处理一个客户端的请求 void * thread_main(void *arg) { int connfd; void web_child(int); socklen_t clilen; struct sockaddr *cliaddr; cliaddr = Malloc(addrlen); for ( ; ; ) { clilen = addrlen; Pthread_mutex_lock(&mlock); connfd = Accept(listenfd, cliaddr, &clilen); Pthread_mutex_unlock(&mlock); web_child(connfd); /* process request */ Close(connfd); }

分而治之 (divide & conquer)并行模式: 五.分而治之模式 将问题被分成许多并行的子问题,最后合并结果。 分而治之 (divide & conquer)并行模式: problem subproblem Compute solution merge split

思 考 6.3 Google的MapReduce分布式编程框架 编写一个能够在数千台机器运行,处理数TB~PB数据的并行程序,有哪些关键问题或难点 思 考

编写能够在上千节点上执行,且可扩展的并行程序难点 并行控制 机器故障 负载均衡 数据I/O 网络瓶颈

MapReduce: MapReduce等同于分而治之并行模式,Google创造性的实现了基于该并行模式的分布式编程框架,简化并行编程难度。 copy/sort/merge阶段 数据split 阶段 Map阶段 Reduce阶段

MapReduce实现的单词计数伪代码 map(String key, String value) {     // key: document name     // value: document contents     for each word w in value:         EmitIntermediate(w, “1”); } reduce(String key, Iterator values) {     // key: a word     // values: a list of counts     int result = 0;     for each v in values:         result += ParseInt(v);     Emit(AsString(result)); }

MapReduce深入学习 学习路线 http://hadoop.apache.org/ 1. 学会安装配置 2. 运行例子程序 3. 了解系统架构 4. 读MapReduce源代码

本 章 内 容 小 结

2. 并行模式 4. Google的MapReduce 并行算法设计与 并行模式 1. 并行算法设计 数据分解 功能分解 流水线并行 1. 并行算法设计 数据分解 功能分解 并行算法设计与 并行模式 2. 并行模式 流水线并行 主从模式 线程池 分而治之 4. Google的MapReduce 简化编写大规模并行程序的难度 隐藏并行控制、故障处理、负载均衡、数据I/O MapReduce的限制 不是一个通用的编程框架,只适合分而治之并行模式的应用