[Ipopt] Sparse Linear Solver on GPU for IPOPT?

Anthony D. Kelman kelman at berkeley.edu
Fri Aug 19 14:41:16 EDT 2016

The only one of those that's likely to be able to provide inertia
information needed by the Ipopt algorithm is SPRAL, given it's by the same
authors as the other HSL CPU solvers that Ipopt can use. (SPQR might also
work but is likely to be more expensive.) I suspect you might end up
limited by slow GPU-CPU communication for values that change at every
iteration (function values and derivatives) and control over the algorithm
itself that happens on the CPU, unless you were to rewrite all of Ipopt as
well as your function and derivative evaluations in CUDA or OpenCL.

Jonathan Hogg is the person to ask whether they've hooked up their sparse
GPU solvers to a full Ipopt-like optimization algorithm and collected
performance numbers.

On Fri, Aug 19, 2016 at 11:08 AM, Stuart Rogers <smr1 at ualberta.ca> wrote:

> To my knowledge, IPOPT only exploits direct sparse linear solvers that
> execute on the CPU (i.e. MA27, MA57, MA77, MA86, MA97, PARDISO, WSMP, and
> MUMPS). Except for MA27, all these direct sparse linear solvers have been
> parallelized (to varying degrees) to exploit multiple core CPUs. Have there
> been any studies that investigate performance improvements by executing a
> direct or iterative sparse linear solver on the GPU when using IPOPT to
> solve NLP problems?
> There are many iterative sparse linear solvers implemented to run on the
> GPU such as those in the following libraries:
> cuSPARSE (https://developer.nvidia.com/cusparse)
> MAGMA (http://icl.cs.utk.edu/magma/)
> CULA Sparse (http://www.culatools.com/sparse/)
> MATLAB's bicgstab and gmres (http://www.mathworks.com/help
> /distcomp/run-built-in-functions-on-a-gpu.html#buqplvc)
> ViennaCL (http://viennacl.sourceforge.net/)
> clSPARSE (https://github.com/clMathLibraries/clSPARSE)
> A few direct sparse linear solvers have been implemented to run on the GPU
> such as those in the following libraries:
> cuSOLVER (https://developer.nvidia.com/cusolver)
> SPRAL (http://www.numerical.rl.ac.uk/spral/)
> SPQR (http://faculty.cse.tamu.edu/davis/suitesparse.html)
> SuperLU_DIST (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_dist)
> ViennaCL and clSparse are implemented in OpenCL, so run on any OpenCL
> device (e.g. NVIDIA GPU, AMD GPU, and Intel Xeon Phi coprocessor). All the
> other libraries listed above are implemented in CUDA and therefore only run
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20160819/b2a05848/attachment.html>

More information about the Ipopt mailing list