Git Product home page Git Product logo

Comments (12)

mikiobraun avatar mikiobraun commented on June 1, 2024

Hello jap226,

it seems that the the JNI files do not exist. They are not included in the sources as they are pretty large. You have to compile those from scratch, or extract them from the precompiled jar files.

See the file INSTALL under the section "COMPILING THE NATIVE PART". It might be that you also need to compile ATLAS. See the ile BUILDING_ATLAS under the heading "Mac OS X". I compiled it using mac ports.

Good luck!

-M

from jblas.

mikiobraun avatar mikiobraun commented on June 1, 2024

Hm, on second inspection, I actually checked in the files under native-libs. Can you tell me what files you find under "native-libs".

from jblas.

jap226 avatar jap226 commented on June 1, 2024

There are a series of folders:
-native-libs
-static
-Linux
-Mac OS X
-Windows

if you go in the Mac OS X folder there is:
-i386
-x86_64

in the x86_64 folder there is
"libjblas_arch_flavor.jnilib"
-sse3 (a folder)
the folder "sse3" that has the file "libjblas.jnilib".

I don't remember if I mention that I am working in 64bit Java.

Thanks.

from jblas.

mikiobraun avatar mikiobraun commented on June 1, 2024

Hm... very odd, it all seems to be there. Can you send me the output of java -jar jblas-(insert your version here).jar?

from jblas.

jap226 avatar jap226 commented on June 1, 2024

Hi, I'm just running the simple test code:

    SanityChecks.checkVectorAddition();
    ArchFlavor.overrideArchFlavor("SSE3");
    SanityChecks.checkEigenvalues();

and the output is:

Starting jBLAS EigenvalueDecomposition
checking vector addition... ok

-- org.jblas ERROR Couldn't load copied link file: java.lang.UnsatisfiedLinkError: /private/var/folders/dy/dyBwkLfgEIC3mw-aTd3uj++++Tc/-Tmp-/jblas5360203922203535106libjblas_arch_flavor.jnilib: no suitable image found. Did find: /private/var/folders/dy/dyBwkLfgEIC3mw-aTd3uj++++Tc/-Tmp-/jblas5360203922203535106libjblas_arch_flavor.jnilib: unknown required load command 0x80000022.

Exception in thread "main" java.lang.UnsatisfiedLinkError: Couldn't find the resource libjblas.jnilib.
at org.jblas.util.LibraryLoader.loadLibrary(LibraryLoader.java:119)
at org.jblas.NativeBlas.(NativeBlas.java:84)
at org.jblas.util.SanityChecks.checkEigenvalues(SanityChecks.java:122)
at gs.rrEmma.EigenTester.main(EigenTester.java:81)

from jblas.

jap226 avatar jap226 commented on June 1, 2024

Also, without the code:
ArchFlavor.overrideArchFlavor("SSE3");
I get the error:

Starting jBLAS EigenvalueDecomposition
checking vector addition... ok
-- org.jblas ERROR Couldn't load copied link file: java.lang.UnsatisfiedLinkError: /private/var/folders/dy/dyBwkLfgEIC3mw-aTd3uj++++Tc/-Tmp-/jblas244329846253217554libjblas_arch_flavor.jnilib: no suitable image found. Did find: /private/var/folders/dy/dyBwkLfgEIC3mw-aTd3uj++++Tc/-Tmp-/jblas244329846253217554libjblas_arch_flavor.jnilib: unknown required load command 0x80000022.

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.jblas.util.ArchFlavor.SSELevel()I
at org.jblas.util.ArchFlavor.SSELevel(Native Method)
at org.jblas.util.ArchFlavor.archFlavor(ArchFlavor.java:69)
at org.jblas.util.LibraryLoader.addFlavor(LibraryLoader.java:179)
at org.jblas.util.LibraryLoader.loadLibrary(LibraryLoader.java:103)
at org.jblas.NativeBlas.(NativeBlas.java:84)
at org.jblas.util.SanityChecks.checkEigenvalues(SanityChecks.java:122)
at gs.rrEmma.EigenTester.main(EigenTester.java:81)

from jblas.

jap226 avatar jap226 commented on June 1, 2024

Hi,
Update... I have been working on a Quad-Core MacPro with OS X 10.5.8. which is where all of these problems have been coming up. I just got a new MacBookPro with OS X 10.6.3. I tried jBLAS on this machine and it works great. No problem. (Computed eigenvalues for a 1000x1000 matrix in 0.7 seconds compared to 25 seconds for pure java implementation!)
Anyway, I don't really know what the difference would be other that the OS X version.

from jblas.

mikiobraun avatar mikiobraun commented on June 1, 2024

Hi jap226,

sorry for the problems. The machine I built jblas for is in fact a Mac OS X 10.6 machine. No idea what went wrong with 10.5, either... . Unfortunately, I'm not that much of a Mac-guy.

Anyway, have you sent me the results of "java -jar jblas-1.0.2.jar" ? Those contain a bit more logging information, in particular where it is looking for the shared libraries... .

We probably should also move the discussion over to http://groups.google.com/group/jblas-users

-M

from jblas.

chrisrueger avatar chrisrueger commented on June 1, 2024

