Processing speed, clockspeed or cores

This thread prompted me to do a notional analysis I’ve pondered for a while. I took the same image and ran the same sharpen operation on three computers, with the available range of cores. rawproc measures the duration of its image operations and will log the occurrences, and it also has configuration parameters to set the number of cores used, by operation. So, for each of an AMD Phenom II/4core/3.2GHz, Intel i5/2core/2.6GHz, and Intel Atom/4core/1.6GHz I stepped through the number of cores used from 1 to available, doing 4-6 sharpens each number.

If there were no overhead, one would expect marginal speedup to progress linearly as the job were divided over an increasing number of cores. But there is overhead, in the form of cache traversal, thread setup, and probably other things, and I observed the marginal speedup decrease, from ~45% 1->2 cores to ~12% 3->4 cores. The 2-core i5 was interesting in that it has hyperthreading, with 4 threads, and small speedup was still observed on it after two cores, likely due to the hyperthreading hardware support.

Comparing the 1-core times for each of the machines, it is clear that processor speed scales at least linearly.

I’m going to build a Ryzen machine sometime soon, with one of the 8-core chips, and I’ll be interested to see if there’s a number of cores past which there’s no marginal benefit. So, for discussion, I’m going to throw out the half-assed assertion that getting the fastest processor is important, but there’s probably a number of cores past which it becomes not so beneficial to pursue.

There are other considerations I didn’t factor, including cache specifics, operating system scheduling, and image size. If there’s interest, I can post the data, but probably not until the weekend.