First some version information, since I suspect this is important:
MATLAB Version 18.104.22.1688 (R2006b)
Operating System: Linux 22.214.171.124-0.2.5-smp #1 SMP Mon Jan 21 13:29:51 UTC 2008 x86_64
Java VM Version: Java is not enabled
I want to make a mex file calling MKL sparse solvers. For now I call sequential libraries, but something goes wrong when I call the resulting file. I have created a custom shared object containing functions
The command line to create the custom shared object looks like this: make em64t export=mrt_inv_funclist_nomp.txt interface=lp64 threading_name=sequential name=libmkl_custom
I have made some modifications in the custom make tool to avoid any calls to libguile
func_list := $(addprefix -u ,$(shell cat $(export)))
gcc -shared -Bdynamic $(func_list)
$(xerbla) $(mklem64t_libpath)/$(IFACE_LIB) $(mklem64t_libpath)/$(THREADING_LIB)
$(mklem64t_libpath)/$(CORE_LIB) -L$(mklem64t_libpath) -o $(name).so
The resulting custom shared object is linked with the mex c-file code, which is quite simple. It contains no unresolved references - just matlab libs and the custom object.
Then the example 3x3 system is tried:
the result is below:
convert indexing Matlab -> MKL style done
MKL-DSS-DSS-Error, An unclassifiable error occurred
All the lines except the last one are debugging messages which I output using Matlab printf functions.
The last line is from MKL and immediately after that Matlab is crashing with no special message.
I tried quite a few variations from the
above, but the result is basically the same. My initial suspicion was that Matlab is using old version of MKL, so there may be a version conflict. For this reason I created a custom shared object, so that I can be sure that new MKL blas version is used in my mex file. Unfortunately the crashes keep happening.
Can you advice me what to do and where to look.
Thanks a lot!