[LCP]Single threaded programs and 32GB RAM/Quad Opteron question

Jack Lloyd lloyd at acm.jhu.edu
Mon Sep 13 23:12:02 UTC 2004


This seems a little off-topic for the list, but what the hell, it's sort of
interesting, and it's not like the list is overflowing with posts...

The deal is, most of the quad boxes (such as [1]), and even some of the dual
boards, try to take advantage of the on-board memory controllers in the
Opteron. If you look at the pictures, you'll see there are 4 different memory
banks, one for each processor. So if you've got a NUMA-aware OS, it can put
stuff where it can be accessed quickly, without having to go through the
Hypertransport bus of one of the other CPUs. If you put memory into a slot
owned by one of the CPUs, but there is no CPU there, then you won't be able to
see it, because you won't have a memory controller to actually use the
memory.

However, AFAIK, from the perspective of a user-space application, you just have
a flat address space, and it just so happens that some parts of memory are
slower to access than others (because of having to go through another memory
controller).

Obviously, moving your simulation into multiple threads will help out
performance, since you'll be able to take advantage of all of those shiny
Opterons you'll have installed, and, depending on what kind of memory locality
each thread has, you'll get a big boost to memory throughput. But your
application should work just fine as-is.

Hope this helps,
  Jack

[1]: http://www.amdboard.com/tyan_s4880_opteron_board.html

On Sun, Sep 12, 2004 at 07:47:47PM -0400, Carlos J. Cela wrote:
> Hi,
> 
> I have been working for the last year developing software for a research 
> project which involves large simulations. So far we have been using 
> Pentium 4 based PC's with 4GB of RAM. As it is getting harder and harder 
> to fit our more detailed models in 4GB of memory, we are planning on 
> purchasing a quad-Opteron PC with 32GB, running probably Fedora Core 2, 
> large mem kernel.
> 
> Reading hardware specs, I have noticed that one can only install 32GB 
> RAM if there are 4 processors installed in the machine....do you guys 
> know if in a 32GB RAM/Quad Opteron system a program running in just one 
> of the processors can access the full range of memory?
> 
> I mean, if my application is single-threaded...can I use the 32GB od RAM 
> or just to 1/4th of it? is all or part of the memory shared? if so, why 
> the '4 processors installed' requirement? are there any other specifics 
> that I should be aware of when writing software for such system?
> 
> Have any of you guys have experience with similar setups? Any 
> help/advice will be appreciated.
> 
> Thanks,
> Carlos-
> 
> 
> _______________________________________________
> This is the Linux C Programming List
> :  http://lists.linux.org.au/listinfo/linuxcprogramming List




More information about the linuxCprogramming mailing list