[Ipopt] IPOPT takes very long before the first iteration
Andreas Waechter
andreasw at watson.ibm.com
Tue Sep 29 19:14:34 EDT 2009
Hi Uwe,
The derivative checker is not run by default, so this cannot be the
reason.
What happens before the first iteration is that Ipopt calls the linear
solver (your output tells me that it is MA27) to compute initial values
for the multiplers. here, it first does a "symbolic factorization" (an
initialization step that is done once at the beginning but not in further
iterations), and depending on your matrix structure, this can take a long
time. Similarly, the factorization itself can take time. (You could
switch off the initialization of the multipliers by setting
constr_mult_init_max to 0, but that would just postpone the problem to the
point where Ipopt has to compute the search direction in the first
iteration.)
To find out what the specific step is that runs so slow you can set the
option
print_timing_statistics yes
This should show you in more detail, which part of the run takes most of
the time.
In order to fix your problem, you probably want to consider experimenting
with a different linear solver (there a bunch of options [see
documentation], and Olaf already suggest to use Pardiso, which seems to
work very efficiently). But of course you need to compile Ipopt with such
a linear solver.
Hope this helps,
Andreas
On Tue, 29 Sep 2009, Uwe Nowak wrote:
> Hello!
>
> Thank you for your guess. I already deactivated the derivative check.
> The list of user options is
>
> Name Value used
> acceptable_tol = 1 yes
> file_print_level = 6 yes
> hessian_approximation = limited-memory yes
> max_iter = 1000 yes
> max_soc = 0 yes
> nlp_scaling_method = none yes
> output_file = ipopt.out yes
> print_level = 5 yes
> print_user_options = yes yes
> tol = 1 yes
> watchdog_shortened_iter_trigger = 0 yes
>
> Thank you,
> Uwe
>
>
> Sebastian Walter schrieb:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> My speculative guess: It's the derivative checker of IPOPT that is the resource hog.
>> Depending on the dimension of your problem, the computation of finite differences approximations of gradient and jacobian
>> can take much longer than the evaluation your implemented gradient and jacobian function.
>>
>> The derivative check is performed once before the iteration starts.
>>
>>
>> regards,
>> Sebastian
>>
>>
>>
>>
>> Uwe Nowak schrieb:
>>> Hello!
>>>
>>> I am using IPOPT and really like the solver. But with larger problem
>>> instances the solver takes very long time before the first iteration.
>>>
>>> Below there is the output. After the first line ("This is IPOPT...") the
>>> solver takes (estimated) 350 CPU seconds.
>>>
>>> What does IPOPT do there? Is there a way to speed this part of IPOPT up?
>>> The Iterations itself are fast enough.
>>>
>>> I am using IPOPT to successively solve nonlinear problems that have
>>> similar, but not equal structure. So I usually expect only few
>>> iterations to be
>>> necessary.
>>>
>>> Thank you,
>>> Uwe Nowak
>>>
>>>
>>> ------------------------- OUTPUT ------------------------------
>>>
>>>
>>> This is Ipopt version 3.7.0, running with linear solver ma27.
>>>
>>> Number of nonzeros in equality constraint Jacobian...: 196
>>> Number of nonzeros in inequality constraint Jacobian.: 13624
>>> Number of nonzeros in Lagrangian Hessian.............: 0
>>>
>>> Total number of variables............................: 180
>>> variables with only lower bounds: 0
>>> variables with lower and upper bounds: 0
>>> variables with only upper bounds: 0
>>> Total number of equality constraints.................: 49
>>> Total number of inequality constraints...............: 1703
>>> inequality constraints with only lower bounds: 1703
>>> inequality constraints with lower and upper bounds: 0
>>> inequality constraints with only upper bounds: 0
>>>
>>> [...]
>>>
>>> Number of Iterations....: 15
>>>
>>> [...]
>>>
>>> Number of objective function evaluations = 18
>>> Number of objective gradient evaluations = 16
>>> Number of equality constraint evaluations = 18
>>> Number of inequality constraint evaluations = 18
>>> Number of equality constraint Jacobian evaluations = 16
>>> Number of inequality constraint Jacobian evaluations = 16
>>> Number of Lagrangian Hessian evaluations = 0
>>> Total CPU secs in IPOPT (w/o function evaluations) = 392.561
>>> Total CPU secs in NLP function evaluations = 8.939
>>>
>>> EXIT: Optimal Solution Found.
>>>
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/ipopt
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v2.0.4-svn0 (GNU/Linux)
>> Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
>>
>> iD8DBQFKwe4q9PBA5IG0h0ARAqbKAJ0TLmQ338eEUGQCBH78mmRtRypOxgCfaKhl
>> Om47RZaa6iFbgE7j9RqDlsg=
>> =CvjV
>> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>
More information about the Ipopt
mailing list