Hi Stefan -<br><br>Thank you for your suggestions. I have completed a series of verification tests for my derivatives using finite differences, and I am sure they are correct in the serial version. The parallel version&#39;s derivatives are very similar (relative differences of components on the order of 1e-6) if not exact to output precision.<br>
<br>I have run valgrind on a previous version the parallel version of the code as part of its debugging, and it had no memory leaks, bad pointers, etc. I haven&#39;t run Valgrind on the new version, but I will do so to ensure I don&#39;t have any bad pointers hanging around.<br>
<br>I will also try turning up the output level on Ipopt to see if the additional detail gives a hint as to the discrepancy, which will hopefully clear up the mystery.<br><br>Thanks again.<br><br>- Seth<br><br><br><div class="gmail_quote">
On Fri, Sep 14, 2012 at 10:01 AM, Stefan Vigerske <span dir="ltr">&lt;<a href="mailto:stefan@math.hu-berlin.de" target="_blank">stefan@math.hu-berlin.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im HOEnZb">Hi,<br>
<br>
there is a derivative checker in Ipopt that you might want to try out as<br>
well.<br>
Of course it is possible that small differences lead to forcing Ipopt<br>
into restoration mode, but I think it&#39;s unlikely.<br>
You may want to try to run the parallel code also under a tool like<br>
valgrind.<br>
Finally, if you set the print level of Ipopt to a high value, you may be<br>
possible to see from which point on Ipopt is doing different thing and<br>
why it does that.<br>
<br>
Stefan<br>
<br>
On 09/12/2012 12:45 AM, Seth Watts wrote:<br>
</div><div class="HOEnZb"><div class="h5">&gt; I do not understand based on the documentation exactly what the restoration<br>
&gt; mode is, when Ipopt enters it, and how it exits it.<br>
&gt;<br>
&gt; Based on what I have read, Ipopt enters restoration mode when it determines<br>
&gt; it is in a non-feasible region, and uses a modified algorithm to attempt to<br>
&gt; return to a feasible region. Can anyone clarify matters further?<br>
&gt;<br>
&gt; I have two versions of my program, one which evaluates NLP functions in<br>
&gt; serial, and one which evaluates them in parallel. Since modifying my<br>
&gt; parallel version, now Ipopt enters restoration mode every time, while the<br>
&gt; serial version never does. Both are started with random initial parameters<br>
&gt; which in general do not result in a feasible starting point, but the serial<br>
&gt; version is always able to drive the system to a feasible state while<br>
&gt; reducing the cost function, all without  entering restoration mode (at<br>
&gt; least, no &quot;r&quot; is printed in the standard output).<br>
&gt;<br>
&gt; Even when fixing the seed of the random number generator to compare serial<br>
&gt; and parallel versions directly, the serial does not enter restoration mode<br>
&gt; while the parallel version does. Based on some some of the restoration mode<br>
&gt; options in the documentation, I think it is possible this may occur when<br>
&gt; the derivatives of the constraints are not correct. Comparing my serial and<br>
&gt; parallel results, I do have some small discrepancies, which I believe are<br>
&gt; due to parallel evaluation of the derivatives and the non-commutativity of<br>
&gt; floating point operations.<br>
&gt;<br>
&gt; Is it possible that small changes in the derivatives could force Ipopt into<br>
&gt; restoration mode? If so, what options would you recommend to reduce this<br>
&gt; behavior?<br>
&gt;<br>
&gt; Thank you,<br>
&gt; Seth Watts<br>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; Ipopt mailing list<br>
&gt; <a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
&gt; <a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
&gt;<br>
<br>
_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
</div></div></blockquote></div><br>