设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Julia语言:让高性能科学计算人人可用

2014-3-27 13:53| 发布者: joejoe0332| 查看: 4534| 评论: 0|原作者: 卢鸫翔,王江平|来自: 《程序员》

摘要: Julia是个灵活动态的语言,最初针对数值计算而发明,项目起初是MIT 的研究课题,现已发展成富有活力的软件系统,也是目前最受关注的编程语言之一。日前,Julia的四位发明者Jeff Bezanson、Stefan Karpinski、Viral B ...


  《程序员》:用Julia写的项目中,哪一个让你们觉得印象最深刻?

  Jeff:绘图包Gadfly让人感觉很棒。还有JuMP,把描述优化问题的语言嵌入一种通用的语言中,这是最好的例子之一。它可以匹敌专用语言的性能。

  IJulia也是精华。它提供了一个基于IPython Notebook的Web浏览器前端,是通过终端与机算机交互的最佳方式。

  我特别喜欢的还有Quake 2渲染引擎(https://github.com/jayschwa/Quake2.jl)。

  Viral:Julia的统计计算能力最棒,此类程序几乎完全用Julia写成,并将Julia引到一个出乎原有规划的方向上。当我们看到来自R社区的人们能将他们想要的功能开发成一个纯粹的包,而不需要任何语言上的修改,我们就知道语言的设计是正确的。


  《程序员》:Julia足够稳定能用于生产环境了吗?

  Alan:是的——我每天早饭前都运行蒙特卡洛模拟,通常是在60个核上。

  Jeff: 尽管我们未能提供想要的所有特性,人们有时还会惊诧于一切在整体上竟运行得如此平稳。

  Viral: 这取决于“生产”的含义。Julia是极好的教学工具,MIT及其他大学的许多课程已经在用它了。研究者也在工作中每天使用。如果“生产”指的是有企业支持的大型服务器上长期运行的任务,那么答案是否定的。


  《程序员》:在整个开发和设计过程中,有没有想和其他开发者分享的体会?

  Jeff:最初人们对新的编程语言往往持怀疑态度,这很正常。但事实证明,只要做出让几个早期的采用者觉得足够有趣的东西,你便能获得助力。

  Viral:起初我也怀疑是否真正需要一种新的编程语言,是否所有的东西都不需要。但我已经学会拥抱新的语言(更多地来自科学计算背景的),这种多样性和试验过程都是好事。世界就是这样进步的,让旧思想的精华融入新思想。


  《程序员》:有没有来自用户的意外收获或反馈?

  Alan: 我每天清晨起来看到Julia中新加的东西都要吃上一惊。

  Jeff:听说Julia被用于前沿的研究项目时我着实高兴了一把。少数研究团体让他们的实验室转变为使用Julia为主。哪怕有人只是尝试用Julia做一个真正有趣的应用,也让人兴奋。


  《程序员》:对于初学者来说,学习Julia最困难的部分是什么?Julia中有哪些常见的陷阱?

  Jeff:我们努力避免陷阱。我想可能出现的一个陷阱是全局和局部变量非常不同。全局变量更像字典,可以通过名字查询,也可以四处修改它。局部变量则完全不同,因为在很多情形中它们会被编译器完全优化掉。

  Viral:最常见的陷阱在于有时人们期望Julia是MATLAB的零成本替代品。实际上它们有很多语法差异,有时它会绊倒一个有着多年MATLAB背景的用户。当然,一些旧的习惯并不容易忘掉。


  《程序员》:与其他科学计算语言(例如Mathematica、MATLAB等)相比,Julia的劣势是什么?

  Alan:在MIT,我们发现学生和年轻人乐于拥抱Julia,而有经验的教职员则跟进得慢一些。

  Jeff:许多情况下,库比语言更重要。有许多对特定应用非常重要的库函数我们还没有提供。幸运的是调用C甚至Python很容易。

  Viral:我们需要一个调试器。我们需要一个更加用户友好的性能分析工具。我们需要更多的库。我们需要更多用户。


  《程序员》:你们有没有从科学计算语言的演化中看到一些趋势?从你们的角度来看,什么才是理想的科学计算语言(或系统)?

  Alan:我相信Julia解放了科学计算,并将继续如此。 我观察过专家们通常用FORTRAN写的算法,感受则是人们不能碰这些算法。修改的难度注定了这一点,且主要从心理上。在一个人人可以调整算法进行试验的世界中,新创造将自由流淌。这是我最想看到的。

  Jeff:长期以来我们看到语言系统中不断增强的运行时灵活性。渐渐地,人们拥抱了动态内存分配、动态连接,然后是动态分派(如OOP)、垃圾回收和即时编译。

  Viral:我们的博客文章“为什么选择Julia”说的正是这个问题。除此以外,编程语言实验中还有一个有效使用多核和GPU的趋势。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部