<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>I just completed building without -enable_thread=multiple, the slow startup and<br>nap problem went away.<br><br>Regarding the slow start up, it may have something to do with my application.&nbsp; When<br>my application is run, it actually starts 4 other processes, licensing, recording, etc.&nbsp; I can<br>see each of these processes being run 1 after another.&nbsp; BTW, I am using processor<br>affinity, and that may help getting the situation worst.<br><br>tan<br><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 13px;"><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> Darius Buntinas &lt;buntinas@mcs.anl.gov&gt;<br><b><span
 style="font-weight: bold;">To:</span></b> mpich-discuss@mcs.anl.gov<br><b><span style="font-weight: bold;">Sent:</span></b> Tuesday, July 14, 2009 8:05:00 AM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [mpich-discuss] version 1.1 strange behavior : all processes become idle for extensive period<br></font><br>
<br>Can you attach a debugger to process 0 and see what it's doing during<br>this nap?&nbsp; Once the process 0 finishes the nap, does it send/receive the<br>messages to/from the other processes and things continue normally?<br><br>Thanks,<br>-d<br><br>On 07/13/2009 08:57 PM, chong tan wrote:<br>&gt; this is the sequence of MPI calls that lead to the 'nap' (all numbers<br>&gt; represent proc id per MPICH2) :<br>&gt;&nbsp; <br>&gt; 0 send to 1, recieved by 1<br>&gt; 0 send to 2, recieved by 2<br>&gt; 0 sent to 3, recv by 3<br>&gt; &lt;application activities, shm called &gt;<br>&gt; 1 blocking send to 0, send buffered<br>&gt; 1 calls blocking recieve from 0<br>&gt; 3 blocking send to 0, send buffered,<br>&gt; 3 calls blocking recieve from 0<br>&gt; 2 blocking send to 0, send buffered<br>&gt; 2 calls blocking recieve from 0<br>&gt; &lt;proc 0 execute some application activities&gt;<br>&gt; proc 0 become idle<br>&gt; &lt;nap time&gt;<br>&gt;&nbsp;
 <br>&gt;&nbsp; <br>&gt;&nbsp; <br>&gt; This is rather strange, it only happens on this particular test.&nbsp;  hope<br>&gt; this info help<br>&gt;&nbsp; <br>&gt; tan<br>&gt;&nbsp; <br>&gt;&nbsp; <br>&gt;&nbsp; <br>&gt;&nbsp; <br>&gt;&nbsp; <br>&gt; <br>&gt;&nbsp; <br>&gt; <br>&gt; ------------------------------------------------------------------------<br>&gt; *From:* Darius Buntinas &lt;<a ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a>&gt;<br>&gt; *To:* <a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a><br>&gt; *Sent:* Monday, July 13, 2009 11:47:38 AM<br>&gt; *Subject:* Re: [mpich-discuss] version 1.1 strange behavior : all<br>&gt; processes become idle for extensive period<br>&gt; <br>&gt; <br>&gt; Is there a simpler example of this that you can send us?&nbsp; If nothing<br>&gt; else, a binary would be ok.<br>&gt; <br>&gt; Does the
 program that takes the 1 minute "nap" use threads?&nbsp; If so, how<br>&gt; many threads does each process create?<br>&gt; <br>&gt; Can you find out what the processes (or threads if it's multithreaded)<br>&gt; are doing during this time?&nbsp; E.g., are they in an mpi call?&nbsp; Are they<br>&gt; blocking on a mutex?&nbsp; If so, can you tell us what line number it's<br>&gt; blocked on?<br>&gt; <br>&gt; Can you try this without shared memory by setting the environment<br>&gt; variable MPICH_NO_LOCAL to 1 and see if you get the same problem?<br>&gt;&nbsp;  MPICH_NO_LOCAL=1 mpiexec -n 4 ...<br>&gt; <br>&gt; Thanks,<br>&gt; -d<br>&gt; <br>&gt; <br>&gt; <br>&gt; On 07/13/2009 01:35 PM, chong tan wrote:<br>&gt;&gt; Sorry can't do that.&nbsp; The benchmark involves 2 things.&nbsp; One from my<br>&gt;&gt; customer which<br>&gt;&gt; I am not allowed to distribute.&nbsp; &nbsp; I may be able to get a limited<br>&gt;&gt; license of my product<br>&gt;&gt; for you
 to try, but I definately can not send source code.<br>&gt;&gt; <br>&gt;&gt; tan<br>&gt;&gt; <br>&gt;&gt;<br>&gt;&gt; ------------------------------------------------------------------------<br>&gt;&gt; *From:* Darius Buntinas &lt;<a ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a><br>&gt; &lt;mailto:<a ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a>&gt;&gt;<br>&gt;&gt; *To:* <a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a> &lt;mailto:<a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a>&gt;<br>&gt;&gt; *Sent:* Monday, July 13, 2009 10:54:50 AM<br>&gt;&gt; *Subject:* Re: [mpich-discuss] version 1.1 strange behavior : all<br>&gt;&gt; processes become idle for extensive period<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Can you send us the
 benchmark you're using?&nbsp; This will help us figure<br>&gt;&gt; out what's going on.<br>&gt;&gt;<br>&gt;&gt; Thanks,<br>&gt;&gt; -d<br>&gt;&gt;<br>&gt;&gt; On 07/13/2009 12:36 PM, chong tan wrote:<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; thanks darius,<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; When I did the comparison (or benchmarking), I have 2 identical source<br>&gt;&gt;&gt; trees.&nbsp; Everything<br>&gt;&gt;&gt; were recompiled group up and compiled/linked accordinglyto the version<br>&gt;&gt;&gt; of MPICH2<br>&gt;&gt;&gt; to be used.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I have many tests, this is the only one showing this behavior, and is<br>&gt;&gt;&gt; predictably repeatable.<br>&gt;&gt;&gt; most of my tests are showing comaptible performance and many do better<br>&gt;&gt;&gt; with 1.1.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; The 'weirdest' thing is the ~1 minute span where there is no activity on<br>&gt;&gt;&gt; the box at all, zipo<br>&gt;&gt;&gt; activity except 'top',
 with machine load at around 0.12.&nbsp; I don't know<br>&gt;&gt;&gt; how to explain this<br>&gt;&gt;&gt; 'behavior', and I am extremely curious if anyone can explain this.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I can't repeat this on AMD boxes as I don't have one that has only 32G<br>&gt;&gt;&gt; of memory.&nbsp; I can't<br>&gt;&gt;&gt; repeat this on Niagara box as thread multiple won't build.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; I will try to rebuild 1.1 without thread-multiple.&nbsp; Will keep you posted.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Meanwhile, if anyone has any speculations on this, please bring them up.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; thanks<br>&gt;&gt;&gt; tan<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; ------------------------------------------------------------------------<br>&gt;&gt;&gt; *From:* Darius Buntinas &lt;<a ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a><br>&gt; &lt;mailto:<a
 ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a>&gt;<br>&gt;&gt; &lt;mailto:<a ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a> &lt;mailto:<a ymailto="mailto:buntinas@mcs.anl.gov" href="mailto:buntinas@mcs.anl.gov">buntinas@mcs.anl.gov</a>&gt;&gt;&gt;<br>&gt;&gt;&gt; *To:* <a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a> &lt;mailto:<a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a>&gt;<br>&gt; &lt;mailto:<a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a> &lt;mailto:<a ymailto="mailto:mpich-discuss@mcs.anl.gov" href="mailto:mpich-discuss@mcs.anl.gov">mpich-discuss@mcs.anl.gov</a>&gt;&gt;<br>&gt;&gt;&gt; *Sent:* Monday, July 13, 2009 8:30:19 AM<br>&gt;&gt;&gt;
 *Subject:* Re: [mpich-discuss] version 1.1 strange behavior : all<br>&gt;&gt;&gt; processes become idle for extensive period<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Tan,<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Did you just re-link the applications, or did you recompile them?<br>&gt;&gt;&gt; Version 1.1 is most likely not binary compatible with 1.0.6, so you<br>&gt;&gt;&gt; really need to recompile the application.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Next, don't use the --enable-threads=multiple flag when configuring<br>&gt;&gt;&gt; mpich2.&nbsp; By default, mpich2 supports all thread levels and will select<br>&gt;&gt;&gt; the thread level at run time (depending on the parameters passed to<br>&gt;&gt;&gt; MPI_Init_thread).&nbsp; By allowing the thread level to be selected<br>&gt;&gt;&gt; automatically at run time, you'll avoid the overhead of thread safety<br>&gt;&gt;&gt; when it's not needed, allowing your non-threaded applications to run<br>&gt;&gt;
 faster.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Let us know if either of these fixes the problem, especially if just<br>&gt;&gt;&gt; removing the --enable-threads option fixes this.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Thanks,<br>&gt;&gt;&gt; -d<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; On 07/10/2009 06:19 PM, chong tan wrote:<br>&gt;&gt;&gt;&gt; I am seeing this funny situation which I did not see on 1.0.6 and<br>&gt;&gt;&gt;&gt; 1.0.8.&nbsp; Some background:<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; machine : INTEL 4Xcore 2<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; running mpiexec -n 4<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; machine has 32G of mem.<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; when my application runs,&nbsp; almost all memory are used.&nbsp; However, there<br>&gt;&gt;&gt;&gt; is no swapping.<br>&gt;&gt;&gt;&gt; I have exclusive use of the machine, so contention is not an issue.<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; issue #1 :&nbsp; processes take extra long to be
 initialized, compared to<br>&gt;&gt; 1.0.6<br>&gt;&gt;&gt;&gt; issue #2 : during the run, at time all of them will become idle at the<br>&gt;&gt;&gt;&gt; same time, for almost a<br>&gt;&gt;&gt;&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; minute.&nbsp; We never observed this with 1.0.6<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; The codes are the same, only linked with different versions of MPICH2.<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; MPICH2 was built with --enable-threads=multiple for 1.1.&nbsp; without for<br>&gt;&gt;&gt;&gt; 1.0.6 or 1.0.8<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; MPI calls are all in the main application thread.&nbsp; I used only 4 MPI<br>&gt;&gt;&gt;&gt; functions :<br>&gt;&gt;&gt;&gt; init(), Send(), Recv() and Barrier().<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; any suggestion ?<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; thanks<br>&gt;&gt;&gt;&gt;
 tan<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; <br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;<br>&gt; <br></div></div></div><br>

      </body></html>