Julia 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Julia 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
操作系统: 跨平台
收录时间: 2012-02-27
提 交 者: NorthGod

Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅器(sophisticated amplifier)和分布式并行运行方式。核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再进行重载。

JIT高性能编译器

Julia使用的JIT(Just-in-Time)实时编译器很有效地提高了它的运行效率,在某些地方甚至能比得上C和C++。

下面通过标准测试程序来测试下它的效率,你可以自己比较下各语言的运行效率。

注:运行环境是MacBook Pro,2.53GHz,Intel Core2 Duo CPU和8G 1066MHz,DDR3内存。

上表中只有C++运行时间是绝对时间,其它都是相对于C++的相对时间,数值越小代表用时越少。除少数几项测试Julia惜败于Matlab和JavaScript外,Julia完胜其他高级语言,甚至在pi summation上,成功以25%的优势击败C++。通过使用Intel核心数学库(MKL),MatLabs在矩阵乘法运算中稍占便宜,但是拥有MKL授权的Julia同样可以使用Intel MKL库,不过默认的开源BLAS库性能也不错。

这个测试表是通过编译器性能对一系列常用代码模式进行分析而得出的。比如:字符串解析、函数调用/回调、排序和数值循环、生成随机数和数组运算等。

Julia克服了高级语言一直难以逾越的难关:标量算数循环(在pi summation上就能体现出来。)。Matlab的浮点运算JIT和 V8 JS引擎对此也处理得很好。但JS不支持LAPACK等线性代数库导致了在矩阵运算中的低性能,而Julia有比较多的方法消除负载(overhead),使得它可以轻松支持任何函数库。

矩阵统计的Julia代码虽然性能上比不上C++但却要简洁得多。然而,规范和编制太过随意可能会在将来成为一个问题。

Julia代码示例:

function mandel(z)  
    c = z 
    maxiter = 80 
    for n = 1:maxiter  
        if abs(z) > 2  
            return n-1  
        end  
        zz = z^2 + c  
    end  
    return maxiter  
end  

function randmatstat(t)  
    n = 5 
    v = zeros(t)  
    w = zeros(t)  
    for i = 1:t  
        a = randn(n,n)  
        b = randn(n,n)  
        c = randn(n,n)  
        d = randn(n,n)  
        P = [a b c d]  
        Q = [a b; c d]  
        v[i] = trace((P.'*P)^4)  
        w[i] = trace((Q.'*Q)^4)  
    end  
    std(v)/mean(v), std(w)/mean(w)  
end

为并行处理和云计算而生

Julia为分布式计算提供很多关键模块,使得它可以更加灵活地支持多种并行处理。

虽然还是早期版本,Julia已经支持了云计算。下面是基于交互性的Julia会话截图:

Julia将提供更加完整的性能支持云计算操作,比如分享和编辑,包括数据管理、数据挖掘和可视化操作等。它还允许用户操作大数据类型而不用关心数据操作行为。

免费、开源和Library Friendly

TJulia的核心代码遵循MIT协议,而其他库各自遵循GPL/LGPL/BSD等协议。用户还可以方便地将Julia作为核心功能共享库与C/FORTRAN代码联合使用。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Julia 的相关博客

Ten minutes to let you know the Julia language

Introduction Julia is a flexible dynamic language for science and numerical computing with performance comparable to ...

Julia language 配置源和 idea 安装 Julia 插件

本文假设已完成 Julia 安装,Windows 安装文件下载地址 https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/winnt/x6...

Julia的IDE已经推出Julia Studio

Julia的IDE已经推出Julia Studio,Julia Studio 目前版本为0.4.3,内置Julia 0.2...

Julia篇(外传)-Julia常用函数

Julia Manual - Function List and Reference View by functional groups Functions : :, :@allocated, :[@assert](https://m...

Julia - 字符串

字符 字符使用单引号括起来,字符是 32 位整数 julia> 'a' 'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase) ...

Julia - 复数

全局变量 im 即复数 i ,为复数的虚数单位,表示 -1 的正平方根 Julia 允许数值作为代数系数,这也适用于复数 julia> 1 + 2im...

Julia 简介

Julia 的泛型设计,函数名称和每个参数的类型绑定在一起,相同名字的函数名称可以定义多个函数: 这在算法上很容易实现,而且...

Julia 学习心得

Julia 类型和代码的分离模式,内置宏,连接到LLVM, 完善的文档,执行的速度,最终吸引我来学习她。

6 Julia 类型

类型 Julia中没有class,也没有子类型的继承关系,所有具体类型都是最终的,并且只有抽象类型可以作为其超类型。Julia中的继承...

Julia 的相关问答

还没有任何问答,马上提问

评论 (17)

加载中
julia,从入门到开车
2019/12/16 16:13
回复
举报
2019/07/16 13:51
回复
举报
2019/07/09 15:30
回复
举报

引用来自“拾光TM”的评论

京香大法好~~~
借一部说话
2019/01/29 09:29
回复
举报
打分: 力荐
非常有潜力
2018/10/28 14:56
回复
举报
京香大法好~~~
2018/09/03 14:40
回复
举报
我推荐#Julia#
2018/09/03 14:22
回复
举报
学不动了
2018/08/18 09:32
回复
举报
百度搜索这个,第一页还是编程语言,第二也开始就是一些看不懂的东西了
2018/08/17 10:00
回复
举报
更多评论
17 评论
148 收藏
分享
返回顶部
顶部