I have a Mac Pro tower with a 2 x 2.66 GHz 6-Core Intel Xeon chipset, and 8 RAM slots. I have been told because of the processor's triple-channel memory capability that I should be installing RAM modules in sets of three. I do a lot of compiling on this machine and want to maximize all the hardware I've got. Does it follow that I should avoid installing RAM in the last two slots?
The direct answer to your question is you will get marginally higher peak memory bandwidth with 6 matched memory modules running in triple channel mode than you will with 8 matched memory modules in dual channel mode. However, there are no guarantees that your machine will perform the tasks you use it for any quicker in either mode. You need a more in-depth analysis than that. Firstly, here are the memory replacement instructions for your Mac. In summary, the instructions for your model go like so:
To determine whether you would benefit from more total RAM or from keeping your RAM in triple channel mode would require benchmarks. It's difficult without measuring usage to say whether there will be any benefit from adding more RAM. If you run a compile with Activity Monitor running are you using all the RAM you have? Is disk I/O particularly high? If disk I/O is high but your RAM is not fully utilised you may be better off with an SSD hard drive to run your compilations from rather than adding RAM, check for paging to disk during the compile. The important thing here is to find the bottleneck rather than hoping that adding RAM will make things run quicker. It may even turn out that the CPU or the compiler is the bottleneck. If you have two 6-core CPUs, can your compiler use all that processing power?
I know I've probably raised more questions than I've answered but it's worth considering them if you're looking for a performance improvement for your investment.
If you are a programmer you probably understand these concepts anyway but here's a link to a codinghorror article just explaining the process of finding bottlenecks which I think is easy to read. The OS in this case is windows but the principles are the same. You can use Activity Monitor or a third party resource monitoring tool to determine the bottleneck.
For example, to determine whether your system is running out of RAM, fire up Activity Monitor. Near the bottom of the window, select the tab button labelled 'System Memory' and take a look at the pie chart and figures listed beneath. Here's an example from my system.
The figures in this screenshot you should be interested in are Free and Page Outs. Free shows how much RAM is currently available, Page Outs is an indicator that your system is running out of RAM and has had to write temporary data to disk. Anything above 0 in Page Outs means you could potentially benefit from more RAM. You could perform whatever activity you expect to push your system with Activity Monitor open and monitor these figures throughout. This should help you determine whether you will get any benefit from more RAM. For completeness, here's what each item represents.
Here's a really nice link too for Mac performance questions http://www.macperformanceguide.com/
It all depends on whether you need raw RAM speed or a higher total amount of RAM. Today's RAM is so fast you may not notice the drop from triple channel to single channel. However, considering you can easily put 12GB or more in the first 6 slots using two 3-channel kits, there's really not much reason to use all 8 unless you need to max out the machine for some reason. And just code compiling will not require so much RAM to need to do that.
So, in summation, I'd recommend sticking with two 3-channel kits to still get a large amount of RAM at the fastest speed.