<div class="gmail_quote">On Wed, Sep 8, 2010 at 12:35 PM, Rishi Amrit <span dir="ltr"><<a href="mailto:amrit@wisc.edu">amrit@wisc.edu</a>></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'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>