[ADOL-C] performance question
Antoine De Blois
antoine.deblois at aero.bombardier.com
Fri Sep 27 12:16:48 EDT 2013
Thank you for the valuable information. I changed my code accordingly and is now much faster.
De : adol-c-bounces at list.coin-or.org [mailto:adol-c-bounces at list.coin-or.org] De la part de Kshitij Kulshreshtha
Envoyé : Monday, September 23, 2013 12:06 PM
À : adol-c at list.coin-or.org
Objet : Re: [ADOL-C] performance question
the timing of your last query was a bit unfortunate, as both the main developers of ADOL-C were offline due to travel. As far as compilation errors are concerned please send us the exact error messages spit out by the compiler along with some small code to reproduce the problem. As far as computational cost is concerned, it depends mainly on the function evaluation code that you provide to ADOL-C between calls to trace_on() and trace_off(). The number of variables doesn't factor in explicitly. The basic factor is the number of operations done with active variables. Memory allocation plays only a small role except if you need to retrace.
For the sparse_jac() call it does save some time if the sparse structure is preallocated, especially if you call it many times with similar structure. If the pattern remains the same always you should indeed store the pattern and the seed matrix and call only forward / reverse followed by recovery.
For further information about sparse computations and their efficiency please look at the publications of Andrea Walther and Assefaw Gebremedhin.
Antoine De Blois <antoine.deblois at aero.bombardier.com> wrote:
>I have been using ADOL-C for the past months and I obtain expected
>jacobian results, validated by finite difference.
>I am looking to improve the computational cost of the method. I had
>posted a question a few weeks ago regarding outputs from my profiler,
>but unfortunately I did not get any answer :(. I will try to ask it
>again, but in more general terms:
>· Generally speaking, what are the determining factors that
>influence the computational cost? (Number of independent variables,
>number of active variables, memory allocation, etc.)
>· Is it faster if I pre-allocate the sparsed storage (rows,
>cols and values) to a known maximum number of non-zeros elements?
>· I use the driver sparse_jac but my sparsity structure remains
>more or less the same for the bulk of my domain. Should I rather
>generate the jacobian pattern (jac_pat), followed by the seed matrix
>(generate_seed_jac) and then the call to either forward or reverse? Is
>there any gain here? In other words, is the computation of the jacobian
>pattern a big part of the computational cost?
>Any comment on improving my code performance is welcome!
>Thank you for your time and efforts,
>Specialiste ingenierie, MDO lead / Engineering Specialist, MDO lead
>Aéronautique / Aerospace
>T 514-855-5001, x 50862
>antoine.deblois at aero.bombardier.com<mailto:antoine.deblois at aero.bombard
>2351 Blvd Alfred-Nobel
>CONFIDENTIALITY NOTICE - This communication may contain privileged or
>If you are not the intended recipient or received this communication by
>error, please notify the sender and delete the message without copying
>ADOL-C mailing list
>ADOL-C at list.coin-or.org
Dr. Kshitij Kulshreshtha
Scribbled on an Android Tablet
ADOL-C mailing list
ADOL-C at list.coin-or.org
More information about the ADOL-C