What's all this fuss about Erlang?

发布于 2022-08-08 10:13:49 字数 1393 浏览 27 评论 8

What's all this fuss about Erlang?

原文: http://www.pragprog.com/articles/erlang
作者: Joe Armstrong
译者:许式伟 朱照远

没人可以预言未来,但我却打算做一些有依据的推测。

让我们假设 Intel 是正确的,而且 Keifer 项目会获得成功。如果是这样,那么 32 核的处理器在 2009/2010 年就将会出现在市场上。
这毫不奇怪, Sun 已经制造出了 Niagara ,它拥有 8 个核,每个核运行 4 个超线程(这相当于 32 个核)。

这是一个令 Erlang 程序员欢呼雀跃的进展。为此,他们已经等待了 20 年,现在,是获得回报的时候了。

对于 Erlang 程序员来说,好消息是:
[quote]你的 Erlang Erlang Erlang 程序在 N 核的处理器上运行将快 N 倍。

这是真的吗?

差不多吧。尽管为时尚早,但我们仍很乐观(相当地乐观,在过去的 20 年里,我从来没见过如此的乐观!)。

有时我们需要对我们的程序作点小调整 ―― 当我在一台 Sun Niagara 机器(拥有相当于 32 个核)上生成 Erlang 文档时,我把我的程序改了一行(我把一个 map 换成了 pmap ―― 不好意思,我在这里提一点技术细节, pmap 只是 “ 并行的 map ” (parallel map )而已)。

这个程序(它根据 wiki 标记生成 63 篇文档)的运行速度提高了 7 倍。不是 32 倍,这一点我承认,但是已经显著的加快了。(后来的工作使我们意识到我们是在写盘时遇到了 I/O 瓶颈,所以除非能够让磁盘的 I/O 也 并行 了,否则我们会停留在这个 7 倍上

在 Ericsson ,这个我工作和 Erlang 被开发出来的地方,我们正在把一些应用程序移植到 4 核处理器上 ―― 你猜怎么着?在作了一些小调整后,它们运行几乎都快了 4 倍。呵呵,对 Intel 在实验中的 80 个核的处理器,我们有点等不及了 …

为什么我们的程序运行得更快了?这全跟可变状态( mutable state )和并发( concurrency )有关。[/quote]

全文见附件,
我是从 PDF 里面粘贴出来的,可能有遗漏的文字,还是看附件吧。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

庆幸我还是我 2022-08-17 06:18:50

我简单看过Erlang的一些资料(主要是Joe Armstrong的PhD论文和他写的那本书,以及他接受采访的一个mp3和一个视频讲座),Joe Armstrong推销起Erlang来非常卖力,也很风趣幽默,但我没做过Erlang的实际开发,随便乱说几句。

1、Erlang经常自夸对多核、concurrent的支持(好像大部分Functional Programming语言都会强调这一点),很多时候瓶颈不在CPU,而是内存、硬盘、网络、数据库等等,拿我们自己用的台式机和笔记本来说,CPU占用超过20%的时候有多少?对于服务器来说,多数瓶颈也不在CPU,当然有一些应用确实是CPU bound,Erlang也最可能先用在这些地方。 (除了并发,fault tolerent也是一大优点)

2、concurrent编程比较难,首先是任务的分解与合并,把一个任务分解成并行执行的部分,再把结果合并(有的认为不需要合并结果)没有很成熟的方法,对于程序员的要求也很高。

3、人的惰性很大,用目前的语言也可以解决问题,就很难有动力来学习新的。

4、No Silver Bullet,不是有了Erlang就什么都可以解决了

5、Erlang提供了另外一种思路,但也许目前的其它语言会借鉴学习,甚至会有新的语言冒出来。

总的来说,Erlang在多核时代的应用会越来越广,但也不是灵丹妙药,包治百病,还是慢慢来看吧。(即使不想学Erlang,不想学Functional Programming,他的PhD论文也可以一看)

叹倦 2022-08-17 06:17:38

YAWS用了一下,还不错

葵雨 2022-08-17 06:16:28

正在学习Erlang,很看好Erlang

混浊又暗下来 2022-08-17 06:11:46

可惜还没有成熟应用,资源匮乏

牵你手 2022-08-17 04:27:01

普通程序员会写到这么多核心的程序么。。
觉得多核是操作系统CPU调度、进程调度首要考虑的事情。。

深居我梦 2022-08-16 18:26:40

前段时间一直在看这个,但是因为没有做这块相关的项目,学到了没用几天就又忘了..

暖心男生 2022-08-16 17:28:42

预祝erlang早日出人头地

合约呢 2022-08-13 10:23:48

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文