<table cellspacing='0' cellpadding='0' border='0' ><tr><td valign='top' style='font: inherit;'><P>There answer of your not so good performmace gain (X) on QuadX2 can be sumarized as below:</P>
<P><BR>The are 2 major bottlenecks on a Quad CPU:</P>
<P>- memory bandwidth is shared by all the cores on the physical CPU.&nbsp; For application of significant size and activities, the more processes you run on a Quad CPU, the higher the memory contention you can expect, thus limiting the X.</P>
<P>&nbsp;</P>
<P>- The shared cache and other resources put yet another limit on X.&nbsp; The shared cache&nbsp;can become so&nbsp;'bloated' that each process is tring to evict others from the cache.&nbsp;&nbsp; The shared cache eviction is extremely pronounced on some Quad CPU.&nbsp; If you dig deep enough, you can find out that one of the Quad CPU out there takes 120 cycles to do a cache eviction, that is extremel expensive.</P>
<P>&nbsp;</P>
<P>whereas on a box with single uni-core CPU, there is neither memory bandwidth nor cache contention when the application is run, and that is why you are seeing the good X.</P>
<P>&nbsp;</P>
<P>If you prefer something that give you good and consistent X, try SUN NIAGARA.&nbsp; But that is a much slower box.</P>
<P>&nbsp;</P>
<P>tan</P>
<P>&nbsp;</P>
<P>&nbsp; </P>
<P>&nbsp;</P>
<P>--- On <B>Mon, 7/14/08, Gaetano Bellanca <I>&lt;gaetano.bellanca@unife.it&gt;</I></B> wrote:<BR></P>
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(16,16,255) 2px solid">From: Gaetano Bellanca &lt;gaetano.bellanca@unife.it&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, 5:01 AM<BR><BR>
<DIV id=yiv2040684604>Hello to everybody,<BR><BR>we have more or less the same problems. We are developing a FDTD code for electromagnetic simulation in FORTRAN. The code is mainly based on a 3 loops used to compute the electric field components, and 3 identical loops to compute the magnetic field components. <BR><BR>We are using a small PC cluster made with 10 PIV 3GHz connected with a 1Gbit/s ethernet LAN built some years ago, and a Intel Vernonia 2 procesors / 4 core each (total 8 core). The processors are Intel Xeon E5345&nbsp; @ 2.33GHz. <BR>We are using the Intel 10.1 fortran compiler (compiler options as indicated in the manual for machine optimization, with -O3), ubuntu 7.10 (kernel 2.6.22-14 generic on the cluster, kernel 2.6.22-14 server on the multiprocessor machine).<BR>mpich2 is compiled with nemesis, and we are still with the 2.1.06p1 (still no time to upgrade to&nbsp; the last version) <BR><BR>Testing the code for a (not too big, to keep
 the overall time limited) simulation (85184 variables 44x44x44 cells, 51000 temporal iterations) we had&nbsp; a good scaling on the cluster. On the total simulation time (with parallel and sequential operations mixed) we have a speed-up of 8.5 using 10PEs ( 6.2 with 9, 8.2 with 8, 5 with 7, 5.8 with 6 etc ...). <BR><BR>The same simulation has been run on the 2PEs/quad core machine but we didn't have good performances. <BR>The speed up is 2 if we run mpiexec -n 2 .... as the domain is divided between the two processors which seems to work independently. But, by increasing the number of processors (core) used, running the simulation with .n 3, -n 4 etc ... we have a speed-up of 2.48 with 4 cores (2 on each PE), but only 2.6 with 8 PEs.<BR><BR>We also tried to use -parallel or -openmp (limiting the openmp directives only in the loops of field computations), without obtaining significant changes in the performances, both running with mpiexec -n 1 or mpiexec
 -n 2 (trying to mix mpi and openmp).<BR><BR>Our idea is that we have serious problems in managing the shared resources for memory access, but we have not expertise on that, and we could be totally wrong. <BR><BR>Regards.<BR><BR>Gaetano<BR>
<P>
<HR>
<TT>Gaetano Bellanca - Department of Engineering - University of Ferrara&nbsp; <BR>Via Saragat, 1 - 44100 - Ferrara - ITALY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>Voice (VoIP):&nbsp; +39 0532 974809&nbsp;&nbsp;&nbsp;&nbsp; Fax:&nbsp; +39 0532 974870<BR><A href="mailto:gaetano.bellanca@unife.it" target=_blank rel=nofollow>mailto:gaetano.bellanca@unife.it</A> <BR>
<HR>
</TT></DIV></BLOCKQUOTE></td></tr></table><br>