copl / mpc_lp_cpp

Mehrortra predictor corrector
0 stars 0 forks source link

Try different Linear Equation Solvers. #29

Open davoods opened 9 years ago

davoods commented 9 years ago

Options: 1- Intel MKL: Free academic license. almost serial (limited parallelization capability) 2- SuperLU: Paralle, but mixed results (can be slow) 3- MUMPS: symmetric positive definite matrices general symmetric matrices general unsymmetric matrices 4- HSL mathematical software library 5- PARDISO 6-PaStiX

Top choices: 1) WSMP(IBM) - has Julia binder https://github.com/JuliaSparse/WSMP.jl 2) MUMPS 3) PARDISO (intel MKL)

ohinder commented 9 years ago

awesome! it'd be great if we could integrate that into the current Julia code

On Tue, Aug 11, 2015 at 8:19 AM, davoods notifications@github.com wrote:

Options: 1- Intel MKL: Free academic license. almost serial (limited parallelization capability) 2- SuperLU: Paralle, but mixed results (can be slow) 3- MUMPS: symmetric positive definite matrices general symmetric matrices general unsymmetric matrices 4- HSL mathematical software library 5- PARDISO 6-PaStiX

Top choices: 1) WSMP(IBM) - has Julia binder https://github.com/JuliaSparse/WSMP.jl 2) MUMPS 3) PARDISO (intel MKL)

— Reply to this email directly or view it on GitHub https://github.com/copl/mpc_lp_cpp/issues/29#issuecomment-129927021.

Thanks, Oliver Hinder,

ohinder@gmail.com

ohinder commented 9 years ago

also it looks like mumps also has a julia interface

davoods commented 9 years ago

The same githup rep has Julia interface for all the top three choices https://github.com/JuliaSparse Interestingly one of the contributors is at Stanford (Jack Poulson)

davoods commented 9 years ago

I will put some time tomorrow to see how can we use them

yinyuye commented 9 years ago

Thanks

Sent from my Verizon Wireless 4G LTE smartphone

-------- Original message -------- From: davoods notifications@github.com Date: 08/12/2015 1:13 PM (GMT+08:00) To: copl/mpc_lp_cpp mpc_lp_cpp@noreply.github.com Subject: Re: [mpc_lp_cpp] Try different Linear Equation Solvers. (#29)

I will put some time tomorrow to see how can we use them

Reply to this email directly or view it on GitHubhttps://github.com/copl/mpc_lp_cpp/issues/29#issuecomment-130167895.

davoods commented 9 years ago

Note: I finally Installed MUMPS.jl on ubuntu(EC2). Steps: 1) Pkg.clone("https://github.com/JuliaSparse/MUMPS.jl") 2) cd to ~/.julia/../src 3) change path in MUMPSf.. const MUMPSlibPath = "/home/ubuntu/.julia/v0.2/MUMPS/lib/MUMPS" 4) run make. in src it requires installing many packages in including OpenBLAS to Install OpenBLAS 23 git clone https://github.com/xianyi/OpenBLAS 24 cd OpenBLAS/ 33 mkdir /opt/OpenBLAS 35 sudo make PREFIX=/opt/OpenBLAS/ install

davoods commented 9 years ago

Oliver, here is the instruction for installing MUMPS.jl on Linux.

Installing MUMPS on a Fresh EC2 Instance: sudo apt-get update sudo apt-get install build-essential sudo apt-get install git sudo apt-get install make sudo apt-get install cmake sudo apt-get install gfortran

Installing OpenBLAS git clone https://github.com/xianyi/OpenBLAS cd OpenBLAS/ sudo mkdir /opt/OpenBLAS sudo make sudo make PREFIX=/opt/OpenBLAS/ install

Installing Julia: sudo add-apt-repository ppa:staticfloat/juliareleases sudo add-apt-repository ppa:staticfloat/julia-deps sudo apt-get update sudo apt-get install julia open Julia:

Julia Pkg.clone("https://github.com/JuliaSparse/MUMPS.jl")

In another shell: cd .julia/v0.3/MUMPS/src/ 1) open MUMPSfuncs.jl Change the first line to const MUMPSlibPath = "/home/ubuntu/.julia/v0.3/MUMPS/lib/MUMPS" 2) in compiler_options.in change LIBBLAS = /opt/OpenBLAS/lib/libopenblas_sandybridge-r0.2.14.a 3) run make

Done installing— To test: 1) open Julia 2) in Julia cd("/home/ubuntu/.julia/v0.3/MUMPS/tests") include("testMUMPS.jl")

davoods commented 9 years ago

I ran solved on Linear Equation with the MUMPS Julia binder. Much faster than Eigen solver.

yinyuye commented 9 years ago

Great. Is it a sparse solver?

Sent from my Verizon Wireless 4G LTE smartphone

-------- Original message -------- From: davoods notifications@github.com Date: 08/19/2015 11:38 AM (GMT+08:00) To: copl/mpc_lp_cpp mpc_lp_cpp@noreply.github.com Cc: Yinyu Ye yyye@stanford.edu Subject: Re: [mpc_lp_cpp] Try different Linear Equation Solvers. (#29)

I ran solved on Linear Equation with the MUMPS Julia binder. Much faster than Eigen solver.

Reply to this email directly or view it on GitHubhttps://github.com/copl/mpc_lp_cpp/issues/29#issuecomment-132435159.

davoods commented 9 years ago

Yes, MUMPS handle Sparse matrices..

ohinder commented 9 years ago

thanks!

On Tue, Aug 18, 2015 at 8:36 PM, davoods notifications@github.com wrote:

Oliver, here is the instruction for installing MUMPS.jl on Linux.

Installing MUMPS on a Fresh EC2 Instance: sudo apt-get update sudo apt-get install build-essential sudo apt-get install git sudo apt-get install make sudo apt-get install cmake sudo apt-get install gfortran

Installing OpenBLAS git clone https://github.com/xianyi/OpenBLAS cd OpenBLAS/ sudo mkdir /opt/OpenBLAS sudo make sudo make PREFIX=/opt/OpenBLAS/ install

Installing Julia: sudo add-apt-repository ppa:staticfloat/juliareleases sudo add-apt-repository ppa:staticfloat/julia-deps sudo apt-get update sudo apt-get install julia open Julia:

Julia Pkg.clone("https://github.com/JuliaSparse/MUMPS.jl")

In another shell: cd .julia/v0.3/MUMPS/src/ 1) open MUMPSfuncs.jl Change the first line to const MUMPSlibPath = "/home/ubuntu/.julia/v0.3/MUMPS/lib/MUMPS" 2) in compiler_options.in change LIBBLAS = /opt/OpenBLAS/lib/libopenblas_sandybridge-r0.2.14.a 3) run make

Done installing— To test: 1) open Julia 2) in Julia cd("/home/ubuntu/.julia/v0.3/MUMPS/tests") include("testMUMPS.jl")

— Reply to this email directly or view it on GitHub https://github.com/copl/mpc_lp_cpp/issues/29#issuecomment-132435043.

Thanks, Oliver Hinder,

ohinder@gmail.com

davoods commented 9 years ago

Note: I could finally test PARDISO (Intel MKL) for Julia. It crash (seg fault) from a larger size data (17k x 17k) that MUMPS can handle. It sounds to be slower as well.