| 查看: 556 | 回复: 4 | |||
| 当前主题已经存档。 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
yalefield金虫 (文坛精英)
老汉一枚
|
[交流]
【讨论】天赋异禀,返老还童--Erlang语言 [转载+评述]
|
||
|
Erlang:为了并发而生 20多年前,它的创建者们就已经意识到了这一问题,转而选择了一条与主流语言完全不同的路:采用消息模型,进程之间并不共享任何数据,因而也就完全地避免了引入锁的必要。 对于多核系统而言,完全无锁,也就意味着相同的代码在更多核心的CPU上会很容易具有更高的性能,而对于分布式系统,则意味着尽可能地避免了顺序瓶颈,可以把更多的机器无缝地加入到计算网络中来 就年龄而言,Erlang大约与Perl同年,比C++年轻四岁,长Java差不多十岁,但Java早已经是工业主流语言,C++和Perl甚至已经进入其生命周期的下降阶段。照理说,一个被扔在角落里二十多载无人理睬的老家伙合理的命运就是坐以待毙,没想到Erlang却像是突然吃了返老还童丹似的在二十多岁的“高龄”又火了一把。 为什么呢? CPU的多核化与云计算 2005年,C++标准委员会主席Herb Sutter在Dr. Dobb’s Journal上发表《免费午餐已经结束》一文:如果未来不能有效地以并行化的软件充分利用并行化的硬件资源,我们的计算效率就会永远停滞在仅仅略高于当前的水平上,而不得动弹。因此,未来的计算必然是并行的。 Herb Sutter本人曾表示,如果一个语言不能够以优雅可靠的方式处理并行计算的问题,那它就失去了在21世纪的生存权。 “主流语言”当然不想真的丧失掉这个生存权,于是纷纷以不同的方式解决并行计算的问题。 C/C++:除了标准委员会致力于以标准库的方式来提供并行计算库之外,标准化的OpenMP和 MPI,以及Intel的Threading Building Blocks库也都是可信赖的解决方案; Java:在5.0版中引入了意义重大的concurrency库,得到Java社区的一致推崇; 微软:先是在.NET中引入APM,随后又在Robotics Studio中提供了CCR库,最近又发布了Parrallel FX和MPI.NET,可谓不遗余力。 亡羊补牢! 因为这些语言和基础设施在创造时都没有把并行化的问题放到优先的位置来考虑。 与它们相反,Erlang从其构思的时候起,就把“并行”放到了中心位置,其语言机制和细节的设计无不从并行角度出发和考虑,并且在长达二十年的发展完善中不断成熟。今天,Erlang可以说是为数不多的天然适应多核的可靠计算环境,这不能不说是一种历史的机缘。 |
» 猜你喜欢
求助:我三月中下旬出站,青基依托单位怎么办?
已经有9人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
磺酰氟产物,毕不了业了!
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
yalefield
金虫 (文坛精英)
老汉一枚
- 程序强帖: 3
- 应助: 129 (高中生)
- 贵宾: 0.17
- 金币: 21238.9
- 散金: 3440
- 红花: 66
- 帖子: 12101
- 在线: 759.1小时
- 虫号: 96063
- 注册: 2005-10-07
- 专业: 高等教育学
- 管辖: 计算模拟
5楼2010-03-26 12:44:31









回复此楼