<div>Dear Prof. Blaha,</div>
<div>&nbsp; I didn't get a chance to test running spin-up and down for almost one month because I have</div>
<div>been switching among different machines. Finally, I can settle down in an IBM p630&nbsp;with</div>
<div>4 processors. I modify runsp_lapw and run it. It runs without problems. And the up and dn</div>
<div>tasks don't interfere each other's speed (i.e., 100% parallel efficiency). I wonder if this means that parallelizing up and dn is useful.</div>
<div>&nbsp;</div>
<div>Chiung-Yuan<br>&nbsp;</div>
<div><span class="gmail_quote">On 8/18/05, <b class="gmail_sendername">Peter Blaha</b> &lt;<a href="mailto:pblaha@theochem.tuwien.ac.at">pblaha@theochem.tuwien.ac.at</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">It is not implemented, since I'm not convinced that it is a usefull option.<br><br>a) Usually even big magnetic systems require more than 1 k-point (maybe not?)
<br>b) On most dual processor machines I know you will not gain as much as<br>&nbsp;&nbsp;expected, because the memory bus is slow and the run-time will increase if<br>&nbsp;&nbsp;two lapw1 are running simultaneously.<br>&nbsp;&nbsp;Instead, I tend to use a parallel goto-lib which gives a very nice
<br>&nbsp;&nbsp;speedup (at least for dual Xeons).<br><br>Anyway, for a shared memory machine I think it is trivial to<br>implement. Test the following:<br><br>Change in runsp_lapw the sections lapw1: lapw1c: lapw2: lapw2c:<br>and add a &quot;background&quot;&nbsp;&nbsp;&amp;&nbsp;&nbsp;character and a&nbsp;&nbsp;&nbsp;&nbsp;&quot;wait&quot; line
<br><br>lapw1:<br>....<br>if ( &quot;$so&quot; == &quot;-so&quot; ) then<br>total_exec&nbsp;&nbsp;&nbsp;&nbsp;lapw1 $it0 -up $para $nohns &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==change<br>else<br>total_exec&nbsp;&nbsp;&nbsp;&nbsp;lapw1 $it0 -up $para $nohns $orb &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==change
<br>endif<br>if ($icycle &gt;= $in1new ) then<br>&nbsp;&nbsp; write_in1_lapw -dn -ql $qlimit &gt;&gt; $dayfile<br>&nbsp;&nbsp; if($status == 0 ) cp $file.in1new $file.in1<br>endif<br>if ( &quot;$so&quot; == &quot;-so&quot; ) then<br>total_exec&nbsp;&nbsp;&nbsp;&nbsp;lapw1 $it0 -dn $para $nohns &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==change
<br>else<br>total_exec&nbsp;&nbsp;&nbsp;&nbsp;lapw1 $it0 -dn $para $nohns $orb &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==change<br>endif<br>wait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==add<br>...<br><br>lapw2:<br>if ( &quot;$so&quot; == &quot;-so&quot; ) goto lapw2c
<br>testinput&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $file.in2 error_input<br>total_exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lapw2 -up $para &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==change<br>total_exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lapw2 -dn $para &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==change<br>wait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;==add
<br><br>And similar in lapw1c and lapw2c sections.<br><br>In addition I'd expect that you need to comment the&nbsp;&nbsp; testerror&nbsp;&nbsp; statements<br>of the total_exec aliases.<br>I think that should do it. Let me know if you are successfull and it is
<br>usefull.<br><br>&gt; I am running a spin-polarized job with only one k-point on a<br>&gt; 2-processor machine.<br>&gt; If I don't want to do fine grained parallelization, can I distribute<br>&gt; spin-up and down tasks into the 2 processors so that they can run
<br>&gt; simultaneously (for lapw1 and<br>&gt; lapw2)?<br>&gt;<br>&gt; Thanks for your attention,<br>&gt; Chiung-Yuan</blockquote></div>