I’m running ocaml 4.14.0. I’m running on Debian. I prepared like this:
apt install libopenblas-base \
opam install owl
However something seems to be wrong because (utop):
utop # #require "owl";;
Cannot load required shared library dllowl_stubs.
Reason: ./dllowl_stubs.so: ./dllowl_stubs.so: undefined symbol: LAPACKE_dtpmqrt.
I’ve posted it as a Github issue on the owl repository but I wondered if anyone perhaps ran into this issue and how they fixed it?
This is a common issue, and is a problem with the LAPACKE that Debian uses.
Thanks for pinging me.
@ivg has already noted, dlagge has been there for a long time. The thing is that owl links against openblas and expects it to be compiled to include lapacke and cblas. Unless you use js_of_ocaml, all the linear algebra routines will shell out to openblas, so you likely need it. I pin @ryanrhymes, just to make sure I am not saying something wrong here.
In most cases openblas installed by your distribution will have everything you need, but this is currently kn…
Thank you – the solution for me ended up being pinning the repo to the github version which seems to fix it. I had to install owl-zoo/plplot/top separately – I think the documentation needs updating on several points. I’ve submitted some issues about it.
This package is very impressive and its the only show in town for well supported numerical computing on OCaml it seems. However us more pedestrian users would really appreciate (a) up to date documentation, and (b) a more robust on-ramp. I mean that constructively because I suspect many “let’s give OCaml for data science a try” journeys will end with Joe data scientist giving up battling the idiosyncrasies of the installation process.
I agree completely. It is a pretty decent substitute for numpy though.
The fix is part of the PR to allow for clean linux arm and apple M1 installation:
Support Arm64 by mseri · Pull Request #609 · owlbarn/owl · GitHub
The master branch contains also a fix for ocaml 4.14 by @ryanrhymes, so that will appear once it is released.
Somehow the linking on debian was fixed but got broken in a spurious commit in the release of 1.0.2.
To try that out:
opam pin -n git+https://github.com/mseri/owl.git#arm64
opam pin remove owl-top owl-zoo # if you are not on ocaml 4.14
opam install owl
If you are on x86 and ocaml 4.13, you may as well install an older owl, for example
opam install owl.1.0.1 should work fine.
You will need also
eigen 0.3.1 which was released on the opam repository recently (or manually
opam pin -n git+https://github.com/mseri/eigen.git#fix-0.3.0)
As for the documentation, I agree. I know that
@ryanrhymes and @j.zhao are working on it and some introductory and advanced books, so I hope it is just a matter of time
Thank you for being so proactive. Will be using owl lots in the coming weeks, I’ll send PRs as I go for the documentation, so hopefully I can be useful to you.