- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多核时代,Erlang的时代
去年,我们请袁泳先生介绍了Scheme语言;今年,我们再请金山公司技术总监许式伟介绍一下
Erlang。对于程序员来说,尝试新的语言总是令人兴奋的事情。
■文,许式伟
并行趋势 为常态一样,随着核的增加,线程锁冲突也将成为常态。
免费午餐已经结束。尽管我们可以使用的CPU频率 而这使得本来可以并行执行线程因为锁的关系而实际在
已经越来越高,以至于我们不少人称这是一个“CPU计算 串行执行。为了改善这种情况,在 “共享内存并行模型”
能力过剩的时代”。但是其实事实恰恰相反。CPU性能提 中,有一个很流行的技术,称为“software transactional
升在两年前就开始碰壁,但大多数人到了最近才有所觉察。 memory(事务内存)”。它本质上是一个乐观的锁,在多
大概在2003年初,一路高歌猛进的CPU时钟速度突然急 核下仍然存在性能瓶颈。我们看一组数据 (来自:Lock
刹车。受制于一些物理问题,如散热 (发热量太大且难以 Free Data Structures using STM in Haskel1):
驱散)、功耗 (太高)以及泄漏问题等,时钟速度的提升
已经越来越难。从单个CPU角度来讲,摩尔定律已经不
再适用了。
接下来数年里,新型芯片的性能提升将主要从三个方
面入手,其中仅有一个沿袭是过去的:
1超线程
2 多核
3 缓存
这些趋势看来归纳起来就一句话:并行趋势已经变得
非常明朗,软件在历史性地向并行靠拢。
共享内存并行模型的宿命
随着多核趋势的明朗,对软件来说,这意味着一次巨 Figure l:Unlprocessor Performance
变。多核时代,注定要改变计算机发展历史。在我们还在
努力学习OO方法论时,却不知,一场新的颠覆性的编程
革命到来了。
这场编程革命是什么呢?那就是 “并行编程”。也许
你会说,不就是 “CreateThread和锁”吗,我已经会了。
但这是完全不同的“并行编程”风格,我们可以称之为“无
锁并行编程”,也可以称之为“基于异步消息传递的并行
编程模型”。
在传统的并行模型中,我们通常的做法在线程之间共
享内存,并基于 “锁”技术来进行并发控制。这种编程模
型,我们称之为“共享内存并行模型”。
核的增加导致一个结果,那就是基于传统锁机制实
现的并行,产生线程竞争状态的概率越来越高。这就像
在集群的机器数量到达一定数量后,机器发生宕机会成 Figure 2:Two Processor Performance
2008 O5 1O3
、 个图依次在单核,2核,4核,6核,8核的情况下测试。
这组数据里表明,在单核的情况下,STM的性能和
o
常规锁几乎等同,多核情况下STM确实降低了锁的开销。
o
[ 但是,这里面有几个关键点需要注意:
[ 1. 无论是常规锁还是STM,做同样的事情的代价随
U
着核个数的增加反而变慢 (随着核的增加,两条曲线都变
l一
得更陡)。这听起来似乎很奇怪,怎么我机器变好了,性
能反而差了?
2. 尽管S
文档评论(0)