Hi,
I have a similar issue.
I am developing on MacOSX 10.6.4 and everything works fine. But when I deploy on a 64bit Ubuntu machine I get the following execption:

-- org.jblas ERROR Couldn't load copied link file: java.lang.UnsatisfiedLinkError: /tmp/jblas2521556716648893575libjblas_arch_flavor.so: libgfortran.so.3: cannot open shared object file: No such file or directory.

Exception in thread "Thread-4" java.lang.UnsatisfiedLinkError: org.jblas.util.ArchFlavor.SSELevel()I
at org.jblas.util.ArchFlavor.SSELevel(Native Method)
at org.jblas.util.ArchFlavor.archFlavor(ArchFlavor.java:69)
at org.jblas.util.LibraryLoader.loadLibrary(LibraryLoader.java:75)
at org.jblas.NativeBlas.(NativeBlas.java:84)
at org.jblas.SimpleBlas.syevr(SimpleBlas.java:624)
at org.jblas.Eigen.symmetricEigenvectors(Eigen.java:142)
at com.synesty.jung.algorithms.SpectralClusterer.transform(SpectralClusterer.java:92)

The output of java -jar jblas-1.1.1.jar is the following:
java -jar jblas-1.1.1.jar
Simple benchmark for jblas

            Running sanity benchmarks.

            checking vector addition... ok
            -- org.jblas CONFIG BLAS native library not found in path. Copying native library from the archive. Consider installing the library somewhere in the path (for Windows: PATH, for Linux: LD_LIBRARY_PATH).
            -- org.jblas CONFIG ArchFlavor native library not found in path. Copying native library libjblas_arch_flavor from the archive. Consider installing the library somewhere in the path (for Windows: PATH, for Linux: LD_LIBRARY_PATH).
            -- org.jblas CONFIG Loading libjblas_arch_flavor.so from /lib/static/Linux/amd64/.
            -- org.jblas ERROR Couldn't load copied link file: java.lang.UnsatisfiedLinkError: /tmp/jblas154268473926467448libjblas_arch_flavor.so: libgfortran.so.3: cannot open shared object file: No such file or directory.

            Exception in thread "main" java.lang.UnsatisfiedLinkError: org.jblas.util.ArchFlavor.SSELevel()I
                    at org.jblas.util.ArchFlavor.SSELevel(Native Method)
                    at org.jblas.util.ArchFlavor.archFlavor(ArchFlavor.java:69)
                    at org.jblas.util.LibraryLoader.loadLibrary(LibraryLoader.java:75)
                    at org.jblas.NativeBlas.<clinit>(NativeBlas.java:84)
                    at org.jblas.SimpleBlas.gemm(SimpleBlas.java:223)
                    at org.jblas.DoubleMatrix.mmuli(DoubleMatrix.java:1672)
                    at org.jblas.DoubleMatrix.mmul(DoubleMatrix.java:3003)
                    at org.jblas.util.SanityChecks.checkMatrixMultiplication(SanityChecks.java:91)
                    at org.jblas.util.SanityChecks.main(SanityChecks.java:173)
                    at org.jblas.benchmark.Main.main(Main.java:109)

The content of the lib folder of my jblas-1.1.1.jar is the following:

gast-4101:~/Desktop/temp/jblas-1.1.1/lib christophrueger$ ls -R
static

./static:
Linux Mac OS X Windows

./static/Linux:
amd64 i386

./static/Linux/amd64:
libjblas_arch_flavor.so sse2 sse3

./static/Linux/amd64/sse2:
libjblas.so

./static/Linux/amd64/sse3:
libjblas.so

./static/Linux/i386:
libjblas_arch_flavor.so sse2 sse3

./static/Linux/i386/sse2:
libjblas.so

./static/Linux/i386/sse3:
libjblas.so

./static/Mac OS X:
x86_64

./static/Mac OS X/x86_64:
libjblas_arch_flavor.jnilib sse3

./static/Mac OS X/x86_64/sse3:
libjblas.jnilib

./static/Windows:
x86

./static/Windows/x86:
jblas_arch_flavor.dll sse2 sse3

./static/Windows/x86/sse2:
jblas.dll

./static/Windows/x86/sse3:
jblas.dll

All outputs are produced on the Linux / Ubuntu box.
Java Version on the Linux box:
java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.2) (6b18-1.8.2-4ubuntu2)
OpenJDK 64-Bit Server VM (build 16.0-b13, mixed mode)

I would appreciate any ideas.

Thanks
Christoph

from jblas.

mikiobraun avatar mikiobraun commented on June 1, 2024

Hi,

for 64 bit Ubuntu, you need to install the gfortran runtime "sudo aptitude install libgfortran3".

The reason is that for 64bit having -fPIC (position independent code or not) is important and I cannot link the existing (static) gfortran library into jblas because it is not compiled with position independent code.

Installing the runtime should solve your problems.

-M

from jblas.

chrisrueger avatar chrisrueger commented on June 1, 2024

Hi Mikio,
thanks for the hint. Installing libgfortran3 on that machine worked.

Thanks
Christoph

from jblas.

mikiobraun avatar mikiobraun commented on June 1, 2024

Alright, I've added a warning to the configure script.

Closing the ticket now.

from jblas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.