Julia语言--技术计算的新方法

2020-08-17 08:31:28

Julia允许您编写UI、静态编译代码,甚至将其部署到Web服务器上。它还具有强大的类似shell的功能来管理其他进程。它提供了类似Lisp的宏和其他元编程工具。

Julia具有用于C/Fortran、C++、Python、R、Java和许多其他语言的外来函数接口。Julia还可以通过其嵌入API嵌入到其他程序中。具体地说,Python程序可以使用PyJulia调用Julia。R程序可以对R';的JuliaCall执行同样的操作,这可以通过从R调用MixedModels.jl来演示。

Julia是为并行而设计的,它为每个级别的并行计算提供了内置的原语:指令级并行、多线程和分布式计算。Jl项目在NERSC的CORI超级计算机上使用650000个内核实现了1.5petaflop/s。

Julia编译器还可以为GPU生成本机代码。像DistributedArrays.jl和Dagger.jl这样的包提供了更高级别的并行性抽象。分布式线性代数由Elemental.jl和TSVD.jl等包提供。

Julia为深度学习(Flos.jl和Knet.jl)、机器学习和AI提供了强大的工具。Julia的数学语法使其成为一种理想的方式来表达论文中所写的算法,利用JuliaDB构建具有自动微分、GPU加速和支持TB级数据的可训练模型。

Julia丰富的机器学习和统计生态系统包括通用线性模型、决策树和聚类功能。您还可以找到贝叶斯网络和马尔可夫链蒙特卡罗的软件包。

朱莉娅从一开始就被设计成非常擅长数值和科学计算。这可以从用Julia编写的大量科学工具中看出,例如最先进的微分方程生态系统(DifferentialEquations.jl)、优化工具(JuMP.jl和Optim.jl)、迭代线性解算器(IterativeSolvers.jl)、用于傅立叶变换的健壮框架(AbstractFFTs.jl)、通用量子模拟框架(Yao.jl),以及更多可以驱动所有模拟的工具。

Julia还提供许多特定领域的生态系统,如生物学(BioJulia)、运筹学(JuliaOpt)、图像处理(JuliaImages)、量子物理(QuantumBFS、QuantumOptics)、非线性动力学(JuliaDynamics)、数量经济学(QuantEconon)、天文学(JuliaAstro)和生态学(EcoJulia)。有了一批来自科学界各地的热情高涨的开发人员和维护人员,这个生态系统只会越来越大。

Julia数据生态系统允许您快速加载多维数据集,并行执行聚合、联接和预处理操作,并以高效格式将其保存到磁盘。您还可以使用OnlineStats.jl对流数据执行在线计算。无论您是在寻找方便熟悉的DataFrames,还是在寻找使用JuliaDB的新方法,Julia都为您提供了丰富的工具。Queryverse提供查询、文件IO和可视化功能。除了处理表格数据之外,JuliaGraphs包还使处理组合数据变得容易。

Julia可以使用JDBC.jl和ODBC.jl驱动程序处理几乎所有的数据库。此外,它还使用Spark.jl、HDFS.jl和Hive.jl与Hadoop生态系统集成。

数据可视化有着复杂的历史。绘图软件在功能与简约、速度与美观、静态与动态界面之间进行权衡。一些软件包显示并且从不更改它,而另一些软件包则实时更新。

Jl是一个可视化界面和工具集。它提供了跨各种后端的通用API,如GR.jl、PyPlot.jl和PlotlyJS.jl。更喜欢图形风格API语法的用户可能会喜欢纯粹的Julia Gadfly.jl绘图包。VegaLite.jl以Julia包的形式提供了交互式图形界面的Vega-Lite语法。对于那些不想离开舒适的航站楼的人,还有UnicodePlots.jl。

函数Fill_twos!(A)当i=1:length(A)a[i]=2end函数fast_str奇_twos(N)a=Array(randbool()?Int64:Float64,n)Fill_Twos!(A)返回Aend