InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

观点与争锋:多重处理器计算的挑战远在技术层面之上

作者 Sadek Drobi 译者 孙涛 发布于 2008年7月6日

领域
架构 & 设计,
运维 & 基础架构,
语言 & 开发
主题
集群与缓存 ,
架构 ,
虚拟化
标签
并发 ,
并行计算

多核处理器(multi-core processors )和松散耦合系统(loosely coupled systems,如因特网)是多重处理器计算(multiple processor computing)这一新趋势的两大推动力量,Peter Van Roy在2008国际计算机音乐会议(International Computer Music Conference 2008)上就此两种形式并行计算的相关问题发表了看法(PDF)。

对多核处理器——即集成两个或者多个处理单元的处理器,这些处理单元“共享与系统的连接,而且往往会有共同的片上缓存”——Peter Van Roy认为其挑战在于社会学方面。数据流编程“对此类机器上的编程来说是一个简单自然并且功能强大的方法”,同时“不存在竞态条件的确定性并发(deterministic concurrency,译注1) 能很好挖掘并行处理器的潜力,其编程难度也与顺序执行的程序相当。”因此,目前解决问题的方法在于“对程序员进行并行编程的相关培训”以充分利用已有技术而非开发新的技术,Google正是遵循这个思路在MapReduce中应用了数据流思想。

然而,Marijn Haverbeke在Lambda the Ultimate上对此回应时强调,即使对多核并行来说“目前已经有很多技术和相关资料文档”,“在特定的场景或者性能需求下,目前存在的一些技术还是远不够的,因为它们[...]在通用性、可组装性、效率方面都不足以解决所有的问题,都不够银弹。”

Peter Van Roy接着讨论了松散耦合系统编程方面,他认为当前此方面面临的挑战比多核编程要大。此类系统可视作由“一组联网处理器”组成,分布式系统所固有的一些问题在其上都有所体现:

— 对全局信息(global knowledge)缺乏把握,即任何节点对系统都没有一个整体认识,只能通过发送信息的方式了解其他节点的信息;

— 部分失效(parital failure),即某一结点脱离系统或者工作异常。

Van Roy 认为这些只是“低层次的问题”,可以通过正确的算法加以克服,这些算法包括“时钟同步、分布式快照和容错”等。

然而,松散耦合系统拥有更高层次的问题。首当其冲的便是在点对点文件共享中出现的“目标冲突”的问题,这也通常被称为“不速之客问题”(freeloader problem),解决的方法是“从设计上使单个节点的目标与整个系统的总体目标相重合”,以打消不速之客的念头。Van Roy举了BitTorrent协议及其工具的例子来说明如何实现这个目标。另一个问题是突现行为(emergent behavior)的处理,即只有在系统作为整体时才会出现的行为,单独节点是不会出现此类行为。但是Peter认为,这恰恰可以当作一个发明新理论、开发新工具的契机。例如Google的PageRank算法从互联网网页集出发来搜集信息,用于评估页面的有用性、正确性和受欢迎程度,这些都是无法从单个网页中得到的。

在松散耦合系统设计上,Peter Van Roy推荐分散式架构(decentralized architecture)。在这种架构中“每个计算节点都是默认独立于其他的节点,它拥有完整的程序。即使节点间失去联系,单独的节点仍然可以继续工作。一旦通讯恢复,节点又可以接着利用其它节点的信息”。Peter认为分散式架构对解决由于系统分布而带来的问题很有效,他还列举了几个应用此种架构方式构建的工具的例子。

“我们应该对‘松散耦合’系统和‘广分布式’系统(widely distributed systems)进行进一步区分”,Scott Johnson在Lambda the Ultimate 对Van Roy的发言评论到,这是因为“对于后者,我们必须要防范各种类型的攻击”,想当然地认为“不存在恶意攻击的实体,节点都位于单独的管理域,技术参数(带宽、延迟)都令人满意”,是错误的。他建议应该根据一系列特征对系统进行细分,例如确定式调度、拓扑特征、迁移特性、局部失效特性、全局的一致性(全局信息的把握)、带宽、延迟等等。

译注1:所谓确定性,指程序的执行结果不受调度的影响。

英文原文:Opinion: Multiple Processor Computing Challenges go Beyond Purely Technical Issues

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。