第七章并发程序设计语言.ppt

  1. 1、本文档共131页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章并发程序设计语言

What’s Mapreduce Parallel/Distributed Computing Programming Model Typical problem solved by MapReduce 读入数据: key/value 对的记录格式数据 Map: 从每个记录里extract something map (in_key, in_value) - list(out_key, intermediate_value) 处理input key/value pair 输出中间结果key/value pairs Shuffle: 混排交换数据 把相同key的中间结果汇集到相同节点上 Reduce: aggregate, summarize, filter, etc. reduce (out_key, list(intermediate_value)) - list(out_value) 归并某一个key的所有values,进行计算 输出合并的计算结果 (usually just one) 输出结果 Mapreduce Framework Input split shuffle output 总结 并行程序设计的四种模型。 并行语言需要支持的两大内容:进程控制,通讯。 并行语言对不同并行程序设计模型的支持主要体现在对通讯方式的支持上。 并行语言现状:没有广泛使用的独立并行语言,基本都属于在传统语言如C,C++,Java上增加对进程/线程,共享/通讯的支持(两种扩展方式:语法直接扩展;并行库)。 总结 并发性是目前计算机科学技术领域最重要的理论和技术挑战,多核系统的广泛出现是我们对这方面的深入理解变得更为急迫 这方面已经有了许多理论和技术成果,但还很不成熟。这一领域的相关问题将长期成为计算机科学技术的研究热点 在理论和实践中,通常把并发系统分为基于共享存储和基于消息的两类 并发进程(线程)有许多创建方式,包括比较结构化的(如静态的,cobegin等)和更灵活的(如fork/join) 目前的主要问题是缺乏能方便程序员使用的并发性编程的高级抽象 在写并发程序时,需要去考虑大量的控制细节。不合适的细节处理可能导致各种不当的运行行为,例如死锁等待 Outline stays the same, map and reduce change to fit the problem 并发语言需要解决的基本问题 开发并行程序设计语言一般有三种方法: ①设计一种新语言。新语言有比较强的并行性描述能力。但是兼容性不好,不易推广,因此现在采用该方法的系统较少。 ②对现有的顺序语言加以扩展,提供并行性描述机制。该方法具有兼容性好、编程简便等特点,现在常常被采用。 ③不改变现有顺序语言,而由用户提供的函数库、类库或并行化编译系统等方法实现并行程序设计。该方法简单灵活,易于推广。 并发程序设计语言 高级程序设计语言扩充并发机制,最早可溯源至PL/1和Algal-68。20多年以来,随着各种并发机制的研究推出了数十种具有并发机制的高级程序设计语言。直到目前,还没有一种并发程序设计语言能统治并发程序设计整个领域。其原因是硬件背景、应用领域和程序设计模型的多样性。 主要的并发程序设计语言 语言 年代 并发机制 备注 DP 1978 CCR+RPC Edison 1978 CCR Argus 1982 CCR+RPC+原子事务 Lynx 1991 RPC+会合+CCR Concurrent Euclid 监控器(SW) Concurrent Pascal 1975 监控器(SW) Modula-3 1985 监控器(SC)+协例程和锁的包 Path Pascal 1979 监控器+路径表达式 Pascal Plus 1979 监控器(SU) Turing Plus 1983 监控器(SC+SW) Mesa 1979 监控器(SC)+RPC Emerald 监控器+RPC(面向对象) 语言 年代 并发机制 备注 Actor 异步消息传递(基于对象) PLITS 1979

文档评论(0)

busuanzi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档