MIT发布编程语言Julia 1.0版本

来源 :中国民商 | 被引量 : 0次 | 上传用户:huanhuan879600
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  近日,Julia编程语言的1.0新版本一经推出就受到整个人工智能界的关注,其中最主要的原因就是它史无前例地结合了C 语言的速度、Ruby 的灵活、Python 的通用性,支持并行处理,易于学习与使用,尤其适合科学和工程的计算。正如Julia的创始人之一,Viral Shah所说:“如果你是数学家、科学家或是工程師,那么从前当你选择一门编程语言时,会从它的速度角度去考虑,比C++或Java,又或是从语言的易学程度出发,就像Matlab、R或者是Python。而我们创造了一种两者兼备的语言,就是Julia。”

研发的初衷


  随着人工智能中机器学习的发展,科学界对于计算的速度和性能的要求越来越高,而目前许多编程语言都存在各自的局限性。Julia的研究团队野心勃勃,希望能够博采众长,吸取各家编程语言的特点,正如 Julia 团队发表的讲话中所言:“我们想要一种拥有自由许可,开放源码的语言,我们希望它拥有C语言的速度,R语言的动态;易于理解,带有真实口语指令,同时拥有Matlab一样清晰的数学符号,如Python一样的通用,R简捷的统计功能,Perl自然的字串,并且是交互式和可编译的。”
  为提高速度,Julia团队研究了所有导致大多数动态语言变慢的因素,并仔细研究可以消除哪些因素。比如,动态语言通常允许数组元素和对象字段保存任何类型的值。然而,研究表明,即使在这些语言中,具有常量类型的同构数组和字段也非常普遍。所以,他们在设计 Julia 时利用了这一点,更容易添加类型限制,并在任何可能的情况下默认使用类型统一的集合。

Julia 1.0的新特性


  一个充满活力,欣欣向荣的地区往往是围绕着一种语言而生的,世界各地的人们在不断地精炼和塑造Julia,最终达到研究人员所期望的目标。Julia 项目由麻省理工学院教授 Alan Edelman 领导,其大部分关键发展成果都来自麻省理工学院的 Julia 实验室,也有超过 700 名志愿者参与了 1.0 版本的制作。经过大量的修正完善,目前的1.0版本具有以下的特点:
  快速:Julia自设计之初就施行最高标准操作, 通过LLVM 为多平台编译有效本地代码。
  通用性:运用多种调配手段,Julia可以更加简单地表达多种以目标为导向、功能性的编程模式,比如提供异步I/O 、过程控制、登录、性能分析、程序安装管理等等。
  动态: Julia 是被动态输入的, 就像是一种脚本语言,对于互动作用有很强的支撑作用。
  科技:Julia擅长带有语法的数字运算,适用于数学领域,包含多种数值数据类型。Julia的多种调配是定义数字和类数组数据的一个自然适应过程。
  可选择性: Julia拥有丰富的描述性数据,选择范围多样,可用于阐明和巩固程序。
  可组合:Julia的数据包可以自然地组合在一起工作。
  围绕着Julia 1.0 的新功能,研究人员有针对性地建立了一些新的外部程序包,比如数据处理,以及修补后的操作系统。利用新的缺损支持技术,Julia 1.0最重要的新功能就是承诺语言API(应用程序接口)的稳定性:在1.0系统中书写的编码在未来的1.1、1.2 系统中仍然可以继续使用,语言可以被完全拷贝。
  另外,异类结构支撑也得到大幅度的提升,Julia编译器从内部构件被进一步的解耦。Intel KNL系列硬件可直接使用Julia,Nvidia的GPU 也可以通过CUDAnative.jl来直接编程(无须编写CUDA代码),而 支持Google TPU的接口也在进一步的研发中。
  不过,Julia 1.0的新特点不仅仅体现在稳定性方面,同时还推出了多种新型、强大的创新语言功能。比如:
  全新的嵌入程序包极大地提升了性能,相比过去安装程序和其他操作更加便捷。同时,支持单项程序的环境,记录正在工作程序的精准状态,可能是与他人共享的程序,亦或是与未来的工作有关。最后,重新设计的部分包括对私人程序包和程序储藏进行无缝技术支持。用户可以使用常用的开源程序体系中的工具安装和管理私人程序包。
  Julia 对于缺失值拥有全新的规范表示。能够代表和处理缺失数据对于统计和数据科学是至关重要的部分。在过去版本的Julia中,联合体的性能较慢,1.0版本中的速度已经可以匹敌C或C++系统中缺失数据表示的速度,同时更加通用和灵活。
  带有适当语法的传播是语言的核心特点之一。Julia1.0很容易扩展传播范围,在GPUs(图形处理器)和其他向量化硬件上定制类别,完善最有效的技术指令,为未来进一步的性能升级奠定基础。
  除了高性能,Julia 还有一些与众不同的特性。比如,Julia 能够访问异常广泛的编程堆栈。你可以利用良好的性能操作比特和字节(并查看汇编代码),同时也可以处理高阶函数、设计宏定义、进行面向对象编程,所有这一切都可以很好地融合在一起。

