Julia Language是一个非常好用的编程语言,不同于Python等其他语言,Julia的性能起初并不直观,但是随着用户对其有着更加深入的了解,那么可以轻松编写出几乎与C一样快的代码。具有通过使用LLVM实现的类型推断和即时编译功能,使表达许多面向对象和功能编程模式变得容易。
丰富的科学计算生态系统
Julia从头开始设计,非常擅长数值和科学计算。
可以在应用程序中编写的大量科学工具中看到这一点
例如最新的微分方程生态系统(DifferentialEquations.jl),优化工具(JuMP.jl和Optim.jl)
迭代线性求解器( IterativeSolvers.jl),用于傅立叶变换的强大框架(AbstractFFTs.jl)
通用量子模拟框架(Yao.jl)等,可以推动所有模拟。
并行和异构计算
该语言专为并行性而设计,并为每个级别的并行计算提供内置基元:
指令级并行性,多线程和分布式计算。
Celeste.jl项目在NERSC的Cori超级计算机上使用650,000个内核,达到1.5 PetaFLOP / s。
编译器还可以为各种硬件加速器(例如GPU和Xeon Phis)生成本机代码。
诸如DistributedArrays.jl和Dagger.jl之类的包为并行提供了更高级别的抽象。
数据可视化和绘图
数据可视化具有复杂的历史。
绘图软件在功能与简单性,速度与美感以及静态和动态界面之间进行权衡。
有些软件包可以显示,并且永远不会更改,而其他软件包则可以实时更新。
构建,部署或嵌入代码
该应用程序使您可以编写UI,静态编译代码,甚至将其部署在Web服务器上。
它还具有强大的类似于Shell的功能,用于管理其他进程。
它提供类似Lisp的宏和其他元编程功能。
与数据交互
数据生态系统使您可以快速加载多维数据集,并行执行聚合,联接和预处理操作
并以有效格式将其保存到磁盘。
您也可以使用OnlineStats.jl对流数据执行在线计算。
无论您是寻找方便,熟悉的DataFrame,还是使用JuliaDB的新方法,它为您提供了丰富的工具。
Queryverse提供查询,文件IO和可视化功能。
除了处理表格数据之外,JuliaGraphs包还使处理组合数据变得更加容易。
可扩展的机器学习
它提供了用于深度学习(Flux.jl和Knet.jl),机器学习和AI的强大工具。
Julia的数学语法使其成为表达算法的理想方式,就像它们写在论文中一样
构建具有自动微分,GPU加速以及可通过JuliaDB支持TB级数据的可训练模型。