Trouble using Pardiso for Ipopt with Windows Operating System

question
optimization

#1

I am struggling to use the linear algebra library Pardiso with Ipopt in Julia with JuMP. I have a very large nonlinear problem and it is my understanding that Pardiso may be more efficient and speed up the iterations. I have been trying to follow along with the discussion here:

https://github.com/JuliaOpt/Ipopt.jl/issues/83

which seems to be using Pardiso without doing a custom build of Ipopt. I am currently solving problems using the MUMPS library.

My system:
-Windows 10 64-bit operating system, 16 GB RAM
-Julia v0.6.4
-JuMP v0.18.2
-Pardiso v6

What I have done:
(1) Install Pardiso.jl (Pkg.add(“Pardiso”) )

julia> Pkg.add(“Pardiso”)
INFO: Cloning cache of Pardiso from https://github.com/JuliaSparse/Pardiso.jl.git
INFO: Installing Pardiso v0.3.2
INFO: Building Pardiso
did not find libpardiso, assuming PARDISO 5.0 is not installed
did not find MKLROOT key, assuming MKL is not installed
WARNING: no Pardiso library managed to load
INFO: Package database updated
INFO: METADATA is out-of-date — you may not have the latest version of Pardiso
INFO: Use Pkg.update() to get the latest versions of your packages

(2) Download libpardiso600-WIN-X86-64.dll and put this and the pardiso.lic in Pkg.dir("WinRPM", "deps", "usr", "x86_64-w64-mingw32", "sys-root", "mingw", "bin"). I also renamed copies of libpardiso600-WIN-X86-64.dll as libpardiso.dll and libpardiso.so in this folder.
(3) Pkg.build(“Pardiso”)

Pkg.build(“Pardiso”)
INFO: Building Pardiso
did not find libpardiso, assuming PARDISO 5.0 is not installed
did not find MKLROOT key, assuming MKL is not installed
WARNING: no Pardiso library managed to load

(4) When I run the julia code with `m=Model(solver = IpoptSolver(linear_solver=“pardiso”))’, I get:

EXIT: Invalid option encountered.
WARNING: Ipopt finished with status Invalid_Option
WARNING: Not solved to optimality, status: Error
Objective Value: 0.0
Exception of type: OPTION_INVALID in file “IpAlgBuilder.cpp” at line 366:
Exception message: Selected linear solver Pardiso not available.
Tried to obtain Pardiso from shared library “libpardiso.dll”, but the following error occured:
Windows error while loading dynamic library libpardiso.dll, error = 126.
(see http://msdn.microsoft.com/en-us/library/ms681381(v=vs.85).aspx)

Any help would be appreciated!


#2

WARNING: no Pardiso library managed to load is a bad sign.

What happens if you put libpardiso600-WIN-X86-64.dll into .julia/0.6/Pardiso/deps?


#3

I put libpardiso600-WIN-X86-64.dll into C:\JuliaPro-0.6.4.1\pkgs-0.6.4.1\v0.6\Pardiso\deps and did Pkg.build("Pardiso") and got the same result:

julia> Pkg.build(“Pardiso”)
INFO: Building Pardiso
did not find libpardiso, assuming PARDISO 5.0 is not installed
did not find MKLROOT key, assuming MKL is not installed
WARNING: no Pardiso library managed to load

I then tried running my julia code with ipopt solver using Pardiso and I got the same message as before.