Hi everyone,
I come after being redirected from this issue on github repo, regarding how can I install the julia-1.0.1 version to my ARMv7 server.
I tried using the ppa but it doesn’t seem to be there for the ARMv7 architecture.
Hi everyone,
I come after being redirected from this issue on github repo, regarding how can I install the julia-1.0.1 version to my ARMv7 server.
I tried using the ppa but it doesn’t seem to be there for the ARMv7 architecture.
Maybe you can install from the source.
According to the https://github.com/JuliaLang/julia/blob/master/README.arm.md#julia-on-arm-linux
@ImreSamu, nah I tried and it didn’t work out that well. Have you managed to do it?
And I do think the Readme needs to be updated for ARM devices.
Sorry, I don’t have an experience on ARM.
As I see only ( ARMv7 1.0.0 binaries ) exist now.
I have made a little experiment,
so …
My workaround for SCALEWAY ARMv8 - tested NOW.
INSTANCE TYPE: ARM64-2GB
CORES: 4 ARMv8
MEMORY: 2 GB
IMAGE: Ubuntu Bionic Beaver (18.04 LTS)
Steps:
root@arm8julia:~# julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.1
_/ |\__'_|_|_|\__'_| | Ubuntu ⛬ julia/1.0.1-0ubuntu1
|__/ |
julia> versioninfo()
Julia Version 1.0.1
Platform Info:
OS: Linux (aarch64-linux-gnu)
CPU: unknown
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, generic)
julia>
system info:
root@arm8julia:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu Cosmic Cuttlefish (development branch)
Release: 18.10
Codename: cosmic
root@arm8juliat:~# lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: Cavium
Model: 1
Model name: ThunderX 88XX
Stepping: 0x1
BogoMIPS: 200.00
NUMA node0 CPU(s): 0-3
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
root@arm8julia:~# dpkg -l | grep -E 'llvm|julia'
ii julia 1.0.1-0ubuntu1 arm64 high-performance programming language for technical computing
ii julia-common 1.0.1-0ubuntu1 all high-performance programming language for technical computing (common files)
ii libjulia1 1.0.1-0ubuntu1 arm64 high-performance programming language for technical computing (runtime library)
ii libllvm6.0:arm64 1:6.0.1-9 arm64 Modular compiler and toolchain technologies, runtime library
root@arm8julia:~#
FWIW, Fedora 29 (upcoming) also has a Julia package for ARM (and PPC) now.
just a note
I have tried a similar upgrade → ( ARMv7 (C2) ubuntu 18.04 → ubuntu 18.10 )
but the julia ( ubuntu18.10 + ARMv7) is not working for me.
( and the Scaleway ARMv7 CPU is extremely slow ( BogoMIPS: 50.00 )
root@scw-dbaef4:~# ldd /usr/bin/julia
libjulia.so.1 => /usr/bin/../lib/arm-linux-gnueabihf/libjulia.so.1 (0xb6d22000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6d0f000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6cf9000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6cd4000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6cab000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6bb1000)
libutf8proc.so.2 => /usr/bin/../lib/arm-linux-gnueabihf/libutf8proc.so.2 (0xb6b57000)
libLLVM-6.0.so.1 => /usr/bin/../lib/arm-linux-gnueabihf/libLLVM-6.0.so.1 (0xb416b000)
libunwind.so.8 => /usr/bin/../lib/arm-linux-gnueabihf/libunwind.so.8 (0xb412c000)
libstdc++.so.6 => /usr/bin/../lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb4019000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb3f9e000)
/lib/ld-linux-armhf.so.3 (0xb6f1c000)
libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0xb3f88000)
libedit.so.2 => /usr/lib/arm-linux-gnueabihf/libedit.so.2 (0xb3f57000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb3f2d000)
libtinfo.so.6 => /lib/arm-linux-gnueabihf/libtinfo.so.6 (0xb3f01000)
liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0xb3ed7000)
root@scw-dbaef4:~# /usr/bin/julia
ERROR: Unable to find compatible target in system image.
root@scw-dbaef4:~# julia
ERROR: Unable to find compatible target in system image.
root@scw-dbaef4:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu Cosmic Cuttlefish (development branch)
Release: 18.10
Codename: cosmic
root@scw-dbaef4:~# lscpu
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Vendor ID: Marvell
Model: 2
Model name: PJ4B-MP
Stepping: 0x2
CPU max MHz: 1333.0000
CPU min MHz: 666.5000
BogoMIPS: 50.00
Flags: half thumb fastmult vfp edsp thumbee vfpv3 tls idiva idivt vfpd32 lpae
root@scw-dbaef4:~# dpkg -l | grep -E 'llvm|julia'
ii julia 1.0.1-0ubuntu1 armhf high-performance programming language for technical computing
ii julia-common 1.0.1-0ubuntu1 all high-performance programming language for technical computing (common files)
ii libjulia1 1.0.1-0ubuntu1 armhf high-performance programming language for technical computing (runtime library)
ii libllvm6.0:armhf 1:6.0.1-9 armhf Modular compiler and toolchain technologies, runtime library
root@scw-dbaef4:~#
˙``
Thanks for the replies on this one, guys!
However, I really do prefer using an LTS in Ubuntu ( if the new julia
build aren’t available for CentOS etc ) .
Moreover, I tried downloading the binaries mentioned in https://julialang-s3.julialang.org/bin/linux/armv7l/1.0/julia-1.0.0-linux-armv7l.tar.gz but when I try to use that it throws the following error
root@pup:~# ./julia-1.0.0/bin/julia
Invalid ARM instruction at 0xadc03274: 0xf2800050
signal (4): Illegal instruction
in expression starting at no file:0
__init__ at ./sysinfo.jl:92
jl_apply_generic at /buildworker/worker/package_linuxarmv7l/build/src/gf.c:2182
jl_apply at /buildworker/worker/package_linuxarmv7l/build/src/julia.h:1536 [inlined]
jl_module_run_initializer at /buildworker/worker/package_linuxarmv7l/build/src/toplevel.c:90
_julia_init at /buildworker/worker/package_linuxarmv7l/build/src/init.c:811
julia_init__threading at /buildworker/worker/package_linuxarmv7l/build/src/task.c:302
main at /buildworker/worker/package_linuxarmv7l/build/ui/repl.c:227
__libc_start_main at /lib/arm-linux-gnueabihf/libc.so.6 (unknown line)
_start at ./julia-1.0.0/bin/julia (unknown line)
Allocations: 2997 (Pool: 2992; Big: 5); GC: 0
Illegal instruction (core dumped)```
on (Scaleway)ARMv8 + Ubuntu18.04 LTS
apt install docker.io
v1. ubuntu:18.10 - looks OK
docker run -it ubuntu:18.10 bash
apt-get update
apt-get install julia
v2. fedora:29 - looks OK
docker run -it fedora:29 bash
dnf update
dnf install julia
or you can create a customized JULIA docker image with your packages
FROM ubuntu:18.10
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
git \
nano \
sqlite3 \
julia \
wget \
&& rm -rf /var/lib/apt/lists/* /tmp/*
RUN julia -O3 -e 'using Pkg; Pkg.REPLMode.pkgstr("add CSV ; precompile"); using CSV'
RUN julia -O3 -e 'using Pkg; Pkg.REPLMode.pkgstr("add DataFrames ; precompile"); using DataFrames'
RUN julia -O3 -e 'using Pkg; Pkg.REPLMode.pkgstr("add DataStreams; precompile"); using DataStreams'
root@scw-058524:~/julia# docker run -it julia julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.1
_/ |\__'_|_|_|\__'_| | Ubuntu ⛬ julia/1.0.1-0ubuntu1
|__/ |
julia>
Hi @ImreSamu
Thanks for the speed comparisons! I have since switched to ARMv8 servers and I installed docker already.
However, the nature of my experiement is that I’d have to call julia
from python pyjulia
library and see if I could use the julia
libraries together from python. I don’t know whether this is possible using the docker
image ?
Please let me know if there’s a julia-1.0
build which I could run natively on the ARMv8
instance
You can subscribe to the Julia 64bit ARM Binary Version is missing for Julia 1.0.0 · Issue #28783 · JuliaLang/julia · GitHub notifications.
I prefer the AMD64 platform → more user → less surprise. ( imho: this is much better platform for the first experiments with julia + python pyjulia
) If it works - you can re-test on ARMv8.
you can put and run everything (python + julia + R + … ) inside to the docker image.
for example : Jupyter datascience-notebook ( x86_64 )
I prefer the Docker-based development/experimenting. - because I have a clean environment and no package problems.
Hi @ImreSamu,
I have since moved away from the ARM
servers based on this experience and the issues I’ve been facing. I do agree with your advice regarding sticking with what’s more generally used.
And I am grateful for the docker
based links you have shared!
Don’t the default binaries from julialang.org for ARM just work? We just need to delete README.arm.md.
-viral
As I see - no ARMv7 / ARMv8 binaries link ( for the latest Julia (>= v1.0) ) here :
Only Julia v0.5.2 (unmaintained) for ARMv7
Or on the old website: v0.7.0-beta2 for ARMv7
The status.julialang.org - Service Monitoring - link (from README.arm.md ) not working for me.
As I see the Ubuntu 18.10 Julia (ARMv8) compiled with USE_SYSTEM_LLVM=1
flags.
but "Using an unpatched or different version of LLVM will result in errors and/or poor performance. "