Julia (简体中文)

From ArchWiki
Jump to navigation Jump to search
Note: https://julialang.org/ 有美丽而且开源的文档,不是和arch特定相关的问题应该被贡献到这里.

Julia 是一种高水平、高性能的针对数字计算的动态编程语言。它提供了复杂的编译器、分布式平行执行方式、数字的精准性和广泛的数学函数库。

安装

安装 julia 包. 学和用Julia请参阅 上游文献.

IJulia

如果装 ijulia 是用的 Pkg.add("IJulia")并给出了警告 MbedTLS had build errors. 你可能需要安装 mbedtls 包.

构建包时出错

Arpack

构建Arpack包时可能产生下面的错误 (堆栈追踪省略了):

julia> Pkg.build("Arpack")
  Building Arpack → `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`:
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(~/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!

一个问题已经提出了.

Arpack 包自己的 libarpack.so 需要 DSO libopenblas64_.so.0 才能展现在系统上:

$ ldd ~/packages/Arpack/UiiMc/deps/usr/lib/libarpack.so | grep 'not found'
        libopenblas64_.so.0 => not found
路径的UiiMc部分可能和你的系统上的不一样. 向上面显示的那样, 需要的DSO没在系统上,导致了构建错误.

DSO /usr/lib/libopenblas.so 来自 openblas包, 可能不能稳定的作为插入式替代起作用, 因为 64后缀好像被用来表示接口差异64后缀被用来表示版本差异而不是目标架构差异.


带编辑器的集成

Vim

句法高亮和更多

julia-vim

代码查错

julialint 插件和 Lint.jl 包结合起来可以提供代码查错功能.

性能

非常 建议 你用一个多线程的BLAS实现,比如openblas. 这能让特定矩阵操作提速10-50x.