Julia 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Julia 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Julia 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 编程语言
开源组织
地区 不详
投 递 者 NorthGod
适用人群 未知
收录时间 2012-02-27

软件简介

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 指数为
超过 的项目

评论

点击加入讨论🔥(19) 发布并加入讨论🔥
发表了资讯
2023/12/28 15:08

Julia 1.10 正式发布

经过 3 个 beta 版本和 3 次候选发布版本后,Julia 1.10 现已正式发布。这是一种通用的高性能语言,在科学计算和数值分析中较为流行。 新版本的一些亮点内容如下: 用 Julia 编写的新解析器 将之前用 Scheme 编写的默认解析器替换为用 Julia 编写的新解析器,称为 JuliaSyntax.jl。此更改引入了多项改进:提高解析性能、详细的语法错误消息、高级源代码映射。 包加载时间改进 这项工作主要是通过分析和改进 OmniPackage.jl 的加...

3
2
发表了资讯
2023/08/07 11:51

TIOBE 8 月榜单:Julia 首次进入前 20 名

TIOBE 公布了 2023 年 8 月的编程语言排行榜。 Julia 在本月榜单中实现历史性突破,成功跻身 TIOBE 指数前 20 名。Julia 诞生于大约 13 年前,是一种非常年轻的编程语言;尤其适用于数据科学和数学计算领域。 TIOBE CEO Paul Jansen 认为,促使 Julia 突破重围的独特之处在于,它比 Python 更快、比 R 更适合编写大型系统、且比 Matlab 成本更低。“因此,速度、可扩展性和开源性使 Julia 成为一个有吸引力的选择。另一方面,J...

2
2
发表了资讯
2023/05/11 07:55

Julia 1.9.0 发布,科学计算领域高性能语言

Julia 编程语言 1.9 版本已发布,这是一种通用的高性能语言,在科学计算和数值分析中较为流行。Julia 1.9 是 1.x 系列版本中的第九个次要版本,添加了一些新特性和功能,主要更改如下: 本机代码的缓存 本机代码缓存现已可用,从而显着改善了 TTFX (首次执行时间 )延迟,包作者现在可以利用带有 PrecompileTools 的precompile语句或工作负载来提前缓存重要的例程。 用户还可以创建自定义本地“启动”包,以加载依赖项并预编译...

2
1
发表了资讯
2022/09/05 08:48

TIOBE 9 月榜单:Julia 即将进入 Top 20,仅差 0.05%

TIOBE 公布了 2022 年 9 月的编程语言排行榜。 Julia 编程语言离榜单前 20 名的位置仅差 0.05%,它是一种为数值分析和计算科学设计的语言。在该领域有许多相互竞争的语言,那么是什么让 Julia 脱颖而出呢? TIOBE 方面指出,“Julia 击败了 Matlab,是因为它更现代并且可以免费使用;击败了 Python 和 R,是因为它更快。由于数字运算和建模领域的需求巨大,Julia 在不久的将来有很大的机会进入前 20 名。值得注意的是,Rust 语言...

12
1
发表了资讯
2022/08/20 07:54

Julia 1.8.0 发布,科学计算领域高性能语言

Julia 编程语言 1.8 版本已发布,这是一种通用的高性能语言,在科学计算和数值分析中较为流行。Julia 1.8 是 1.x 系列版本中的第八个次要版本,添加了一些新特性和功能,主要更改如下: 可变结构字段上的 const Julia 支持使用 const 注释对可变结构的各个字段进行注释: mutable struct T x::Int const y::Float64 end 这导致字段 y 保持不变(在创建类型后无法重新分配),可以用来强制执行不变量,编译器也可以...

3
6
发表于摸鱼专区专区
2022/06/29 08:45

各大编程语言性能测试结果的可视化图表

“什么编程语言速度最快”,为了回答这个问题,The Benchmarks Game 专门面向主流编程语言设计了性能测试。测试的项目包括: fannkuch-redux n-body spectral-norm mandelbrot pidigits regex-redux fasta k-nucleotide reverse-complement binary-trees 开发者根据 The Benchmarks Game 的测试数据制作了一份可视化图表,如下所示,灰色反映的是时间效率,越短代表性能越好,棕色则是基于执行时间和内存开销的加权值。 可以看到...

