Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use gfortran interface of MKL. #5363

Closed
wants to merge 2 commits into from
Closed

Use gfortran interface of MKL. #5363

wants to merge 2 commits into from

Conversation

ViralBShah
Copy link
Member

Attempting to implement the discussion in #5303

@ViralBShah
Copy link
Member Author

I have been able to link all the libraries against MKL's gfortran interface, but can't get the system image to build:

julia 01:07:38 (vs/mkl) ~/julia-mkl$ make
    PERL base/build_h.jl.phony
fatal: error thrown and no exception handler available.
ErrorException("error compiling _start: error compiling check_blas: error compiling blas_vendor: could not load module libmkl_gf_ilp64: libmkl_gf_ilp64: cannot open shared object file: No such file or directory")
*** This error is usually fixed by running 'make clean'. If the error persists, try 'make cleanall'. ***
make[1]: *** [/home/viral/julia-mkl/usr/lib/julia/sys.bc] Error 1
make: *** [release] Error 2

@ViralBShah
Copy link
Member Author

@vtjnash Could this be due to the new fast startup stuff, where it may be unable to find the MKL libraries?

@ViralBShah
Copy link
Member Author

Cc: @andreasnoackjensen

@andreasnoack
Copy link
Member

I get the same error. The weird thing is that if I choose another .so, e.g. mkl_core.so, then julia can find the file. I have also tried to copy the the relevant library files to /julia/usr/lib and that works.

@lindahua
Copy link
Contributor

A little bit off topic. Is it possible to set up a travis session to test Julia + MKL (with a proper license of course)?

@vtjnash
Copy link
Member

vtjnash commented Jan 12, 2014

It sounds like the dynamic linker is unable to find some dependency of libmkl_gf_ilp64

@ViralBShah
Copy link
Member Author

Maybe we just copy the files when using mkl?

@ViralBShah
Copy link
Member Author

All dependencies of libmkl_gf_ilp64 are in the RPATH and LD_LIBRARY_PATH. I think it is best to just copy all the MKL files into usr/lib, if that works.

@lindahua We can certainly install MKL on a travis box. Perhaps best to have a separate issue for that.

@vtjnash
Copy link
Member

vtjnash commented Jan 12, 2014

I'm not sure what rules linux uses for looking up dependencies of dependencies, however, setting LD_LIBRARY_PATH at runtime should have been enough.

@staticfloat
Copy link
Member

strace is your friend here. Run the failing command inside of strace, filtering out all syscalls except for open. The command for that is:

$ strace -fe open ./julia

If you're running on OSX, dtruss can be used to do the same thing, but it's usually better to catch stat64 on OSX:

$ dtruss -f -t stat64 julia

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants