Julia是一款高级高效为技术计算(technical computing)而设计的编程语言,其语法与其他计算环境类似。其为分布式计算和并行所设计,最知名的地方在于其接近C语言的高效率。


按开发者的话说,“我们希望这门开源语言像C一样快…像python一样通用,像R做统计那么简单,像Perl做文本处理那么方便,像Matlab的线性代数一样强大,还和Shell一样可以把各种程序连接起来”。


打开Julia的首页http://julialang.org/,在一长串特性介绍后面,便是和各种语言的对比测试。


【原创】在天河二号上对比Julia,Python和R语言超级计算

测试以C为标准,从结果上来看Julia的性能比Python高一个数量级,而比R语言高一到两个数量级。是否真的如此呢,笔者进行了简单测试。

测试使用Julia官方提供的测试程序,使用炼数成金提供的天河二号资源,使用1节点1核心计算(Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40GHz),Julia = 4.5,Python = 2.7.9/3.5.2,R = 3.3.2


测试过程

1, 首先下载官方标准测试程序https://github.com/JuliaLang/julia/tree/master/test/perf

2, 这里测试micro-benchmark,阅读代码可知这里测试了7个项目:

"fib" = "Recursive fibonacci"

"parse_int" = "Integer parsing"

"quicksort" = "Sorting of random numbers using quicksort"

"mandel" = "Calculation of mandelbrot set"

"pi_sum" = "Summation of a power series"

"rand_mat_stat" = "Statistics on a random matrix"

"rand_mat_mul" = "Multiplication of random matrices"

可以看出这里测试了许多常见的场景如调用函数,解析string,排序,循环,随机数生成,向量操作等。代码如图。


【原创】在天河二号上对比Julia,Python和R语言超级计算

3, 登陆天河二号进行测试

使用Xshell连接天河,并查看天河已经部署的Julia


【原创】在天河二号上对比Julia,Python和R语言超级计算

可查看天河CPU信息


【原创】在天河二号上对比Julia,Python和R语言超级计算

运行Julia提供的测试,结果如下:


【原创】在天河二号上对比Julia,Python和R语言超级计算

结果整理如下,附上官方benchmark


【原创】在天河二号上对比Julia,Python和R语言超级计算

可以看出Julia果然快得不可思议,转换成以Julia为标准的形式观察:


【原创】在天河二号上对比Julia,Python和R语言超级计算

基本和官方数据一致,Julia 0.4.5甚至更快,稳定地比Python快一个数量级,而R语言则在计算斐波拉契和快排时落后两个数量级。这体现了Julia开发比C简单效率接近于C地特性。作者还贴心的比较了实现randmatstat的Julia和C的代码量,这里截图并横向显示(右上角为Julia代码量)。


总结,尽管Julia在国内并不算特别火热,但作为面向高性能计算语言,其高效易用的特点值得我们的关注。通过语言本身的设计,Julia从底层的循环到高级的编程风格应用,仅牺牲少量的性能就可以用简单的方式实现复杂的算法。


【原创】在天河二号上对比Julia,Python和R语言超级计算

引用:

1. Julia主页 http://julialang.org/

2. Julia中文社区http://julialang.cn/

3. Julia语言:让高性能科学计算人人可http://www.csdn.net/article/2014-03-12/2818732


最后放上一张各语言官方benchmark对比图 http://julialang.org/benchmarks/


【原创】在天河二号上对比Julia,Python和R语言超级计算

欢迎加入本站公开兴趣群

软件开发技术群

兴趣范围包括:Java,C/C++,Pythonphp,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流

QQ群:204132433


Hadoop源代码研究群

兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop

QQ群:204050420

tags: Julia,#160,Python,语言,http,天河,julialang,random,org,benchmark,计算,数量级
分页:12
转载请注明
本文标题:【原创】在天河二号上对比Julia,Python和R语言超级计算
本站链接:http://www.codesec.net/view/544219.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 大数据技术 | 评论(0) | 阅读(173)