By: Ricardo B (ricardo.b.delete@this.xxxxx.xx), May 12, 2013 5:48 pm
Room: Moderated Discussions
RichardC (tich.delete@this.pobox.com) on May 12, 2013 12:36 am wrote:
> So tell me what commonly-used client app (or workload) benefits from SMT ?
You'd have to tell me what do you consider common CPU bound client applications first. :)
Lossless compression (WinRAR, etc) in general sees big improvements.
They're trival to parallelize effectively to any number of threads and they're very low on ILP.
Lossy Audio/Video encoding also tends to benefit.
It's also trivial to parallelize effectively, but some of the tasks run better with a single thread per core.
Browsers aren't exactly what I'd call CPU bound, but they also tend to benefit: the rendering and JavaScript VM are low IPC and browsers are moving
And if you have a wimpy CPU* that has a hard time dealing with all the applications you have running, then SMT also helps.
* like the my netbook's Atom
> Actually, I don't see "increasing numbers of cores". We seem to be settling down
> at 2C for the low end, and 4C for mid-high.
Yes, you're right here.
> >
> > So, in summary, clients want CPUs with multiple fat cores and multi-threaded software to exploit them.,
> >
> > But lots of client (or not) software is actually low IPC and makes poor use of the fat cores.
> > Therefore, if you have a CPU with multiple fat cores... adding SMT
> > is a no-brainer that will benefit more use cases than not.
> > Clients or servers.
>
> No, because most of the apps aren't effectively multi-threaded (or not threaded
> in a way that scales beyond 4 threads).
Even if my application is restricted to 4 threads, then that means I can use a 2C/4T CPU and get 80% of the performance of a bigger, more expensive, 4C/4T CPU.
It's still a win.
All in all, the "applications don't scale beyond 4 threads" is an often repetated mantra but it seems to lack evidence.
> So tell me what commonly-used client app (or workload) benefits from SMT ?
You'd have to tell me what do you consider common CPU bound client applications first. :)
Lossless compression (WinRAR, etc) in general sees big improvements.
They're trival to parallelize effectively to any number of threads and they're very low on ILP.
Lossy Audio/Video encoding also tends to benefit.
It's also trivial to parallelize effectively, but some of the tasks run better with a single thread per core.
Browsers aren't exactly what I'd call CPU bound, but they also tend to benefit: the rendering and JavaScript VM are low IPC and browsers are moving
And if you have a wimpy CPU* that has a hard time dealing with all the applications you have running, then SMT also helps.
* like the my netbook's Atom
> Actually, I don't see "increasing numbers of cores". We seem to be settling down
> at 2C for the low end, and 4C for mid-high.
Yes, you're right here.
> >
> > So, in summary, clients want CPUs with multiple fat cores and multi-threaded software to exploit them.,
> >
> > But lots of client (or not) software is actually low IPC and makes poor use of the fat cores.
> > Therefore, if you have a CPU with multiple fat cores... adding SMT
> > is a no-brainer that will benefit more use cases than not.
> > Clients or servers.
>
> No, because most of the apps aren't effectively multi-threaded (or not threaded
> in a way that scales beyond 4 threads).
Even if my application is restricted to 4 threads, then that means I can use a 2C/4T CPU and get 80% of the performance of a bigger, more expensive, 4C/4T CPU.
It's still a win.
All in all, the "applications don't scale beyond 4 threads" is an often repetated mantra but it seems to lack evidence.