Thanks all,<br><br>The Cactus code has a good scalability, especially with the latest version of Carpet it shows a good scalabitly over 5000 cpu cores(?). I tested both BSSN+PUGH and Whisky+Carpet benchmarks.&nbsp; Not an expert, I&#39;m depending on the timing info shown by Cactus rather than use profiling tools introduced by Pavan. The profiling info says that most of communication time was taken to enforce boundary conditions. The total wall clock time (including communication time) increases from ~ 700sec (1CPU) to ~1500 sec (64CPU) whereas computation time only increases ~600 to ~800 sec. Here the problem sizes were take to be proportional to the number of cpus.&nbsp; So now I&#39;m looking for the ways to reduce the communication time. <br>
<br>I&#39;m using Harpertown 5420 (2.5GHz). What makes me disappointed more is this newest Xeon cpu cluster is not that superior to my old Pentium D 930 cluster (3.0GHz) which having 4 nodes (8 cores) . I tested various combinations of (node# x cpu#) and the results somewhat depends on the combinations. <br>
<br>Hybrid run using &quot;-openmp&quot; option of Intel compilers made things worse and had broke loadbalancing. Also the optimization options (even -O2) made runs slower but did not break the load balancing.<br><br>I checked the bandwidth behavior mentioned by Elvedin. Could I change or setup the message size and frequency in a runtime level or any other steps?<br>
<br>I have no idea how to improve the scalability and how serious it is. Anyway it&#39;s a bit <a href="http://unsatisfatory.at">unsatisfatory.at</a> the moment and&nbsp; I hope I can find a better way from here.&nbsp; I appreciate&nbsp; all your kind comments and suggestions. <br>
<br>Regards<br><br>Kim, Hee Il<br> <br><br> <br><div><span class="gmail_quote">2008/3/28, Brian Dobbins &lt;<a href="mailto:bdobbins@gmail.com">bdobbins@gmail.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>&nbsp; I don&#39;t use the Cactus code myself, but from what little I <i>do</i> know of it, this might not be unexpected.&nbsp; For starters, what do you mean by &#39;bad scalability&#39;?&nbsp; I believe most (all?) benchmark cases demonstrate what is called &#39;weak scaling&#39; - that is, the problem size increases along with the number of processors.&nbsp; So, running on 1 processor gives you a wall-clock time of <i>n</i> seconds, and running on 2 processors will probably give you a problem size of <i>n</i>+&lt;some small number&gt;.&nbsp; That small number is the communication time of your code.&nbsp; Thus, running on 80 cores <i>will</i> be slower than running on 1, but it&#39;ll let you run a much larger system.<br>

<br>&nbsp; (To clarify, unless you&#39;re specifically configuring a constant problem size, you won&#39;t reduce your time to solution by increasing your processors.)<br><br>&nbsp; The next thing to consider is which benchmark you&#39;re using, as some of them are more scalable than others.&nbsp; You&#39;re likely to get different results when looking at the &#39;Whiskey Carpet&#39; benchmark vs. the &#39;BSSN_PUGH&#39; one.&nbsp; You might wish to take a look at the benchmark database at the Cactus website, and there are some PDF files with more information, too, including a master&#39;s thesis on benchmark performance.<br>

<br>&nbsp; Finally, a few other slightly more technical things to consider are:<br><br>(1) What kind of Harpertowns are you using?&nbsp; Looking at the 5450 vs. the 5472 (both 3.0 Ghz chips), the latter has more memory bandwidth, and may scale better since the code does appear to make use of it.&nbsp; Using the CPU2006fp_rate CactusADM benchmarks as a first approximation to parallel performance, the SPEC website shows that a 5450 gets a score of 101 and 73.1 when going from 1 -&gt; 8 cores (and larger is better here - this is throughput, not wall-clock time), and the 5472 goes from 112 -&gt; 84.8.&nbsp; Why does this matter?&nbsp; Well, you&#39;ll probably get different results running an 8-core job when running that as 8x1, 4x2, or 1x8 (cores x nodes).&nbsp;&nbsp; This will impact your benchmark results somewhat.<br>

<br>&nbsp;(2) I think the code supports running with MPI and OpenMP... I don&#39;t know if there will be any difference in performance if you choose to run 1 MPI process per node with 8 OpenMP threads vs. simply using 8 MPI processes, but it might be worth looking into.<br>

<br>&nbsp;(3) Again, I have no first-hand knowledge of the code&#39;s performance under different interconnects, but it <i>does</i> seem likely to make a difference... chances are if you asked on the Cactus forums, there might be someone with first-hand experience with this who could give you some more specific information.&nbsp; <br>

<br>&nbsp; Hope that helps, and if any of it isn&#39;t clear, I&#39;ll be happy to try to clarify.&nbsp; Good luck!<br><br>&nbsp; Cheers,<br><span class="sg">&nbsp; - Brian<br><br>
</span></blockquote></div><br>