Which apps are too slow? or: Is a multi-core processor required?
Like cars, the speed is cool, but: "Do you need speed? Do people pay for it?"
Word processing, email, and spreadsheets are fast enough, even on underpowered netbooks (they've been fast enough for a decade). If you can play HD video and sound, are people needed faster? It seems like games can always use more power, and that's true - but will people pay for it? The success of "casual games" and the Nintendo Wii (cf XBOX360 and PSX3) suggests that most people won't; and that more power doesn't mean more fun for them (at least not enough extra pleasure to pay extra).
Which apps are too slow? What is a required application that is currently too slow?
The only ones I can think of are embarrassingly parallelizing (servers, graphics, physics simulations, running multiple applications at once). Clarify: It doesn't matter to me that multicore is hard to use, as long as there is something that (1) doesn't bother with parallelizability; and (1) should be faster. I ask for such cases.
Here an opportunity arose to come up with something new that people didn't even know what they needed, it was unsafe in front of multi-core.
Background:
Can any of the doctors please explain why this is "not a real question"? I think so, and I do not see anything wrong with that. Are there any FAQs that can help me with what questions are "real" on SO? Thanks.
a source to share
I remember a lecturer at MIT said something like (paraphrasing) “performance is like a currency that you can exchange for more useful things like better user interfaces, ease of coding (higher level languages / managed languages runtime) or less complex / more supported programs ".
a source to share
I'll pay for the extra speed.
But I am a powerful user, I run several programs at once and it can take a long time to compile.
More speed means less waiting and doing nothing.
Most of the users do not need this at present. Only gamers, coders and scientists really need more speed, as they are critical in their field. A computer for me is not only a tool. This is a job.
I disagree with instructor fd who says that performance can be sold in relation to other things.
This is the first thing that comes to my mind.
A good GUI is responsive too.
Good language shouldn't slow you down.
Maintaining performance is the only trade-off between performance and comfort.
With the right tool for the right job, everything can be serviced as well as quickly.
a source to share
I would say financial business applications. I am working with a sensible large vendor building a front office trading system and almost every registration (in functional / business logic code) needs to be weighed against its performance impact.
Some things are easy to parallelize, like raw contract evaluations are just side-effect free black box functions that contain a lot of math. But if your application is processing a book with maybe 10,000 positions, then even small calculations above the kernel with mathematical weight are added, such as discounting all cash flows or fx conversions. It is not easy to parallelize here because many of these "small" computations are not additive compared to positions.
So, the financial industry really needs 64-bit (for memory) and multi-core processors.
Well, multitasking is the first thing that comes to mind: it's always really nice to have an extra core so that the UI can be instantly responsive even when you've just started a processor-related function like building a complex web page (this can take amazing the number of processors is more difficult than you think).
In fact, web browsers themselves do large enough and add-on work that they can take advantage of the higher processor power. For example, this 1.7GHz Pentium M with 2MB cache is a reasonably fast processor, and yet I sometimes see lagging behind what I am typing here and the formatted version appearing below this input box, or even lagging in input time.
Fixing this sort of thing would be a small improvement, but enjoyable.
Some "regular" users do things that can be parallelized and give noticeable performance improvements: recalculating large spreadsheets, for example, especially when you generate graphics from the results.
a source to share