[Ipopt] IPOPT with AMPL VS IPOPT with native C++

Stefan Vigerske stefan at math.hu-berlin.de
Fri Jul 12 14:31:15 EDT 2013


Hi,

I may add that when solving lot of small instances, as you mentioned, 
you probably have more overhead with AMPL than with C++, since the 
former includes the time to compile your model with AMPL, communication 
with the solver via (small) files, and starting up the Ipopt executable.
However, the initial work to get started should be much less with AMPL 
than with C++, so you could find out empirically how much overhead is 
actually generated.

Next to CasADi (which I believe is great), also ADOL-C and CppAD come 
with examples that show how to use automatic differentiation when 
interfacing Ipopt via C++.

Stefan

On 07/12/2013 08:12 PM, Nicolas Derhy wrote:
> Thank your for your answer.
> Then, I think I will use AMPL in my case !
>
>
> On Fri, Jul 12, 2013 at 8:07 PM, Joel Andersson <
> joel.andersson at esat.kuleuven.be> wrote:
>
>> Dear Nicolas,
>>
>> The main benefit with using AMPL or other modeling languages is the exact
>> and (typically) very efficient calculation of first and second order
>> derivative information. Anyway, even if you have some other efficient way
>> of calculating derivatives, changes are that it won't matter much for the
>> speed. The reason for this is that for large-scale problems, most time is
>> typically spent in the linear solver and not in the derivative
>> calculations. This depends on how sparse the problem is, though.
>>
>> Greetings!
>> Joel
>>
>> P.S.: You might also want to have look at CasADi (www.casadi.org). Like
>> AMPL, it is also able to calculate derivatives very efficiently.
>>
>>
>>
>> 2013/7/12 Nicolas Derhy <nicolas.derhy at gmail.com>
>>
>>>   Hi everybody,
>>>
>>> I did not find information in the documentation regarding the IPOPT
>>> performance.
>>> I have a lot of small instances to solve and I would prefer to use AMPL
>>> because I won't have to write new C++ code.
>>>
>>> However I do not have any idea of the perfomance gap between these two
>>> approaches. I do not know if AMPL calculates jacobian, hessian,... with
>>> efficiency and how AMPL and IPOPT communicates (via file, memory ?).
>>>
>>> Do you have any advice from you IPOPT experience ?
>>>
>>> Best regards,
>>>
>>> Nicolas
>>>
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/ipopt
>>>
>>>
>>
>>
>> --
>> Joel Andersson, PhD Student
>> Electrical Engineering Department (ESAT-SCD), Room 05.11,
>> K.U.Leuven, Kasteelpark Arenberg 10 - bus 2446, 3001 Heverlee, Belgium
>> Phone: +32-16-321819
>> Mobile: +32-486-672874 (Belgium) / +34-63-4408800 (Spain) / +46-707-360512(Sweden)
>>
>> Private address: Weidestraat 5, 3000 Leuven, Belgium
>>
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>



More information about the Ipopt mailing list