uncomplicate

Joe R. Smith 2025-01-05T04:12:10.806069Z

hello! I'm getting an error when requiring native:

(require '[uncomplicate.neanderthal core native])
Execution error (UnsatisfiedLinkError) at jdk.internal.loader.NativeLibraries/load (NativeLibraries.java:-2).
/home/solussd/.javacpp/cache/mkl-2024.0-1.5.10-linux-x86_64.jar/org/bytedeco/mkl/linux-x86_64/libjnimkl_rt.so: libmkl_rt.so.2: cannot open shared object file: No such file or directory
my deps.edn
{:deps {uncomplicate/neanderthal {:mvn/version "0.50.1"}
        org.bytedeco/mkl$$linux-x86_64-redist {:mvn/version "2024.0-1.5.10"}
        org.bytedeco/cuda$linux-x86_64-redist {:mvn/version "12.3-8.9-1.5.10"}}}
this is Ubuntu 24.04.1 LTS, I've installed the intel-mkl package. I'm wondering if I need to set by library path ... but I don't know where to point it.

Joe R. Smith 2025-01-05T04:44:33.423139Z

Update: "fixed?" by adding org.bytedeco/mkl-platform-redist as a dep, but I don't understand why it didn't use what I had installed systemwide. 🤔

2025-01-08T13:11:43.618559Z

@solussd Please explore javacpp mkl website for possible jvm input settings. I'm sure that they have a way to say whether you want system MKL or JavaCPP-bundled one.

👍 1
luke 2025-01-07T15:56:31.645199Z

I mean according to the error, it was looking for it specifically in ~/.javacpp so I'm guessing the JavaCPP lib (which the uncomplicate stuff is built on) uses its own dep management and doesn't even try to link with the system version. Which I'm sympathetic with... the array of possible bugs opened up by linking to whatever random crap is installed on the system is practically infinite...

Joe R. Smith 2025-01-07T15:58:26.380799Z

I interpreted that as that's where it put the JNI bindings (libjnimkl_rt.so), but couldn't find libmkl_rt.so.2