Subject: The myth of single core performance
There's so much chatter/discussion surrounding the importance or how to test a Mac for single Processor core performance that it bogles my mind.
Much is discussed comparing single core performance of one Mac model vs. another, with the intent of stating one is better than the other for a program that is designed to run on and use only one Processor's core.
With the new iMac Pro (iMP) everybody wants to know how each of the iMP models differ in single core performance. The discussions kind of go like; if your work is 'single core' will it run better on 8-core, 10-core, 14-core or 18-core where each model has a different core min/max frequency (the stated min frequencies 3.2/3.0/2.5/2.3 GHz and stated Turbo Boost frequencies 4.2/4.5/4.3/4.3 GHz).
Many people will jump to the conclusion that the 10-core with its 4.5 GHz Turbo Boost will be the best for a program that is designed to run on and use only one Processor's core even though its base frequency is 3.0 GHz which is lower than the base frequency of the 8-core at 3.2 GHz and max Turbo Boost frequency of 4.2 GHz.
Now, hopefully everybody understands that a program that is designed to run on and use only one Processor's core will not run continuously on any one core in the system all the time. The system (macOS) with its many active processes (system processes and user processes) will cause the 'single-core program' to bounce around from executing on one core to another. This is a natural behavior for a modern OS to share the Processor resources as it will constantly exchange what's running on one core in favor of another process that demands the CPU resource; its called context switching.
Given the above, it's highly unlikely that a program that is designed to run on and use only one Processor's core will ever see the Turbo Boost frequency for the iMP model its running on.
To give you some idea about what can be achieved in obtaining the Turbo Boot frequency I used my iMP 10-core to test a few things.
1) I ran a program that is designed to run on and use only one Processor's core with all 10 cores enabled. The observed average frequency as reported by Intel Power Gadget and iStat was 4.2 GHz.
2) I now disabled 8 of the cores using Xcode's Instruments and ran the program as I did in 1). The observed
average frequency as reported by Intel Power Gadget and iStat was 4.5 GHz.
3) I now disabled 9 of the cores using Xcode's Instruments and ran the program as I did in 1). The observed
average frequency as reported by Intel Power Gadget and iStat was 4.5 GHz.
So for a program that is designed to run on and use only one Processor's core will likely see 4.2 GHz on a 10-core iMP. It will not have access to the max Turbo Boost frequency of 4.5 GHz unless 8 or 9 of the cores are disabled.
So what can be said for the 8-core, 14-core and 18-core iMP models when running a program that is designed to run on and use only one Processor's core ?
My guess is that for the 10-core iMP as mentioned above that averaged 4.2 GHz, it will run a program that is designed to run on and use only one Processor's core faster (less wall clock time) than for the 8-core IMP model as it would not be able to sustain its 4.2 GHz Turbo Boost frequency.
My guess is that the 10-core iMP model will actually be the best iMP model for running a program that is designed to run on and use only one Processor core.
I think the story to be taken away with all the above is that to determine which iMP model is best for a program that is designed to run on and use only one Processor's core is that it must be run on all the iMP models to find out and not think that studying just the base and max frequencies of each iMP model is a means for deciding this.
There's so much chatter/discussion surrounding the importance or how to test a Mac for single Processor core performance that it bogles my mind.
Much is discussed comparing single core performance of one Mac model vs. another, with the intent of stating one is better than the other for a program that is designed to run on and use only one Processor's core.
With the new iMac Pro (iMP) everybody wants to know how each of the iMP models differ in single core performance. The discussions kind of go like; if your work is 'single core' will it run better on 8-core, 10-core, 14-core or 18-core where each model has a different core min/max frequency (the stated min frequencies 3.2/3.0/2.5/2.3 GHz and stated Turbo Boost frequencies 4.2/4.5/4.3/4.3 GHz).
Many people will jump to the conclusion that the 10-core with its 4.5 GHz Turbo Boost will be the best for a program that is designed to run on and use only one Processor's core even though its base frequency is 3.0 GHz which is lower than the base frequency of the 8-core at 3.2 GHz and max Turbo Boost frequency of 4.2 GHz.
Now, hopefully everybody understands that a program that is designed to run on and use only one Processor's core will not run continuously on any one core in the system all the time. The system (macOS) with its many active processes (system processes and user processes) will cause the 'single-core program' to bounce around from executing on one core to another. This is a natural behavior for a modern OS to share the Processor resources as it will constantly exchange what's running on one core in favor of another process that demands the CPU resource; its called context switching.
Given the above, it's highly unlikely that a program that is designed to run on and use only one Processor's core will ever see the Turbo Boost frequency for the iMP model its running on.
To give you some idea about what can be achieved in obtaining the Turbo Boot frequency I used my iMP 10-core to test a few things.
1) I ran a program that is designed to run on and use only one Processor's core with all 10 cores enabled. The observed average frequency as reported by Intel Power Gadget and iStat was 4.2 GHz.
2) I now disabled 8 of the cores using Xcode's Instruments and ran the program as I did in 1). The observed
average frequency as reported by Intel Power Gadget and iStat was 4.5 GHz.
3) I now disabled 9 of the cores using Xcode's Instruments and ran the program as I did in 1). The observed
average frequency as reported by Intel Power Gadget and iStat was 4.5 GHz.
So for a program that is designed to run on and use only one Processor's core will likely see 4.2 GHz on a 10-core iMP. It will not have access to the max Turbo Boost frequency of 4.5 GHz unless 8 or 9 of the cores are disabled.
So what can be said for the 8-core, 14-core and 18-core iMP models when running a program that is designed to run on and use only one Processor's core ?
My guess is that for the 10-core iMP as mentioned above that averaged 4.2 GHz, it will run a program that is designed to run on and use only one Processor's core faster (less wall clock time) than for the 8-core IMP model as it would not be able to sustain its 4.2 GHz Turbo Boost frequency.
My guess is that the 10-core iMP model will actually be the best iMP model for running a program that is designed to run on and use only one Processor core.
I think the story to be taken away with all the above is that to determine which iMP model is best for a program that is designed to run on and use only one Processor's core is that it must be run on all the iMP models to find out and not think that studying just the base and max frequencies of each iMP model is a means for deciding this.