Excellent Tony! dlopening libgomp in the start fixed it. I got some
segfaults but it was because I had misunderstood some of the data types
pardiso needed.
I guess if you have the code in place for wrapping either the MKL Pardiso
or the newest Pardiso then it shouldn't be too hard to write the code for
the other
Pardiso is free for academic use now so it's availability could be
considered to be greater than MKL which is just available for free on linux
with academic licence IIRC.
Many thanks for your help.
/ Kristoffer
On Wednesday, May 13, 2015 at 1:33:16 AM UTC+2, Tony Kelman wrote:
>
> Mostly likely, libpardiso isn't linked to libgomp. Check with ldd, and try
> dlopen'ing libgomp first. If this is the version of Pardiso from MKL, then
> it's probably using libiomp instead.
>
> A Pardiso wrapper package would be quite useful, though it's a pretty
> messy situation since Intel MKL includes an implementation of Pardiso that
> uses an older incompatible API. Based on availability and licensing, I
> suspect the MKL version of Pardiso would be more widely usable.
>
>
> On Tuesday, May 12, 2015 at 2:07:53 AM UTC-7, Kristoffer Carlsson wrote:
>>
>> Hello everyone,
>>
>> I am trying to call the Pardiso library (sparse solver library) in the
>> following way:
>>
>> julia> l = Libdl.dlopen("libparadiso", Libdl.RTLD_GLOBAL)
>> Ptr{Void} @0x00000000014e9510
>>
>> julia> init = Libdl.dlsym(l, "pardisoinit")
>> Ptr{Void} @0x00007f920f989f50
>>
>> julia> pt = [0]
>>
>> julia> dparm = zeros(64)
>>
>> julia> err = [0]
>>
>> julia> ccall(init, Void, (Ptr{Int}, Ptr{Int}, Ptr{Int}, Ptr{Float64},
>> Ptr{Int}) , pt, &1, &0, dparm, err)
>>
>> julia: symbol lookup error: /usr/lib/libparadiso.so: undefined symbol:
>> omp_get_wtime_
>>
>> and then julia crashes.
>>
>> Can anyone tell me how I get the openmp symbols into julia or what I have
>> to do to fix the problem.
>>
>> Or even better if someone knows of an already existing Pardiso wrapper
>> for julia.
>>
>> Best regards,
>>
>> Kristoffer
>>
>