OpenMP® Forum

Discussion on the OpenMP specification run by the OpenMP ARB. OpenMP and the OpenMP logo are registered trademarks of the OpenMP Architecture Review Board in the United States and other countries. All rights reserved.

I have a beginner question regarding openmp on a multi multi-core processors machine.I'm buying a 4-processor mainboard with AMD SR5690/SR5670+SP5100 Chipset andplan to put the Opteron 6200 12-cores on each CPU sockets (totally 48 cores).I noticed on the manufacturer's website that there are 8 RAM banks near each CPU socket.I don't know the RAM belong to only that processor, or all 32 RAM banks are shared.

I used openmp on a 1 multi-core processor before, but don't know how it is with multi multi-core processors.My question is, for optimal implementaion, should I use openmp with 12 threads maximum, or I can useall 48 threads for openmp? If I set omp_set_num_threads(12), is it guaranteed that all 12 threadswill run on a single CPU (to have better memory access?).

My simulation program is small scale, I could run 4 simulations, each uses 12 threads to get 4 data points, orI could run 1 simulation with 48 threads to get 1 data point in 1/4 of time. Do I need to adjust my openmpcode for later case?

The only new Opteron I have found. You will find more Opterons in SPEC2006fp rate but I guess you are not interested in servers typical for Internet.One thread/core looks to be the best for Opteron. One test I have done is 7-zip benchmark (free to download) with compress and decompress of files.One thread/core will result in the best total perf. but in fact 2 threads/core gives higher compress rate.

My question is actually whether or not, this system has distribution memory or shared memory

As far as I know, this is a shared memory system with NUMA. It is easily verified if you actually have the computer: if you see all the installed RAM reported by free or a similar command, then you have a shared memory computer.