Need RaspberryPi - ARM Julia package testers

Some of us have been working on getting Julia into Raspbian with the amazing folks over at Rapberry Pi. The main focus has been to use as many system libs as possible, a system and newer LLVM, and a few other small things.

Here’s a package that has been put together, which should be ready to go, and it would be great if people can try it out. I have been using it over the weekend and it feels solid. Of course, there may be Julia arm bugs that you may find, and it may be good to know.

https://jcfiles.blob.core.windows.net/tmpfiles/julia_0.5.1-2_armhf.deb

This should work on all the Pis, but Pi3 is recommended. Also, note that it will use ATLAS and not OpenBLAS, since the one that is currently in Raspbian is buggy. We are woking on getting it updated.

Jupyter notebooks should work too, but you have to pip install Jupyter, set the JUPYTER environment variable and then Pkg.build(“IJulia”). Plotting works as well, but compilation times are a bit slow.

There are Pi specific packages in the JuliaBerry github org should you want to try those out. Those should be registered shortly.

9 Likes

Viral,

Thanks for this package. There are a lot of unmet dependencies when I try to install it on my Pi (B). Are there installation options that will install the dependencies as well? apt-get install -f simply removes the julia package after I install with dpkg.

Is the Raspberry Pi fast enough for Julia to be usable in practice (eg with nontrivial packages like Plots.jl)? I played around with a Pi 3 a while ago, but found that even for light web browsing there is significant lag.

Install all these packages:

libllvm3.9, libatlas3-base, libfftw3-dev, libgmp3-dev, libmpfr4,
libarpack2, libopenspecfun0, libssh2-1, libcurl4-openssl-dev,
libsuitesparse-dev

The build scripts are here:
https://github.com/JuliaBerry/julia-raspbian

My computer mysteriously died on me last week, and while the Apple store is
taking its own sweet time, I am using a Pi3 as my primary computer. It
actually works reasonably well. Can’t do too many things at the same time,
but perhaps I shouldn’t be doing that anyways. :slight_smile:

Precompiling is where you feel the slowness with Julia, especially with
stuff like Gadfly, but once precompiled, it is reasonably snappy.

1 Like

Not working on my pi:

seth@violet ~ $ sudo apt-get install llvm-3.9-dev libopenblas-dev libfftw3-dev libgmp3-dev libmpfr-dev libarpack2-dev libopenspecfun-dev libssh2-1-dev libcurl4-openssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libopenblas-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Unable to locate package llvm-3.9-dev
E: Couldn't find any package by regex 'llvm-3.9-dev'
E: Package 'libopenblas-dev' has no installation candidate
E: Unable to locate package libopenspecfun-dev

Also created a PR for the README.md.

May be you need the latest Raspbian? Or update something?

I’m pretty sure I’m on the latest version:

seth@violet ~ $ cat /proc/version
Linux version 4.9.16+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #978 Sat Mar 18 13:39:05 GMT 2017
seth@violet ~ $ cat /etc/issue
Raspbian GNU/Linux 7 \n \l

I have:

pi@raspberrypi:~ $ cat /etc/issue
Raspbian GNU/Linux 8 \n \l

pi@raspberrypi:~ $ cat /proc/version
Linux version 4.4.50-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3
(crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #970 SMP Mon Feb 20
19:18:29 GMT 2017

Looks like you need an apt-get dist-upgrade.

seth@violet ~ $ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Many ubuntus have a do-release-upgrade or some such thing. Or perhaps have
to install from the raspbian image?

Yup, got it. Need to get to Jessie. On it now. Thanks.

Awesome, worked out of the box on my Pi3, running Raspbian GNU/Linux 8 \n \l kernel 4.4.38-v7+. QML.jl seems to work at least partially out of the box, the test segfaults but this seems to work and run reasonably smoothly:

Pkg.add("QML")
cd(Pkg.dir("QML"))
include("example/gui.jl")

This requires QML development packages, cmake and GCC installed (it tries to do that automatically but that will probably fail).

1 Like

Do you know which test segfaulted?

To be clear, I ran the QML.jl tests, it was either properties.jl or qmlcomponent.jl, probably this is a CxxWrap.jl or QML.jl bug, so I intend to take a look when I have some more time to play around with the Pi.

Update: after an apt-get -f install things appear to be working normally.

I would expect that when you install via apt, all this will come out ok.
Looks like things are working after all this - so that is good.

-viral

Things are slow, but working nicely. Thanks!

Looks like we are good to go. The package also works on the other Pis, but is incredibly slow on older or slower processors. Time to get those compiler improvements and the interpreter in.