<div class="gmail_quote">On Wed, Sep 8, 2010 at 12:35 PM, Rishi Amrit <span dir="ltr">&lt;<a href="mailto:amrit@wisc.edu">amrit@wisc.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi,<div><br></div><div>   I am using ADOLC to compute sparse jacobian and hessian for solving an optimization problem using IPOPT nlp solver. As required, I first create tapes and generate the sparsity patters using spase_jac and sparse_hess with repeat argument as 0. Then when IPOPT calls the ADOLC function to evaulate the jacobian and hessian at its iterates, I call sparse_jac and sparse_hess with repeat=1, reusing the sparsity pattern computed initialy. Once the optimization is completed, I free up the rind, cind, jacval and hessval variables as required and the function terminates. Now I&#39;m calling this function from octave. When I call the function again with different parameters, the above sequence repeats but what I see is that when sparse drivers are called with ipopt, the memory usage steeps up and hence evaluation time is higher, even though the problem dimensions are the same. I am not sure why this might be happening. Either some memory is not deallocating properly in each call or something. Any ideas on this would be highly appreciated.</div>

</blockquote><div><br></div><div>Addendum to my previous email. I compiled ADOLC with debugging enabled and ran my code with valgrind. Among the huge chunk of output, here is something that caught my attention (See below)</div>

<div>The number in front of operation 0 seems to keep on shooting high after every function call. I am not sure what this number means. </div><div><br></div><div>Thanks,</div><div><br></div><div>Rishi</div><div><br></div>

<div><br></div><div><div>ADOL-C warning: !!! Taylor information for tape 3 found that will be overwritten !!!</div><div><br></div><div><br></div><div>Tape contains:</div><div>operation   0:      1 time(s) - 102384 taylors written ( 102384.00 per operation)</div>

<div>operation   1:  10210 time(s) -  20420 taylors written (      2.00 per operation)</div><div>operation   2:      1 time(s) -      0 taylors written (      0.00 per operation)</div><div>operation   3:   8565 time(s) -  17130 taylors written (      2.00 per operation)</div>

<div>operation   5:   1797 time(s) -   3594 taylors written (      2.00 per operation)</div><div>operation   6:   7638 time(s) -  15276 taylors written (      2.00 per operation)</div><div>operation  10:      1 time(s) -      2 taylors written (      2.00 per operation)</div>

<div>operation  11:   8690 time(s) -  17380 taylors written (      2.00 per operation)</div><div>operation  12:    314 time(s) -    628 taylors written (      2.00 per operation)</div><div>operation  13:   2700 time(s) -   5400 taylors written (      2.00 per operation)</div>

<div>operation  15:   5695 time(s) -  11390 taylors written (      2.00 per operation)</div><div>operation  16:  11533 time(s) -  23066 taylors written (      2.00 per operation)</div><div>operation  32:      1 time(s) -      0 taylors written (      0.00 per operation)</div>

<div>operation  33:      1 time(s) -      0 taylors written (      0.00 per operation)</div><div>operation  34:      1 time(s) -      0 taylors written (      0.00 per operation)</div><div>operation  35:      2 time(s) -      0 taylors written (      0.00 per operation)</div>

<div>operation  39:      1 time(s) -      0 taylors written (      0.00 per operation)</div><div>operation  41:   2999 time(s) -   5998 taylors written (      2.00 per operation)</div><div>operation  44:   6004 time(s) -  12008 taylors written (      2.00 per operation)</div>

<div>operation  45:   1351 time(s) -   2702 taylors written (      2.00 per operation)</div><div>operation  54:   4959 time(s) -      0 taylors written (      0.00 per operation)</div></div><div><br></div></div>