Julia – 高性能科学计算语言

Julia的发明人之一Jeff Bezason的目标是:“让世界上每一个人都可以使用高性能科学计算”。从2009年项目在MIT启动起六年时间,Julia已经发展成了一个支持云端和并行计算、C和Python语言调用并集成图表分析的非常全面的科学计算平台。

语言设计上,Jeff认为Julia针对的场景是探索性计算(Exploratory Computing),结合它高性能的特点,去在大数据集上尝试理解数据和试验不同的算法,这也是当下数据科学家和分析师们的主要任务;在数据分析领域,除了Python和R之外,我们又有了一个新的选择。

语言特点

屏幕快照 2015-02-19 下午5.07.59

  • 多分派(Multiple dispatch):根据参数的类型来进行方法调用
  • 动态类型系统
  • 媲美C等静态语言的性能
  • 类似Lisp的宏和元编程
  • 支持Python调用:通过PyCall包
  • 支持C语言直接调用:无须包装器或特殊的APIs
  • 用户自定义类型与系统类型一样快
  • 对Unicode字符支持良好

以下是Julia与其它语言在数据计算效率上的对比:

Julia Python R Matlab Mathe-matica JavaScript Go LuaJIT Java
0.3.2 2.7.6 3.1.1 R2014a 10.0 V8 3.14.5.9 go1.2.1 gsl-shell 2.3.1 1.7.0_65
fib 2.39 79.95 553.57 4638.29 163.43 3.73 2.14 2.38 0.90
parse_int 1.93 12.24 53.23 1580.52 17.66 2.33 3.77 6.79 5.55
quicksort 1.24 33.23 255.73 54.43 48.21 2.91 1.11 2.36 1.69
mandel 0.72 12.18 54.06 51.23 6.24 1.55 0.99 0.71 0.57
pi_sum 1.06 16.93 16.55 1.27 1.51 2.19 1.33 1.18 1.00
rand_mat_stat 2.14 19.04 16.65 10.48 6.71 3.32 8.92 4.34 4.01
rand_mat_mul 1.11 1.24 1.91 1.18 1.21 17.19 9.83 1.44 2.35

Juno – 集成开发环境

Juno是一个免费的Julia语言开发环境,除了一些编码书写上的自动完成等基本功能外,它还提供了数据分析特有的数值计算显示和绘图功能。

error editor

IJulia – 集成分析环境

ijulialogo和IPython notebook一样,Julia也提供了一个网页版本的代码图表分析环境,安装过程参见GitHub JuliaLang / IJullia.jl 项目,它是基于IPython进行开发的。

IJulia也提供了一个在线运行环境JuliaBox供广大爱好者直接创建notebook和协作分享,但在国内由于Google Drive的原因而无法使用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>