机器学习领域的应用


  除了上述特点, 研究人员为Julia的代码转换注入重要机制,可以使Julia进行事后分析(post-hoc analysis)并且实现原有代码的扩展。越过程序员的指令,如分析、调试,最终可以完成机器学习中的自动微分(Automatic Differentiation),对于机器学习而言,Julia还可以对硬件加速器上的原生代码生成,提供很好的支持。无论是深度学习、机器学习还是 AI 方面,Julia 的数学语法使其成为理想的表达算法,支持 GPU 加速和处理数 TB 的数据。同时,丰富的机器学习生态系统还提供监督学习算法(如回归、决策树)、无监督学习算法(如聚类)、贝叶斯网络和马尔可夫链蒙特卡罗包等。
  从实际应用来说,Julia 已经用于自动驾驶汽车、机器人和 3D 打印机,还广泛应用于精准医疗、增强现实、基因组学及风险管理。在用户方面,Julia 的下载量已经超过 200 万次。作为一种开放源码语言,很难将这个数字转换为真实用户数量。此外,在 Julia Computing 方面,已经有来自 700 所大学和 1000 多家公司的用户下载或使用了 Julia。
  根据 Julia 研究人员所说,在7项基础算法的测试中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。现在,Julia 语言主要应用在科学领域,下载对象包括谷歌、脸书和美国能源部等机构。未来,Julia 很可能扩展其目标人群,应用于更多领域,成为世界主流的编程语言。
  编译自Julialang官网
  (责任编辑 姜懿翀)
其他文献
38年前的8月18日,改革开放总设计师邓小平,发出了政治体制改革的动员令——“8·18讲话”《党和国家领导制度的改革》。  27年前的8月19日,苏共中央以国防部长亚佐夫为代表的一批人,发动了“8·19政变”,这一意图挽救苏共亡党苏联亡国命运的事件,谁料想却加速了苏共亡党苏联亡国。  无论是“8·18讲话”,还是“8·19政变”,距离今天均已超过四分之一世纪。因此,我们有相当充裕的时间来分析和研究
期刊
·外婆家·外婆从来没让妈妈省心过.学业不忙或者放假的时候我也会去外婆家看看她.外婆近几年来都只能躺在床上无法行走,妈妈和大姨都有各自的家庭要照顾,就请了一个保姆给外
她一直希望有个大哥,在还是一个坐在草地上孤单仰头看天的孩子的时候。  那时她需要照顾弟弟妹妹,才七八岁同样需要人来疼爱的孩子,却总是不合时宜地在大人外出干活的时候,背着两岁的弟弟,拉着四岁的妹妹,在街上游逛。遇到大人怜爱地拍拍她小小的脑袋,夸一句“真能干”,她总是觉得委屈,希望那只大手可以在她的脑袋上,停留一会,再停留一会,这样她便可以觉得温暖,如一只蜗牛,在安全的壳里,不理外面风雨飘摇的天地。但
伴随着生命科学与生物技术的飞速发展,生物产业正展现出不可限量的前景,美国周刊预言:“世界将进入生物经济时代,……生物经济将10倍于信息经济.”我国已明确把“培育生物产
临沧市是云南重要的茶叶产区之一.茶叶的种植有3000多年悠久历史,凭借得天独厚的资源优势,茶叶面积和产量均占全省的25%以上,位居全省第一;拥有25万亩无公害茶园,占当地茶园
1    和游祖纨变成陌生人后的第五天开始,我保持了一个十分神圣的习惯——抄佛经。  好吧,我承认自己也是个不能免俗的人,即使用“在吻到自己的青蛙王子前,总是不能避免会吻那么一两只癞蛤蟆”这样的话来安慰自己,但是效果并不是很好,依然还是会矫情的感伤。  周末,我拎着刚刚败的几款补水面膜气定神闲的走在回程的小路上。  第一个路口左转后,我被眼前的一幕给镇住了。  一个西装男,不紧不慢的跟在一个背书包
“保护风貌,浮现文化,适度配套,和谐发展”的16字方针,是云南省腾冲县和顺乡在保护和开发的实践中摸索出来的经验,在中共云南省委、省政府开发60个旅游小镇的决策中,云南柏联
1    认识惠利,是在一个阳光明媚的午后,我拖着沉重的行囊,开始了大学报到的历程。那时候的惠利梳着一个高翘的马尾,汗湿的刘海紧贴着额头。可是,当她看到我的名字时,居然兴奋地将我紧紧抱住,然后热情地为我登记,交学费,领钥匙,托行李。她笑着说:“我们是一个寝室。”  那时候的她给了我异地的温暖。所以,我感激信任,甚至依赖她。我们无所不谈,大到国家政事,小到生活琐事。有时争得面红耳赤,有时又不谋而合。
随着经济的快速发展建筑市场竞争日趋激烈,建筑施工企业必须自我完善提高自身的综合竞争力,使得企业健康长远的发展,其中建筑工程施工管理是企业管理工作的重点,本文分析了工