130
11
发表了资讯
2021/12/02 07:21

Julia 1.7 版本发布,科学计算领域高性能语言

Julia 编程语言 1.7 版本已发布,这是一种通用的高性能语言,在科学计算和数值分析中较为流行。Julia 1.7 是 1.x 系列版本中的第七个次要版本,添加了一些新特性和功能,主要更改如下: 新的 Xoshiro256 系列随机数生成器(RNG) Julia 一开始使用流行的 Mersenne Twister 算法作为其默认的随机数生成器,但 Mersenne Twister 的计算周期较长,而且会带来较大的开销。1.7 版本引进了开销较小的 Xoshiro256 系列随机数生成器。 ...

3
4
发表了资讯
2021/07/21 06:21

Julia 编程语言获千万美元融资,前 Snowflake CEO 加入董事会

由 Julia 编程语言创造者创立的 Julia Computing 宣布完成了 2400 万美元的 A 轮融资。本轮融资由 Dorilton Ventures 领投,Menlo Ventures、General Catalyst 和 HighSage Ventures 参投。截至目前,Julia Computing 已筹集了约 2860 万美元。 与此同时,前 Snowflake 首席执行官和前微软服务器和工具部总裁 Bob Muglia 也宣布将加入 Julia Computing 董事会。 Julia 编程语言最初由麻省理工学院开发,目前已被全球用户下载超过...

2
3
发表了资讯
2021/03/26 07:57

Julia 1.6.0 发布,高性能动态高级编程语言

Julia 1.6.0 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 官方表示,Julia 1.6.0 很可能会成为下一个长期支持(LTS)版本。因此,其花了很多时间来开发这个版本,以确保那些对生态系统未来健康发展所需的功能能够被纳入到这个版本...

6
6
发表了资讯
2020/08/04 08:00

Julia 1.5.0 发布,高性能动态高级编程语言

Julia 1.5.0 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 作为次要发行版,v1.5.0 不包含重大更改,仅包含一些新功能、性能改进以及少量更改。一些重点更新内容如下: 结构布局和分配优化 多线程 API 的稳定和改进 在每个模块中提...

6
1
发表了资讯
2020/05/30 07:48

Julia 1.5.0-beta1 发布,高性能动态高级编程语言

Julia 1.5.0-beta1 现已发布。Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 更新内容如下: 新语言特性 现在也可以将 @foo{...} 宏调用写入 @foo{...} (不带空格)(#34498)。 ⨟现在被解析为具有时间优先级的二进制运算符。可以在 REPL 中...

3
2
发表了资讯
2020/03/24 07:13

Julia 1.4 发布,高性能动态高级编程语言

Julia 1.4.0 现已发布。 Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 更新内容如下: 新的语言特性 现在,将具有所有 isbits 和 isbitsunion 字段的结构内联存储在数组中(#32448)。 import现在允许带引号的符号,例如import Base.:+(#3...

4
7
发表了资讯
2019/01/29 07:07

Julia 1.1 发布,高性能动态高级编程语言

Julia 1.1 发布了, Julia 是一个高性能动态高级编程语言。其拥有丰富的函数库,提供了数字精度、精致的增幅器和分布式并行运行方式。核心函数库等大多数库由 Julia 编写,但也用成熟的 C 和 FORTRAN 库来处理线性代数、随机数产生和字符串处理等问题。 此版本带来的新特性包括: 维护一个异常堆栈 exception stack,作用于每一个任务,以使异常处理更加健壮,并且可以分析根本原因。可以使用实验性函数 Base.catch_stack 访问堆...

4
3
发表了资讯
2018/12/28 08:28

Julia 语言三位作者获得 Wilkinson 数字软件奖

麻省理工学院孵化的 Julia 语言的的三个作者获得 2019年的 James H. Wilkinson 数字软件奖。 Julia 是由 Jeff Bezanson 博士、前麻省理工学院 Julia Lab 研究院Stefan Karpinski和Viral B. Shah和艾伦埃德尔曼教授于2009年建立,是计算机科学和人工智能实验室(CSAIL)和数学系的成员之一。 Julia 于 2012 年公布下载量超过 300 万,有超过 1500 所大学用它进行科学计算。「我为 Julia 实验室的贡献感到自豪,该实验室将最新的计...

10
9
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
19 评论
150 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部