Interesting post on Hacker News:
https://news.ycombinator.com/item?id=5923300
To summarize the post:
On dual processor machines, all RAM is not shared. Each bank of RAM is associated with a certain CPU. This is why the dual processor Mac Pro has double the RAM support. But things start to get messy one one CPU needs data from the other CPU's RAM bank. You take a performance hit as the two CPUs need to synchronize in order for the information to move between them.
Other operating systems have better support for something called NUMA. A full NUMA implementation basically tries to pair memory and CPU in the most efficient way to try to keep a program and it's data on the same CPU. This reduces the amount of synchronization CPUs must do. But Mac OS X does not have a robust NUMA implementation.
This gets worse under the i7/newer Xeon architecture as each PCIe card is also associated with a different CPU. So if you have a program on the wrong CPU trying to talk to the GPU, you'll see diminished performance. One commentator noted an almost 30% speed loss in GPU performance with a dual CPU machine vs. a single CPU machine.
I would think this could also cause problems as disks become faster. Either a PCIe disk or a SATA disk would be linked to a certain CPU, and would perform worse if a program was running off of a different CPU.
This isn't to diminish workflows that are CPU core bound. But I thought this might provide some insight on why Apple might be willing to sacrifice dual CPU configurations if it could net them at least better GPU and memory performance.
Microsoft's article on NUMA:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx
https://news.ycombinator.com/item?id=5923300
To summarize the post:
On dual processor machines, all RAM is not shared. Each bank of RAM is associated with a certain CPU. This is why the dual processor Mac Pro has double the RAM support. But things start to get messy one one CPU needs data from the other CPU's RAM bank. You take a performance hit as the two CPUs need to synchronize in order for the information to move between them.
Other operating systems have better support for something called NUMA. A full NUMA implementation basically tries to pair memory and CPU in the most efficient way to try to keep a program and it's data on the same CPU. This reduces the amount of synchronization CPUs must do. But Mac OS X does not have a robust NUMA implementation.
This gets worse under the i7/newer Xeon architecture as each PCIe card is also associated with a different CPU. So if you have a program on the wrong CPU trying to talk to the GPU, you'll see diminished performance. One commentator noted an almost 30% speed loss in GPU performance with a dual CPU machine vs. a single CPU machine.
I would think this could also cause problems as disks become faster. Either a PCIe disk or a SATA disk would be linked to a certain CPU, and would perform worse if a program was running off of a different CPU.
This isn't to diminish workflows that are CPU core bound. But I thought this might provide some insight on why Apple might be willing to sacrifice dual CPU configurations if it could net them at least better GPU and memory performance.
Microsoft's article on NUMA:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).aspx