暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

极简Julia语言 │ Julia背后的原理

845

介绍Julia语言相较其他编程语言的优势。


1

Julia背后的原理


为了迎合新的技术,比如机器学习,你需要学习机器学习社区已经开始使用的语言。Julia是其中一种完美的语言,事实上,它是当前发展最快的编程语言之一,并且相较其他语言,如Python脚本语言(机器学习社区喜欢的一种语言),Julia具有很多优势。

(1) 性能。很长时间以来,性能一直是Python等语言的弱点。对于像机器学习这种需要极高性能的应用程序,Julia会更合适一些。事实上,Julia代码的运行速度可以和C代码一样快,有时甚至比C代码更快!像Python这样的语言,其性能表现不佳是有原因的: 这些语言的构建是为了满足当时的时代和程序员的目标定位需求。在过去5年左右的时间里,我们看到了科学计算领域的指数级增长。尽管Python和C等语言在这个方向上有所帮助,但它们却不是实现新技术的最佳选择。与此相反,Julia已经被开发用于创建以性能为主要因素的机器学习应用程序。

(2) JIT编译。使用Julia,你的程序可以被即时编译。这意味着,如果某些操作的运行速度比你实现它们的速度更快,那么Julia便会对这些操作进行优化。

(3) 与Python、C和FORTRAN的互操作。如果你已经编写了Python、C或FORTRAN代码,不想在Julia中重写,没有问题!你可以在Julia中调用这些代码,并且不用担心有任何麻烦。

(4) 开源和跨平台。如果你有一台Darwin(mac OS)、 Windows或UNIX派生的(Linux、BSD等)计算机,你就可以使用Julia!此外,如果你不喜欢Julia的某些功能,想要帮它变得更好,你还可以向Julia提出你的建议和想法,甚至给Julia直接编写代码,使它更符合个人习惯。

还有更多的原因使Julia非常适合社区。

Julia项目于2009年由四位创立者共同启动: Stefan Karpinski、Viral Shah、Alan Edelman和Jeff Bezanson。他们启动Julia的主要目标是通过创建一种兼具动态与性能的语言解决双语言问题(two-language problem)。例如,在过去,大部分程序员都会使用一种简单、动态的编程语言构建应用程序原型,如Python,然后将其移植到C或其他高性能的低级语言中,使其足够健壮、足够快。这是一个巨大的问题,因为这需要程序员去学习更多的语言,投入更多的时间,并且会引入更多不期望的错误,这就是双语言问题。

双语言问题还有另一方面——也就是说,大多数应用程序需要高性能,既需要使用Python这样的高级语言编写,也必须使用C这样的低级语言。这是因为简单的代码可以用Python编写,而计算密集的代码则必须用C语言编写,这就导致了另一个问题: 两种语言之间的桥梁是一个瓶颈。你必须拥有一个团队,要么完全熟练地掌握使用两种语言,要么将Python端和C端分开。这两种解决方案的缺点都大于其优点,但这是唯一的解决方法,所以没有人会抱怨它。

随着Julia的到来,其通过强大的编译器能够做一些其他语言只能梦想的事情。例如,当国家能源研究科学计算中心(National Energy Research Scientific Computing Center,NERSC)需要绘制可观测宇宙中的每一个大目标时,就采用了Julia编程语言。事实上,Julia已成为世界上第一个实现超大规模性能的高级动态编程语言。

这是什么意思?这意味着Julia同时在超过65万台计算机上运行,处理超过60TB的数据,相当于超过16.3万个高端的、2017年版的MacBook专业产品。通常,只有C语言,甚至直接的机器代码才能处理这种负载。

Julia不仅处理了这个负载,而且处理起来也很方便。使用Julia编程是很愉快的,尤其是与C这样的语言相比,其简单级数呈指数级,Julia像Python一样行走,像C一样奔跑。

使用Julia的另一个领域是数学和科学计算,这就是Julia建立的原因。你可以编写类似数学论文中的代码。假如你要编写以下表达式:

在许多语言中,你需要按以下方式编写:

你必须手动在5和x之间添加乘法运算符,并且必须将平方根符号替换为sqrt。

但是在Julia中,你可以直接写出这个表达式。没错,你可以直接输入:

即使使用了平方根符号,Julia也能够理解!你还可以使用复杂的函数组合运算符等。

虽然也有其他语言支持这种功能,比如MATLAB。MATLAB有一个明显的缺点: 它不是免费的!你必须为MATLAB许可证付费。然而,Julia不仅具有MATLAB的所有功能,而且还提供了更多其他的功能,同时保持开源。事实上,纽约联邦储备银行(Federal Reserve Bank of New York)已经将他们的美国经济建模代码从MATLAB移植到了Julia,这一举措使该银行的效率提高了10倍!



实例讲解

极简Julia语言

精彩回顾

概述及准备Julia环境

1. 为什么要学习Julia语言




下期预告

概述及准备Julia环境

3. 准备Julia语言环境

Julia中的重要函数

4. Julia中的三个重要函数

机器如何学习

5. 机器如何学习

6. 机器学习背后的微分入门




2

参考书籍


《极简Julia语言》

ISBN:9787302596158

作者:(加)坦梅·巴克西(Tanmay Bakshi) 著,李媚 译

定价:59元

扫码优惠购书





文章转载自清华计算机学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论