Julia (Español)
Julia es un lenguaje de programación dinámico de alto nivel y alto rendimiento para computación numérica. Proporciona un sofisticado compilador, ejecución paralela distribuida, precisión numérica y una extensa librería de funciones matemáticas.
Instalación
Instale el paquete julia. Para aprender cómo se utiliza Julia, lea por favor la documentación previa.
IJulia
Si intenta instalar ijulia ejecutando Pkg.add("IJulia")
y aparece la advertencia MbedTLS had build errors.
, puede que necesite instalar el paquete mbedtls.
Errores de compilación de paquetes
Arpack
La compilación del paquete Arpack puede generar un error como el que se muestra a continuación (se ha omitido el stacktrace):
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 empaqueta su propio libarpack.so
que requiere que el DSO libopenblas64_.so.0
esté presente en el sistema:
$ ldd ~/.julia/packages/Arpack/UiiMc/deps/usr/lib/libarpack.so | grep 'not found'
libopenblas64_.so.0 => not found
La parte UiiMc
de la ruta puede ser diferente en su sistema. Tal y como se muestra, el DSO requerido no está presente en el sistema, lo que causa el error de compilación. Una solución para este problema es crear un enlace simbólico al archivo DSO proporcionado por el paquete openblas, es decir
# ln -s /usr/lib/libopenblas.so /usr/lib/libopenblas64_.so.0
y luego recompilar el paquete Arpack en Julia. Sin embargo, no está claro si el DSO /usr/lib/libopenblas.so
del paquete openblas puede funcionar de manera estable como reemplazo directo, dado que el sufijo 64 parece usarse para indicar una diferencia en la interfaz y el sufijo 64 indica una versión diferente en lugar de una diferencia en la arquitectura de destino.
Integración con editores
Vim
Resaltado de sintaxis y más
Linting
El complemento julialint combinado con el paquete Lint.jl proporciona linting.
Rendimiento
Es recomendable que use una implementación BLAS de multihilo, como openblas. Esto puede llevar a aceleraciones de 10-50x para ciertas operaciones matriciales.