<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>