Julia语言:大学都要学会的语言

ulia是个灵活动态的语言,最初针对数值计算而发明,项目起初是MIT的研究课题,现已发展成富有活力的软件系统,也是目前最受关注的编程语言之一。日前,Julia的四位发明者Jeff Bezanson、Stefan Karpinski、Viral B. Shah、Alan Edelman接受了《程序员》杂志的专访。

让高性能科学计算为人人所用

《程序员》:你们因何设计Julia?想要解决的问题或达成的目标是什么?

Alan:对我来说,首要的问题是让高性能科学计算能为世界上的每一个人所用。我时时想着这一目标尚未完全实现,但Julia的出现使问题的解决成为可能。

我对并行计算的兴趣始于1988–1989年间在Thinking Machines工作时,Thinking Machines的产品是新潮的Connection Machine。2003年12月,Viral跟Parry Husbands等人一起凭借我们的Star-P并行MATLAB软件在MIT创业大赛中获胜。受此鼓舞,我创立了Interactive Supercomputing公司,从2004到2009年,公司做得风生水起。

在ISC,Parry、Viral和我认识到,通过一种慢速的动态专有语言来实现快速的并行化是荒唐的。Jeff也是ISC的员工,在这个问题上也有自己的独到见解。我真心希望看到这个问题的解决方案。

我永远不会忘记,那是2009年3月,我们要在办公楼的停车场上拍最后的团队合影,拍照花了很长时间,晚些时候Jeff和我就在停车场里走了走,在那里我们商定了Jeff来MIT做这个方案。

Jeff:科学计算语言中你所看到的特性通常都很复杂。多数系统中这些特性都是“内置魔术”——通过编译器和解释器内部的客户逻辑来实现,难于修改或扩展。我想看到一种更加全面的、可扩展的方法来实现这类功能。

Viral:我一直对科学计算感兴趣,这也是我的博士研究方向。我和Alan Edelman,以及我的导师John Gilbert一道,致力于构造一套并行的MATLAB。当时我同一些数学家、物理学家、化学家和生态学家一起负责几个科学应用,将他们的程序并行化以提高性能。在此过程中,有一件事变得清晰起来,那就是问题不在于并行化,而在于现有的语言根本没有足够的表达力。这些语言的设计使之难于实现高性能。很多这样的语言都由一些非计算机科学家设计,他们脑子里想的多是生产率而不是编译器设计。Julia团队的独特之处在于,我们四个人组合了多种学科——语言设计、数学和工程。结果我们便拥有了一种不仅为科学家和工程师喜欢,也为计算机科学家喜欢的语言;在我看来这是罕有的事情,对此我们都倍感幸运

<

http://www.lfxww.com/yy/zxtj/2014/0320/1307118.html
http://www.js0573.com/yx/dzeh/3368294.html
http://www.js0573.com/yx/dzeh/3396569.html
http://www.js0573.com/yx/oxlx/3401213.html
http://www.js0573.com/yx/oxlx/3374458.html
http://www.js0573.com/yx/jghy/3378142.html
http://www.js0573.com/yx/jghy/3375873.html
http://www.qdxw.com.cn/yx/jsyz/1840687.html
http://www.qdxw.com.cn/yx/dwwf/1842573.html
http://www.qdxw.com.cn/yx/dwwf/1834684.html

>

《程序员》:谈到Julia时,很多文章开篇就会提起它的性能。科学计算语言的性能是一种不可替代的优势吗?

Stefan:对很多人来说,Julia的性能是一个大卖点。但不是说性能打倒一切,否则我们都去手工编写SIMD和GPU代码了。

Jeff:性能分两类:尝试一种方案时首次获得的性能和大量努力后获得的性能。我相信前者更为重要,且只要专注于前者,就算不能取得最佳的绝对性能,方案也能有效。

Viral:我来分享我做过的另一个开源项目——Circuitscape中的一个故事吧。我和同事Brad McRae开始时可以在10分钟内解决一个100结点的问题。如今,Circuitscape用户每天都能在几分钟内解决拥有数百万结点的问题。我们组合使用了更好的语言、更好的库以及更好的算法,达成了这一结果。现在的Circuitscape是用Python写的,我们正在试验通过用Julia重写来实达到更高规模的可能性。性能不是唯一考量,但对于一种科学计算语言,它肯定是最重要的方面之一。


你可能感兴趣的:(我的博客)