Hi, I am thinking of getting 2 opteron 270's, which are dual core, so id have 4 cores. My problem is how they access memory, there are 2 banks of ram, ill have 2 gig by each cpu, perhaps more depending on price but.. If i have 4 threads, each on a core, working on the same Virtual address block within the program. My question is, is it all the same memory for each cpu? or if it can access each bank, whats the preformance cost? is there any thing else i should know about dual core + dual cpu? id appreciate any ideas.
Posted on 2007-03-11 17:40:18 by Qages
Humm, you should probably get some AMD technical manuals.

It is my understanding that, on AMD64, each core has it's own separate cache, and the two cores on one CPU communicate via a HyperTransport link to keep their view of main memory in a consistent state - this is supposedly faster than other buses. I haven't paid attention to what happens in a multi-cpu system though.

Does the system run NUMA or not? Again a topic I have only skimmed, but it's my understanding that you have the concept of "fast" (local) and "slow" memory in those systems.

I might be totally off the mark though :)
Posted on 2007-03-12 07:16:49 by f0dder
I've read the wiki on NUMA, it would be a standard hardware.
The addition of virtual memory paging to a cluster architecture can allow the implementation of NUMA entirely in software where no NUMA hardware exists.

It would be up for the os to implement that.

I dont think there is any way to determine if a memory block is on the same bank as the cpu its on, I'd hate to allocate some only for it to choose the bank on the other cpu when it isnt nessasary. If the overhead on this is nil then I suppiose it doesnt matter, though I don't like adding more problem to an already memory 'starved' cpu.
Posted on 2007-03-14 23:26:30 by Qages