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 and
plan 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 use
all 48 threads for openmp? If I set omp_set_num_threads(12), is it guaranteed that all 12 threads
will 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, or
I could run 1 simulation with 48 threads to get 1 data point in 1/4 of time. Do I need to adjust my openmp
code for later case?