[Ipopt] Questions about IPOPT Timing Statistics

Stefan Vigerske stefan at math.hu-berlin.de
Tue Jul 23 09:18:48 EDT 2013


Hi,

On 07/19/2013 10:19 PM, Riadh Omheni wrote:
> Hi,
>
> We are implementing a primal dual method (in C) for solving nonlinear
> optimization problem and we have compared it to IPOPT on some equality
> constrained problems. Both methods were run using MA57. We remark that
> IPOPT takes more time than our code, especially for problems that are
> quickly solved, say less than 1 sec, for which IPOPT and our method
> succeed to find an optimal solution after similar numbers of function
> and gradient evaluations. In order to find the source of this surprising
> difference,

Please keep in mind, that Ipopt is made for large scale optimization 
problems. Problems that solve in less than a second were not the main 
target when Ipopt had been implemented.

> we print the IPOPT timing statistics by setting the option
> print_timing_statistics to yes. These outputs are not very clear
> especially the statistics concerning the solution of the linear system.
> We would like to know if there is some documentation decribing these
> output (see output below) ? In particular, what is the difference
> between "PDSystemSolverSolveOnce" and "StdAugSystemSolverMultiSolve" ?

I am not aware of any documentation on this.
To see what PDSystemSolverSolveOnce is doing, look for 
PDSystemSolverSolveOnce in IpPDFullSpaceSolver.cpp.
To see what StdAugSystemSolverMultiSolve is doing, look into 
IpStdAugSystemSolver.cpp.

> My second question concerns the member "InitializeIterates" in the
> Timing Statistics. Why this initialization step take more than 50% of
> overall time needed to solve the problem ?

Your problem was solved within 1 or 2 iterations. In such a case, 
initialization can be dominating, I believe. It has to setup a number of 
data structures, I guess.

Stefan

>
>
> ** IPOPT statistics for the problem aug2d **
>
> Number of objective function evaluations             = 2
> Number of objective gradient evaluations             = 2
> Number of equality constraint evaluations            = 2
> Number of inequality constraint evaluations          = 0
> Number of equality constraint Jacobian evaluations   = 2
> Number of inequality constraint Jacobian evaluations = 0
> Number of Lagrangian Hessian evaluations             = 1
> Total CPU secs in IPOPT (w/o function evaluations)   =     0.3217
> Total CPU secs in NLP function evaluations           =     0.0125
>
> Timing Statistics:
>
> OverallAlgorithm....................:      0.334 (sys:      0.007
> wall:      0.344)
>   PrintProblemStatistics.............:      0.002 (sys:      0.000
> wall:      0.002)
>   InitializeIterates.................:      0.176 (sys:      0.006
> wall:      0.185)
>   UpdateHessian......................:      0.001 (sys:      0.000
> wall:      0.002)
>   OutputIteration....................:      0.000 (sys:      0.000
> wall:      0.000)
>   UpdateBarrierParameter.............:      0.000 (sys:      0.000
> wall:      0.000)
>   ComputeSearchDirection.............:      0.142 (sys:      0.001
> wall:      0.143)
>   ComputeAcceptableTrialPoint........:      0.004 (sys:      0.000
> wall:      0.004)
>   AcceptTrialPoint...................:      0.000 (sys:      0.000
> wall:      0.000)
>   CheckConvergence...................:      0.008 (sys:      0.000
> wall:      0.008)
> PDSystemSolverTotal.................:      0.142 (sys:      0.001
> wall:      0.142)
>   PDSystemSolverSolveOnce............:      0.137 (sys:      0.001
> wall:      0.138)
>   ComputeResiduals...................:      0.003 (sys:      0.000
> wall:      0.004)
>   StdAugSystemSolverMultiSolve.......:      0.299 (sys:      0.004
> wall:      0.305)
>   LinearSystemScaling................:      0.000 (sys:      0.000
> wall:      0.000)
>   LinearSystemSymbolicFactorization..:      0.032 (sys:      0.001
> wall:      0.034)
>   LinearSystemFactorization..........:      0.246 (sys:      0.002
> wall:      0.249)
>   LinearSystemBackSolve..............:      0.019 (sys:      0.000
> wall:      0.019)
>   LinearSystemStructureConverter.....:      0.000 (sys:      0.000
> wall:      0.000)
>    LinearSystemStructureConverterInit:      0.000 (sys:      0.000
> wall:      0.000)
> QualityFunctionSearch...............:      0.000 (sys:      0.000
> wall:      0.000)
> TryCorrector........................:      0.000 (sys:      0.000
> wall:      0.000)
> Task1...............................:      0.000 (sys:      0.000
> wall:      0.000)
> Task2...............................:      0.000 (sys:      0.000
> wall:      0.000)
> Task3...............................:      0.000 (sys:      0.000
> wall:      0.000)
> Task4...............................:      0.000 (sys:      0.000
> wall:      0.000)
> Task5...............................:      0.000 (sys:      0.000
> wall:      0.000)
> Function Evaluations................:      0.013 (sys:      0.001
> wall:      0.013)
>   Objective function.................:      0.002 (sys:      0.000
> wall:      0.002)
>   Objective function gradient........:      0.004 (sys:      0.000
> wall:      0.004)
>   Equality constraints...............:      0.002 (sys:      0.000
> wall:      0.002)
>   Inequality constraints.............:      0.000 (sys:      0.000
> wall:      0.000)
>   Equality constraint Jacobian.......:      0.003 (sys:      0.000
> wall:      0.003)
>   Inequality constraint Jacobian.....:      0.000 (sys:      0.000
> wall:      0.000)
>   Lagrangian Hessian.................:      0.001 (sys:      0.000
> wall:      0.001)
>
> EXIT: Optimal Solution Found.
>
> Ipopt 3.10.1: Optimal Solution Found
>
> I am grateful for any help.
>
> Best regards,
> Riadh Omheni
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>



More information about the Ipopt mailing list