<table cellspacing='0' cellpadding='0' border='0' background='none' style='font-family:arial;font-size:10pt;color:#000000;background-color:transparent;width:100%;'><tr><td valign='top' style='font: inherit;'><DIV id=yiv1408584783>
<P>Eric,</P>
<P>I know you are referring me as the one not sharing.&nbsp; I am no expert on MP, but someone who have done his homeworks.&nbsp; I like to share, but the NDAs and company policy say no.&nbsp;&nbsp;&nbsp;</P>
<P>You have good points and did some good experiements.&nbsp; That is what I expect most MP designers and users to have done at the first place.</P>
<P>There answers to the original question are simple :</P>
<P>- on 2Xquad, you have one memory system, while on cluster, you have 8 memory systems, the total bandwidth favor the cluster considerably.</P>
<P>- on cluster, there is not way for the process to be context switched, while that can happen on 2XQuad.&nbsp; When this happens, live is bad.</P>
<P>- The only thing that favor the SMP is the cost of communication and shared memory.</P>
<P>&nbsp;</P>
<P>There are more factors, Thea rt is balancing them to your favor.&nbsp; In a way, the X86 Quad are not designed to let us load it up with fat adnd heavy processes.&nbsp; That is what I have been saying all along: know your HW first.&nbsp; Your MP solution should come second.&nbsp; Whatever utilities you can find will help put the solution together.</P>
<P>&nbsp;</P>
<P>So, the problem is not MPI in this case.</P>
<P>&nbsp;</P>
<P>tan</P>
<P><BR><BR>--- On <B>Mon, 7/14/08, Eric A. Borisch <I>&lt;eborisch@ieee.org&gt;</I></B> wrote:<BR></P>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(16,16,255) 2px solid">From: Eric A. Borisch &lt;eborisch@ieee.org&gt;<BR>Subject: Re: [mpich-discuss] Why is my quad core slower than cluster<BR>To: mpich-discuss@mcs.anl.gov<BR>Date: Monday, July 14, 2008, 9:36 PM<BR><BR>
<DIV id=yiv1302378445><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">Gus,</FONT></SPAN> 
<DIV><BR></DIV>
<DIV>Information sharing is truly the point of the mailing list. Useful messages should ask questions or provide answers! :)</DIV>
<DIV><BR></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">Someone mentioned STREAM benchmarks (memory BW benchmarks) a little while back. I did these when our new system came in a while ago, so I dug them back out.</FONT></SPAN> 
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">This (STREAM) can be compiled to use MPI, but it is only a synchronization tool, the benchmark is still a memory bus test (each task is trying to run through memory, but this is not an MPI communication test.)</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">My results on a dual&nbsp;E5472 machine (Two Quad-core 3Ghz packages; 1600MHz bus; 8 total cores)</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">Results (each set are [1..8] processes in order), double-precision array size =&nbsp;20,000,000, run through 10 times.</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">Function &nbsp; &nbsp; Rate (MB/s) &nbsp;Avg time &nbsp; Min time &nbsp;Max time</FONT></SPAN></DIV>
<DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 2962.6937 &nbsp; &nbsp; &nbsp;0.1081 &nbsp; &nbsp; &nbsp;0.1080 &nbsp; &nbsp; &nbsp;0.1081</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 5685.3008 &nbsp; &nbsp; &nbsp;0.1126 &nbsp; &nbsp; &nbsp;0.1126 &nbsp; &nbsp; &nbsp;0.1128</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 5484.6846 &nbsp; &nbsp; &nbsp;0.1751 &nbsp; &nbsp; &nbsp;0.1750 &nbsp; &nbsp; &nbsp;0.1751</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 7085.7959 &nbsp; &nbsp; &nbsp;0.1809 &nbsp; &nbsp; &nbsp;0.1806 &nbsp; &nbsp; &nbsp;0.1817</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 5981.6033 &nbsp; &nbsp; &nbsp;0.2676 &nbsp; &nbsp; &nbsp;0.2675 &nbsp; &nbsp; &nbsp;0.2676</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 7071.2490 &nbsp; &nbsp; &nbsp;0.2718 &nbsp; &nbsp; &nbsp;0.2715 &nbsp; &nbsp; &nbsp;0.2722</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 6537.4934 &nbsp; &nbsp; &nbsp;0.3427 &nbsp; &nbsp; &nbsp;0.3426 &nbsp; &nbsp; &nbsp;0.3428</DIV>
<DIV>Copy: &nbsp; &nbsp; &nbsp; 7423.4545 &nbsp; &nbsp; &nbsp;0.3451 &nbsp; &nbsp; &nbsp;0.3449 &nbsp; &nbsp; &nbsp;0.3455</DIV>
<DIV><BR></DIV></DIV></DIV>
<DIV>
<DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;3011.8445 &nbsp; &nbsp; &nbsp;0.1063 &nbsp; &nbsp; &nbsp;0.1062 &nbsp; &nbsp; &nbsp;0.1063</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;5675.8162 &nbsp; &nbsp; &nbsp;0.1128 &nbsp; &nbsp; &nbsp;0.1128 &nbsp; &nbsp; &nbsp;0.1129</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;5474.8854 &nbsp; &nbsp; &nbsp;0.1754 &nbsp; &nbsp; &nbsp;0.1753 &nbsp; &nbsp; &nbsp;0.1754</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;7068.6204 &nbsp; &nbsp; &nbsp;0.1814 &nbsp; &nbsp; &nbsp;0.1811 &nbsp; &nbsp; &nbsp;0.1819</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;5974.6112 &nbsp; &nbsp; &nbsp;0.2679 &nbsp; &nbsp; &nbsp;0.2678 &nbsp; &nbsp; &nbsp;0.2680</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;7063.8307 &nbsp; &nbsp; &nbsp;0.2721 &nbsp; &nbsp; &nbsp;0.2718 &nbsp; &nbsp; &nbsp;0.2725</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;6533.4473 &nbsp; &nbsp; &nbsp;0.3430 &nbsp; &nbsp; &nbsp;0.3429 &nbsp; &nbsp; &nbsp;0.3431</DIV>
<DIV>Scale: &nbsp; &nbsp; &nbsp;7418.6128 &nbsp; &nbsp; &nbsp;0.3453 &nbsp; &nbsp; &nbsp;0.3451 &nbsp; &nbsp; &nbsp;0.3456</DIV></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;3184.3129 &nbsp; &nbsp; &nbsp;0.1508 &nbsp; &nbsp; &nbsp;0.1507 &nbsp; &nbsp; &nbsp;0.1508</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;5892.1781 &nbsp; &nbsp; &nbsp;0.1631 &nbsp; &nbsp; &nbsp;0.1629 &nbsp; &nbsp; &nbsp;0.1633</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;5588.0229 &nbsp; &nbsp; &nbsp;0.2577 &nbsp; &nbsp; &nbsp;0.2577 &nbsp; &nbsp; &nbsp;0.2578</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;7275.0745 &nbsp; &nbsp; &nbsp;0.2642 &nbsp; &nbsp; &nbsp;0.2639 &nbsp; &nbsp; &nbsp;0.2646</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;6175.7646 &nbsp; &nbsp; &nbsp;0.3887 &nbsp; &nbsp; &nbsp;0.3886 &nbsp; &nbsp; &nbsp;0.3889</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;7262.7112 &nbsp; &nbsp; &nbsp;0.3970 &nbsp; &nbsp; &nbsp;0.3965 &nbsp; &nbsp; &nbsp;0.3976</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;6687.7658 &nbsp; &nbsp; &nbsp;0.5025 &nbsp; &nbsp; &nbsp;0.5024 &nbsp; &nbsp; &nbsp;0.5026</DIV>
<DIV>Add: &nbsp; &nbsp; &nbsp; &nbsp;7599.2516 &nbsp; &nbsp; &nbsp;0.5057 &nbsp; &nbsp; &nbsp;0.5053 &nbsp; &nbsp; &nbsp;0.5062</DIV></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV>
<DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;3224.7856 &nbsp; &nbsp; &nbsp;0.1489 &nbsp; &nbsp; &nbsp;0.1488 &nbsp; &nbsp; &nbsp;0.1489</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;6021.2613 &nbsp; &nbsp; &nbsp;0.1596 &nbsp; &nbsp; &nbsp;0.1594 &nbsp; &nbsp; &nbsp;0.1598</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;5609.9260 &nbsp; &nbsp; &nbsp;0.2567 &nbsp; &nbsp; &nbsp;0.2567 &nbsp; &nbsp; &nbsp;0.2568</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;7293.2790 &nbsp; &nbsp; &nbsp;0.2637 &nbsp; &nbsp; &nbsp;0.2633 &nbsp; &nbsp; &nbsp;0.2641</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;6185.4376 &nbsp; &nbsp; &nbsp;0.3881 &nbsp; &nbsp; &nbsp;0.3880 &nbsp; &nbsp; &nbsp;0.3881</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;7279.1231 &nbsp; &nbsp; &nbsp;0.3958 &nbsp; &nbsp; &nbsp;0.3957 &nbsp; &nbsp; &nbsp;0.3961</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;6691.8560 &nbsp; &nbsp; &nbsp;0.5022 &nbsp; &nbsp; &nbsp;0.5021 &nbsp; &nbsp; &nbsp;0.5022</DIV>
<DIV>Triad: &nbsp; &nbsp; &nbsp;7604.1238 &nbsp; &nbsp; &nbsp;0.5052 &nbsp; &nbsp; &nbsp;0.5050 &nbsp; &nbsp; &nbsp;0.5057</DIV></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV>These work out to (~):</DIV>
<DIV>1x</DIV>
<DIV>1.9x</DIV>
<DIV>1.8x</DIV>
<DIV>2.3x</DIV>
<DIV>1.9x</DIV>
<DIV>2.2x</DIV>
<DIV>2.1x</DIV>
<DIV>2.4x</DIV>
<DIV>&nbsp;</DIV>
<DIV>for [1..8] cores.</DIV>
<DIV><BR></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">As you can see, it doesn't take eight cores to saturate the bus, even with a 1600MHz bus. Four of the eight cores running does this trick.</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">With all that said, there are still advantages to be had with the multicore chipsets, but only if you're not blowing full tilt through memory. If it can fit the problem, do more inside a loop rather than running multiple loops over the same memory.&nbsp;</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">For reference, here's what using the&nbsp;osu_mbw_mr test (from MVAPICH2 1.0.2; I also have a cluster running nearby :) compiled on MPICH2 (1.0.7rc1 with nemesis provides this performance from one/two/four pairs (2/4/8 processes) of producer/consumers:</FONT></SPAN></DIV>
<DIV><BR></DIV></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">
<DIV># OSU MPI Multi BW / Message Rate Test (Version 1.0)</DIV>
<DIV># [ pairs: 1 ] [ window size: 64 ]</DIV>
<DIV><BR></DIV>
<DIV># &nbsp;Size &nbsp; &nbsp;MB/sec &nbsp; &nbsp;Messages/sec</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp;1.08 &nbsp; 1076540.83</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp;2.14 &nbsp; 1068102.24</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;4 &nbsp; &nbsp; &nbsp;3.99 &nbsp; &nbsp;997382.24</DIV>
<DIV>&nbsp;&nbsp; &nbsp; &nbsp;8 &nbsp; &nbsp; &nbsp;7.97 &nbsp; &nbsp;996419.66</DIV>
<DIV>&nbsp;&nbsp; &nbsp; 16 &nbsp; &nbsp; 15.95 &nbsp; &nbsp;996567.63</DIV>
<DIV>&nbsp;&nbsp; &nbsp; 32 &nbsp; &nbsp; 31.67 &nbsp; &nbsp;989660.29</DIV>
<DIV>&nbsp;&nbsp; &nbsp; 64 &nbsp; &nbsp; 62.73 &nbsp; &nbsp;980084.91</DIV>
<DIV>&nbsp;&nbsp; &nbsp;128 &nbsp; &nbsp;124.12 &nbsp; &nbsp;969676.18</DIV>
<DIV>&nbsp;&nbsp; &nbsp;256 &nbsp; &nbsp;243.59 &nbsp; &nbsp;951527.62</DIV>
<DIV>&nbsp;&nbsp; &nbsp;512 &nbsp; &nbsp;445.52 &nbsp; &nbsp;870159.34</DIV>
<DIV>&nbsp;&nbsp; 1024 &nbsp; &nbsp;810.28 &nbsp; &nbsp;791284.80</DIV>
<DIV>&nbsp;&nbsp; 2048 &nbsp; 1357.25 &nbsp; &nbsp;662721.78</DIV>
<DIV>&nbsp;&nbsp; 4096 &nbsp; 1935.08 &nbsp; &nbsp;472431.28</DIV>
<DIV>&nbsp;&nbsp; 8192 &nbsp; 2454.29 &nbsp; &nbsp;299596.49</DIV>
<DIV>&nbsp;&nbsp;16384 &nbsp; 2717.61 &nbsp; &nbsp;165869.84</DIV>
<DIV>&nbsp;&nbsp;32768 &nbsp; 2900.23 &nbsp; &nbsp; 88507.85</DIV>
<DIV>&nbsp;&nbsp;65536 &nbsp; 2279.71 &nbsp; &nbsp; 34785.63</DIV>
<DIV>&nbsp;131072 &nbsp; 2540.51 &nbsp; &nbsp; 19382.53</DIV>
<DIV>&nbsp;262144 &nbsp; 1335.16 &nbsp; &nbsp; &nbsp;5093.21</DIV>
<DIV>&nbsp;524288 &nbsp; 1364.05 &nbsp; &nbsp; &nbsp;2601.72</DIV>
<DIV>1048576 &nbsp; 1378.39 &nbsp; &nbsp; &nbsp;1314.53</DIV>
<DIV>2097152 &nbsp; 1380.78 &nbsp; &nbsp; &nbsp; 658.41</DIV>
<DIV>4194304 &nbsp; 1343.48 &nbsp; &nbsp; &nbsp; 320.31</DIV>
<DIV><BR></DIV></FONT></SPAN></DIV>
<DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"># OSU MPI Multi BW / Message Rate Test (Version 1.0)</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"># [ pairs: 2 ] [ window size: 64 ]</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"># &nbsp;Size &nbsp; &nbsp;MB/sec &nbsp; &nbsp;Messages/sec</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp;2.15 &nbsp; 2150580.48</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp;4.22 &nbsp; 2109761.12</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;4 &nbsp; &nbsp; &nbsp;7.84 &nbsp; 1960742.53</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;8 &nbsp; &nbsp; 15.80 &nbsp; 1974733.92</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; 16 &nbsp; &nbsp; 31.38 &nbsp; 1961100.64</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; 32 &nbsp; &nbsp; 62.32 &nbsp; 1947654.32</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; 64 &nbsp; &nbsp;123.39 &nbsp; 1928000.11</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp;128 &nbsp; &nbsp;243.19 &nbsp; 1899957.22</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp;256 &nbsp; &nbsp;475.32 &nbsp; 1856721.12</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp;512 &nbsp; &nbsp;856.90 &nbsp; 1673642.10</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 1024 &nbsp; 1513.19 &nbsp; 1477721.26</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 2048 &nbsp; 2312.91 &nbsp; 1129351.07</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 4096 &nbsp; 2891.21 &nbsp; &nbsp;705861.12</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 8192 &nbsp; 3267.49 &nbsp; &nbsp;398863.98</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp;16384 &nbsp; 3400.64 &nbsp; &nbsp;207558.54</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp;32768 &nbsp; 3519.74 &nbsp; &nbsp;107413.93</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp;65536 &nbsp; 3141.80 &nbsp; &nbsp; 47940.04</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;131072 &nbsp; 3368.65 &nbsp; &nbsp; 25700.76</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;262144 &nbsp; 2211.53 &nbsp; &nbsp; &nbsp;8436.31</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;524288 &nbsp; 2264.90 &nbsp; &nbsp; &nbsp;4319.95</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">1048576 &nbsp; 2282.69 &nbsp; &nbsp; &nbsp;2176.94</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">2097152 &nbsp; 2250.72 &nbsp; &nbsp; &nbsp;1073.23</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">4194304 &nbsp; 2087.00 &nbsp; &nbsp; &nbsp; 497.58</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN></DIV></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">
<DIV>
<DIV>
<DIV><FONT class=Apple-style-span face="arial, sans-serif"># OSU MPI Multi BW / Message Rate Test (Version 1.0)</FONT></DIV>
<DIV><FONT class=Apple-style-span face="arial, sans-serif"># [ pairs: 4 ] [ window size: 64 ]</FONT></DIV>
<DIV><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></DIV>
<DIV><FONT class=Apple-style-span face="arial, sans-serif"># &nbsp;Size &nbsp; &nbsp;MB/sec &nbsp; &nbsp;Messages/sec</FONT></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;1 &nbsp; &nbsp; &nbsp;3.65 &nbsp; 3651934.64</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp;8.16 &nbsp; 4080341.34</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;4 &nbsp; &nbsp; 15.66 &nbsp; 3914908.02</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; &nbsp;8 &nbsp; &nbsp; 31.32 &nbsp; 3915621.85</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; 16 &nbsp; &nbsp; 62.67 &nbsp; 3916764.51</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; 32 &nbsp; &nbsp;124.37 &nbsp; 3886426.18</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp; 64 &nbsp; &nbsp;246.38 &nbsp; 3849640.84</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp;128 &nbsp; &nbsp;486.39 &nbsp; 3799914.44</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp;256 &nbsp; &nbsp;942.40 &nbsp; 3681232.25</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; &nbsp;512 &nbsp; 1664.21 &nbsp; 3250414.19</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 1024 &nbsp; 2756.50 &nbsp; 2691891.86</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 2048 &nbsp; 3829.45 &nbsp; 1869848.54</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 4096 &nbsp; 4465.25 &nbsp; 1090148.56</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp; 8192 &nbsp; 4777.45 &nbsp; &nbsp;583184.51</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp;16384 &nbsp; 4822.75 &nbsp; &nbsp;294357.30</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp;32768 &nbsp; 4829.77 &nbsp; &nbsp;147392.80</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;&nbsp;65536 &nbsp; 4556.93 &nbsp; &nbsp; 69533.18</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;131072 &nbsp; 4789.32 &nbsp; &nbsp; 36539.60</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;262144 &nbsp; 3631.68 &nbsp; &nbsp; 13853.75</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">&nbsp;524288 &nbsp; 3679.31 &nbsp; &nbsp; &nbsp;7017.72</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">1048576 &nbsp; 3553.61 &nbsp; &nbsp; &nbsp;3388.99</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">2097152 &nbsp; 3113.12 &nbsp; &nbsp; &nbsp;1484.45</FONT></SPAN></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">4194304 &nbsp; 2452.69 &nbsp; &nbsp; &nbsp; 584.77</FONT></SPAN></DIV></DIV></DIV>
<DIV><BR></DIV>
<DIV>So from a messaging standpoint, you can see that you squeeze more data through with more processes; I'd guess that this is because there's processing to be done within MPI to move the data, and a lot of the bookkeeping steps probably cache well (updating the same status structure on a communication multiple times; perhaps reusing the structure for subsequent transfers and finding it still in cache) so the performance scaling is not completely FSB bound.</DIV>
<DIV><BR></DIV>
<DIV>I'm sure there's plenty of additional things that could be done here to test different CPU to process layouts, etc, but in testing my own real-world code, I've found that, unfortunately, "it depends." I have some code that nearly scales linearly (multiple computationally expensive operations inside the innermost loop) and some that scales like the STREAM results above ("add one to the next 20 million points") ...</DIV>
<DIV><BR></DIV>
<DIV>As always, your mileage may vary. If your speedup looks like the STREAM numbers above, you're likely memory bound. Try to reformulate your problem to go through memory slower but with more done each pass, or invest in a cluster. At some point -- for some problems -- you can't beat more memory busses!</DIV></FONT></SPAN></DIV>
<DIV><BR></DIV>
<DIV>Cheers,</DIV>
<DIV>&nbsp;Eric Borisch</DIV>
<DIV><BR></DIV>
<DIV>--</DIV>
<DIV>&nbsp;<A href="mailto:borisch.eric@mayo.edu" target=_blank rel=nofollow>borisch.eric@mayo.edu</A></DIV>
<DIV>&nbsp;MRI Research</DIV>
<DIV>&nbsp;Mayo Clinic</DIV>
<DIV><BR></DIV>
<DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">On Mon, Jul 14, 2008 at 9:48 PM, Gus Correa &lt;<A href="mailto:gus@ldeo.columbia.edu" target=_blank rel=nofollow>gus@ldeo.columbia.edu</A>&gt; wrote:</FONT></SPAN></DIV>
<DIV class=gmail_quote>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">Hello Sami and list<BR><BR>Oh, well, as you see, an expert who claims to know the answers to these problems<BR>seems not to be willing to share these answers with less knowledgeable MPI users like us.<BR>So, maybe we can find the answers ourselves, not by individual "homework" brainstorming,<BR>but through community collaboration and generous information sharing,<BR>which is the hallmark of this mailing list.<BR><BR>I Googled around today to find out how to assign MPI processes to specific processors,<BR>and I found some interesting information on how to do it.<BR><BR>Below is a link to a posting from the computational fluid dynamics (CFD) community that may be of interest.<BR>Not surprisingly, they are struggling with the same type of
 problems all of us have,<BR>including how to tie MPI processes to specific processors:<BR><BR></FONT></SPAN><A href="http://openfoam.cfd-online.com/cgi-bin/forum/board-auth.cgi?file=/1/5949.html#POST18006" target=_blank rel=nofollow><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">http://openfoam.cfd-online.</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">com/cgi-bin/forum/board-auth.</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">cgi?file=/1/5949.html#</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">POST18006</FONT></SPAN></A><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR><BR>I would summarize these problems as
 related to three types of bottleneck:<BR><BR>1) Multicore processor bottlenecks (standalone machines and clusters)<BR>2) Network fabric bottlenecks (clusters)<BR>3) File system bottlenecks (clusters)<BR><BR>All three types of problems are due to contention for some type of system resource<BR>by the MPI processes that take part in a computation/program.<BR><BR>Our focus on this thread, started by Zach, has been on problem 1),<BR>although most of us may need to look into problems 2) and 3) sooner or later.<BR>(I have all the three of them already!)<BR><BR>The CFD folks use MPI as we do.<BR>They seem to use another MPI flavor, but the same problems are there.<BR>The problems are not caused by MPI itself, but they become apparent when you run MPI programs.<BR>That has been my experience too.<BR><BR>As for how to map the MPI processes to specific processors (or cores),<BR>the key command seems to be "taskset", as my googling afternoon showed.<BR>Try "man
 taskset" for more info.<BR><BR>For a standalone machine like yours, something like the command line below should work to<BR>force execution on "processors" 0 and 2 (which in my case are two different physical CPUs):<BR><BR>mpiexec -n 2 taskset -c 0,2 &nbsp;my_mpi_program<BR><BR>You need to check on your computer ("more /proc/cpuinfo")<BR>what are the exact "processor" numbers that correspond to separate physical CPUs. Most likely they are the even numbered processors only, or the odd numbered only,<BR>since you have dual-core CPUs (integers module 2), with "processors" 0,1 being the four<BR>cores of the first physical CPU, "processors" 2,3 the cores of the second physical CPU, and so on.<BR>At least, this is what I see on my dual-core dual-processor machine.<BR>I would say for quad-cores the separate physical CPUs would be processors 0,4,8, etc,<BR>or 1,5,7, etc, and so on (integers module 4), with "processors" 0,1,2,3 being the four cores<BR>in the
 first physical CPU, and so on. <BR>In /proc/cpuinfo look for the keyword "processor".<BR>These are the numbers you need to use in "taskset -c".<BR>However, other helpful information comes in the keywords "physical id",<BR>"core id", "siblings", and "cpu cores".<BR>They will allow you to map cores and physical CPUs to<BR>the "processor" number.<BR><BR>The "taskset" &nbsp;command line above worked in one of my standalone multicore machines,<BR>and I hope a variant of it will work on your machine also.<BR>It works with the "mpiexec" that comes with the MPICH distribution, and also with<BR>the "mpiexec" associated to the Torque/PBS batch system, which is nice for clusters as well.<BR><BR>"Taskset" can change the default behavior of the Linux scheduler, which is to allow processes to<BR>be moved from one core/CPU to another during execution.<BR>The scheduler does this to ensure optimal CPU use (i.e. load balance).<BR>With taskset you can force execution to
 happen on the cores you specify on the command line,<BR>i.e. you can force the so called "CPU affinity" you wish.<BR>Note that the "taskset" man page uses both the terms "CPU" and "processor", and doesn't use the term "core",<BR>which may be &nbsp;a bit confusing. Make no mistake, "processor" and "CPU" there stand for what we've been calling "core" here.<BR><BR>Other postings that you may find useful on closely related topics are:<BR><BR></FONT></SPAN><A href="http://www.ibm.com/developerworks/linux/library/l-scheduler/" target=_blank rel=nofollow><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">http://www.ibm.com/</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">developerworks/linux/library/</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial,&#13;&#10;
 sans-serif">l-scheduler/</FONT></SPAN></A><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR></FONT></SPAN><A href="http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html" target=_blank rel=nofollow><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">http://www.cyberciti.biz/tips/</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">setting-processor-affinity-</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">certain-task-or-process.html</FONT></SPAN></A><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR><BR>I hope this helps,<BR><BR>Still, we have a long way to go to sort out how much of the multicore
 bottleneck can<BR>be ascribed to lack of memory bandwidth, and how much may be &nbsp;perhaps associated to how<BR>memcpy is compiled by different compilers,<BR>or if there are other components of this problem that we don't see now.<BR><BR>Maybe our community won't find a solution to Zach's problem: "Why is my quad core slower than cluster?"<BR>However, I hope that through collaboration, and by sharing information,<BR>we may be able to nail down the root of the problem,<BR>and perhaps to find ways to improve the alarmingly bad performance<BR>some of us have reported on multicore machines.</FONT></SPAN> 
<DIV class=Ih2E3d><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR><BR>Gus Correa<BR><BR>-- <BR>------------------------------</FONT></SPAN> <SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">------------------------------</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">---------<BR>Gustavo J. Ponce Correa, PhD - Email: </FONT></SPAN><A href="mailto:gus@ldeo.columbia.edu" target=_blank rel=nofollow><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">gus@ldeo.columbia.edu</FONT></SPAN></A><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR>Lamont-Doherty Earth Observatory - Columbia University<BR>P.O. Box 1000 [61 Route 9W] - Palisades, NY, 10964-8000
 - USA<BR>------------------------------</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">------------------------------</FONT></SPAN><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif">---------<BR></FONT></SPAN></DIV></BLOCKQUOTE></DIV><SPAN class=Apple-style-span style="FONT-SIZE: small"><FONT class=Apple-style-span face="arial, sans-serif"><BR clear=all><BR></FONT></SPAN></DIV></DIV></DIV></BLOCKQUOTE></DIV></td></tr></table><br>