<br><br><div class="gmail_quote">On Wed, Dec 22, 2010 at 6:32 PM, Satish Balay <span dir="ltr">&lt;<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div></div><div class="h5">On Wed, 22 Dec 2010, Yongjun Chen wrote:<br>
<br>
&gt; On Wed, Dec 22, 2010 at 5:54 PM, Satish Balay &lt;<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On Wed, 22 Dec 2010, Yongjun Chen wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; On Wed, Dec 22, 2010 at 5:40 PM, Barry Smith &lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Processors: 4 CPUS * 4Cores/CPU, with each core 2500MHz<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Memories: 16 *2 GB DDR2 333 MHz, dual channel, data width 64 bit, so<br>
&gt; &gt; the<br>
&gt; &gt; &gt; &gt; memory Bandwidth for 2 memories is 64/8*166*2*2=5.4GB/s.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;    Wait a minute. You have 16 cores that share 5.4 GB/s???? This is not<br>
&gt; &gt; &gt; &gt; enough for iterative solvers, in fact this is absolutely terrible for<br>
&gt; &gt; &gt; &gt; iterative solvers. You really want 5.4 GB/s PER core! This machine is<br>
&gt; &gt; &gt; &gt; absolutely inappropriate for iterative solvers. No package can give you<br>
&gt; &gt; good<br>
&gt; &gt; &gt; &gt; speedups on this machine.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Barry, there are 16 memories, every 2 memories make up one dual channel,<br>
&gt; &gt; &gt; thus in this machine there are 8 dual channel, each dual channel has the<br>
&gt; &gt; &gt; memory bandwidth 5.4GB/s.<br>
&gt; &gt;<br>
&gt; &gt; What hardware is this? [processor/chipset?]<br>
&gt; &gt;<br>
&gt;<br>
&gt; By dmidecode, it shows the processor is<br>
&gt;<br>
&gt; Handle 0x0010, DMI type 4, 40 bytes<br>
&gt; Processor Information<br>
&gt;         Socket Designation: CPU 4<br>
&gt;         Type: Central Processor<br>
&gt;         Family: Quad-Core Opteron<br>
&gt;         Manufacturer: AMD<br>
&gt;         ID: 06 05 F6 40 74 03 E8 3D<br>
&gt;         Signature: Family 5, Model 0, Stepping 6<br>
&gt;         Flags:<br>
&gt;                 DE (Debugging extension)<br>
&gt;                 TSC (Time stamp counter)<br>
&gt;                 MSR (Model specific registers)<br>
&gt;                 PAE (Physical address extension)<br>
&gt;                 CX8 (CMPXCHG8 instruction supported)<br>
&gt;                 APIC (On-chip APIC hardware supported)<br>
&gt;                 CLFSH (CLFLUSH instruction supported)<br>
&gt;                 DS (Debug store)<br>
&gt;                 ACPI (ACPI supported)<br>
&gt;                 MMX (MMX technology supported)<br>
&gt;                 FXSR (Fast floating-point save and restore)<br>
&gt;                 SSE2 (Streaming SIMD extensions 2)<br>
&gt;                 SS (Self-snoop)<br>
&gt;                 HTT (Hyper-threading technology)<br>
&gt;                 TM (Thermal monitor supported)<br>
&gt;         Version: Quad-Core AMD Opteron(tm) Processor 8360 SE<br>
&gt;         Voltage: 1.5 V<br>
&gt;         External Clock: 200 MHz<br>
&gt;         Max Speed: 4600 MHz<br>
&gt;         Current Speed: 2500 MHz<br>
&gt;         Status: Populated, Enabled<br>
&gt;         Upgrade: Other<br>
&gt;         L1 Cache Handle: 0x0011<br>
&gt;         L2 Cache Handle: 0x0012<br>
&gt;         L3 Cache Handle: 0x0013<br>
&gt;         Serial Number: N/A<br>
&gt;         Asset Tag: N/A<br>
&gt;         Part Number: N/A<br>
&gt;         Core Count: 4<br>
&gt;         Core Enabled: 4<br>
&gt;         Characteristics:<br>
&gt;                 64-bit capable<br>
<br>
</div></div>ok - your machine has the following schematic.. [from google]<br>
<br>
<a href="http://www.qdpma.com/SystemArchitecture_files/013_Opteron.png" target="_blank">http://www.qdpma.com/SystemArchitecture_files/013_Opteron.png</a><br>
<div class="im"><br>
&gt; &gt; &gt;From what you say - it looks like each chip has 4cores, and 2<br>
&gt; &gt; dual-channel memory controllers for each of them.<br>
&gt; &gt;<br>
&gt; &gt; The question is - does the hardware provide scalable memory-bandwidth<br>
&gt; &gt; per core?  Most machines don&#39;t.<br>
&gt; &gt;<br>
&gt;<br>
&gt; This point is not clear for me right now.<br>
<br>
</div>Hm.. the point is: the hardware designer had 2 choices:<br>
<br>
- provide a single memory controller per core [so each core gets only<br>
  2.7gb/s - i.e 4 memory controllers per CPU, and common L2 cache<br>
  across all cores not possible]<br>
<br>
- provide a single memory controller with 2-dual memory channels [i.e<br>
  10.8GB/s] thats shared by 1-4 cores. With this - there can be a<br>
  single L2 cache for all 4 cores.<br>
<br>
Which of the above 2 is a good design? The first one provides scalable<br>
performance - but the second one doesn&#39;t. Also the first one limits<br>
the performance of sequential [np=1 applications]. The second one<br>
provides all bandwidth to even np=1 codes - so they might have better<br>
sequential performane. And then performance differences due to different<br>
cache synchronization issues..<br>
<font color="#888888"><br>
Satish<br>
</font><br></blockquote><div>Thanks a lot, Satish. It is much clear now. But for the choice of the two, the program dmidecode does not show this information. Do you know any way to get it?<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div><div class="h5">
<br>
<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt; I.e the same 5.4*2GB/s is avilable for 1 core run as well as the 4 core<br>
&gt; &gt; run.<br>
&gt; &gt;<br>
&gt; &gt; So if the algorithm is able to use 5.4GB/s [or more] for 1 threads,<br>
&gt; &gt; 10.8 [or more] for 2 threads - you would just see scalable performance<br>
&gt; &gt; from 1 to 2, and 3, 4 would perhaps be slightly incremental to the<br>
&gt; &gt; 2-core performance.<br>
&gt; &gt;<br>
&gt; &gt; Satish<br>
&gt; &gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br>