What Applications Will Drive System Performance?
Foredecker asks: "Companies like AMD, Intel, NVIDIA, ATI and others are continuing to drive silicon performance to new levels. Of course, every day computing (basic web browsing, email, word processing, spreadsheets, personal finance, and the like) don't require a Intel 3.2Ghz P4 with Hyperthreading or a AMD Athlon 64 FX and their associated platforms. Of course, there are apps that will leverage today's high performance platforms. Games are an obvious category, as is video editing. I'm looking for apps that will be widely adopted and will drive volume hardware shipments. Things that come to mind are: effective, speaker independent voice recognition, accurate repeatable object recognition in digital photos and videos (or from live feeds such as web cams). What other application categories are there that will drive the need for bigger-faster-better hardware platforms?"
I mean, what the hell? This isn't the first time I've seen this kind of thing. Why are the guys who are hired to pinch pennies in corporate always the ones who aren't happy until their toilets flush with freshly imported springwater?
Anyone seen the system requirements for Longhorn/OSXI/KDE4? they're probably gargantuan.
no thanks
It's quite the resource hog.
Porn will lead us.
Massive amounts of storage, and fantastic amounts of cheap processing power will lead to a generation of smart capable web spiders capable of autonimously downloading and indexing porn while avoiding banners, advertisments, pop ups, P2P spam or crap-floods and duplicates.
The unibiquitious nature of regular porn will make it tame and uninteresting through sheer availability. This will lead a secret cabal of Japanese scientists (and school girls) to create ultra-porn which will require consumers to be at least a half century old. As the shocking depictions will require a cushion of life's experiences at least that substantial to avoid harmful or even debilitating side effects.
In the year two thousand....
Similarly, the applications running in curtained memory are going to stack up at an alarming rate once Longhorn and other platforms start to see pervasive digital rights management. As every bit of data being generated or passed from application to application is being tested against dozens of different filters, CPU time is going to go up in smoke, and it will be illegal to stop these activities from taking place in most countries.
Games and pr0n.
And pr0n games.
But I suspect people programming these things are still looking at them going "Well, if we just had a bit more power, we could do X, Y, and Z". UT2003, for example, has pretty much no interaction with anything other than a handful of objects - you can't blow up a wall, for example.
We have a long way to go before we can go for something that's virtually a complete simulation.
You are not alone. This is not normal. None of this is normal.
subject says it all
Anyone else notice how a system will pause when you put in a cdrom or format a floppy? This goes away when you have an SMP system. HT enabled p4's also remove this to some degree.
I'd like to see some typical performance on these types of activities, things that can "pause" a system for a couple seconds.
Loading websites with tons of thumbnails, searching hardrives with/without indexes (search pauses explorer). Programs that can Spike the CPU, use up all the buffer on a device, peg out virtual memory, freezes programs so you cant switch between them.
More multitasking benchmarks with responsiveness being goal. All benchmarks I see are geared around 1 app, how fast can you go, not how smooth can it go. This is why everyone is so interested in Linux kernel 2.4 MM patches or 2.6 low latency patches, to make the system smooth and responsive. People notice these "lags" in windows and linux.
Animated 3-dimensional paperclips, obviously.
Right now CGI is still expensive enough that most independents and hobbyists don't include it in their films. Affordable, rapid CGI could be a possible killer-ap for high-performance hardware. Currently, professional moviemakers must agonize over the creation of any CGI effect. It's a tedious process that involves using wire-frame animation, rendering and so on. If this process could be speeded up and simplifed, it might encourage more widespread adoption of CGI effects among hobbyists, giving them the ability to make movies they never could have before with their limited budgets.
Imagine being able to 'direct' a VR character almost as easily as you would direct a real life actor. When the technology gets to that level, we could see an explosion of new movies by people outside the Hollywood cookie cutter. Filmmakers with radicially new ideas who are too young to have developed a 'rep' in Hollywood could be creating some very professional looking films. Think of it this way: right now there are lots of people who write fanfics of their favorite movies or TV shows. But actually creating an episode of Star Trek, for example, is just not possible right now. With improved technology, perhaps these creative individuals might very well be able to make their own episodes, largely using CGI. Imagine taking a sci-fi movie that you like for the most part but hated the ending of. You load your CGI software with images of the main characters and battleships from the DVD and create CGI models of them. Now you can create a new ending that's more to your liking. Better yet, you can burn the new version of the movie with your ending (forget the "Director's Cut", this is "Mike's Cut") onto DVD and trade with your friends.
Right now we are all still pretty much at the mercy of Hollywood to make films that we like. Very soon, the balance of power will shift and creative individuals who have lots of ideas but budgets nowhere near those of studios will be able to create some very impressive looking films. And then Hollywood will have to get their ass in gear and show us something that we couldn't do ourselves in our own living room.
GMD
P.S.: Several people have mentioned that pornography has historically been a big driver of technology. Can you imagine that boom that the adult market will get when people can make their own adult films using CGI characters? Think plots of porn flicks are stupid? Wish for something better? Hell, just load your CGI software with images of Jenna Jameson and make your own film with her as the star.
watch this
What applications will drive the market? The same ones we have now, but written in python using bubblesort.
Well, maybe not bubblesort. But non-optimal algorithms, slow languages, and copying memory instead of passing a reference/pointer will increase.
That's not even a totally awful thing, because it means that the performance of already efficient applicatoins/languages/coders goes up as well. It also means that it's easier to start writing code without mastering TAOCP first.
So encourage your friends to write game engines in perl.
How about the extension of lazy coding, coding by automated consultant or AI coding?
Theoretically, code gets bigger as the interface gets easier (practically, it seems to just get bigger no matter the interface). As the coding interface is progressively automated, the code can theoretically get progressively larger.
Vision: in 10 years Google has given rise to Hackle, where you can write a simple request for any program and have it ready to download in 5 seconds. But the result is Huge.
Yow - I've got to lay off the Christmas cheer....
Processing power becomes very important at the two extremes of the Hertz chart :
.. ditto. Decrypting a message saying that Pearl Harbot is going to get bombed in 12 hours doesn't do us much good if it takes 14 hours to decrypt.
Things measured in units per second (ie, frames per second, transactions per second, connections per second) will always benefit by faster performance on a faster machine.
Things measured in many 10's of minutes (ie, an hour or more to process one transaction) will also benefit from a faster box. This would be cryptography, video compression codecs, and physics models.
When the transaction time is more than 1 minute but less than 10 minutes you really do not gain anything by increasing the performance of the machine (unless you can increase it to the point it runs in less than a minute. If you compile code on a computer that takes 7 minutes to compile it, buying a new computer that is twice as fast still has you compiling for 4 minutes. No real difference between the two, really, from a user's perspective.
When the transactions are measured in per second, the difference between 15fps and 30fps is the difference between unusable, and usable - particularly when we are talking about first person shooters. The difference between processing 150 visitors a second and 300 visitors a second is the difference between getting slashdotted and not.
When the transactions are measured in hours, being able to double the performance makes the difference in whether or not a particular transaction is even possible. Nightly backups are not particularly effective if they take 28 hours to process. Nightly runs of an accounting system
As long as we have applications that take more than an hour to run, and as long as we are measuring applications in X per second (frames per second in the range of 1 to 100, transactions per second of more than 1,000 and less than 50,000) - we will benefit by having faster computers.
Glonoinha the MebiByte Slayer
Most applications have a good chunk of code they execute on startup (generating lookup tables, building graphs, etc). As processors get faster, applications will slowly move toward performing these functions in an on-demand manner. This will decrease application startup time, which seems to be what most MS Office users and Internet Explorer users want to eliminate when they say "My computer is _so_ slow."
Almost forgot.
Any difference is performance that requires a stopwatch or a special timing demo application to measure - isn't a difference.
183fps = 200fps in Quake.
pc3200 RAM = pc2700 RAM = pc3500 RAM
28fps in UT2003 = 30fps in UT2003
specINT 93158 = specINT 96452
Pentium4 3.06GHz = Pentium4 3.2GHz = Pentium4 2.8GHz.
Until you are talking about performance games of roughly 300%, or one machine being 3x as fast as another machine - it isn't worth replacing the machine. It would be silly to replace a 486DX2-50 with a 486DX2-66, even though you would get a 30% boost in processor speed. You wouldn't replace a PII/300 with a PII/366 even though you would get a 20% boost in processing speed - they are effectively the same speed and you probably wouldn't notice the difference. Replace that PII/300 with a PIII/900 though, go 3x as fast, and all of a sudden you can see big differences and a major improvement. Same thing with replacing the PIII/900 with a P4/2.8GHz.
Glonoinha the MebiByte Slayer
A good example would be Palm-type devices. As big-processor speed increases, there is also an increase in small-processor speed and efficiency (limited more by heat than anything else). This has given people a smaller, more powerful Palm-type device today than they could have bought five years ago. Another example is the DVR/PVR. The new two-tuner satellite HDTV receiver/recorders can handle the receipt and recording of two high-definition streams while decoding and playing back a third - my ancient Showstopper (ReplayTV), on the other hand, starts to chug when encoding/saving an NTSC transmission (at highest quality) while watching another (I paid &700 for my 20-GB Showstopper back "in the day" while the new 250-GB HDTV units will go for $1,000 and come down from there).
It will be interesting to see how long non-PC devices take to catch up to current top PC speeds and what applications (especially portable, non-notebook apps) spring from that.
Language translations.
I recall seeing an algorithm that partially ignored traditional dictionary-type translations and relied more on a relational database. For example, rather than work word by word through a given sentence, it attempted to relate that sentence to other sentences and solve in that matter. If it sounds confusing, it's mostly because I read about it quite a while back, and really can't recall most of the details. A sentence such as "Comment Allez-Vous?" would literally translate as "how are you going", or something to that effect (Allez is the second-person plural of 'to go' in French), but is obviously more colloquially translated as "How's it going?" Rather than concern itself with the meanings of the individual words, this algorithm would know the meaning of that phrase and use it as sort-of guidelines for how an unkown phrase would translate. And I'm sure doing that properly, in realtime, with no errors would require a ludicrous amount of processor power and be ridiculously useful. Go ahead an couple that with the above-mentioned truly accurate voice recognition and you've got the legitimate workings of a device most would consider to be science fiction.
> Pornography, military, and gamers.
I wish I knew where this idea came from so I could debunk it properly. The
military I'll grant; war has always been a driving force of technology. The
other two I question. Games are driving new technology now, and have been
for thirty years or so, but historically that's a blip on the radar.
I would propose a different three things (well, two of them different): war,
communications, and entertainment. (If you like, you can group porn and games
under the umbrella of entertainment, but I believe other forms of entertainment
such as hunting and racing and even literature have been just as responsible
for driving technological development as games or porn.) Some would say space,
but that was really mostly driven by the miliary, especially at first. Some
also would say transportation, which is arguable, but I contend that usually
one form or another of communication was driving the development of newer and
better forms of transportation, at least until the last century or so. At
minimum, transportation and communication have fed off one another, as there's
little compelling reason to go somewhere if you don't have information about
that place.
Think about communications, though. Writing. Paper (both early forms such as
parchment and papyrus as well as modern paper). The printing press. Movable
type. Telegraph and phone lines. Radio. Ethernet. TCP/IP. These are the
technologies that really matter, the enabling technologies, the ones on which
everything else is based, the ones without which none of the others would have
happened.
These big three (war, communications, and entertainment) all also feed off one
another. Gunpowder was used in fireworks, later weapons. Rapid-loading guns
are only possible due to the self-contained cartridge, which is based on the
percussion cap developed for... hunting -- a sport, a kind of entertainment.
On the other hand, intercontinental communication was driven by better ships,
driven by naval needs, for the military -- war. And if you've ever seen Wag
the Dog, you'll either chuckle about the notion of entertainment driving war,
or shudder and nod, depending on your philosophical position. Either way, it
is difficult to argue that any one of these three have not been a major driving
force behind the development of technology.
Transportation, as I said, also is arguable. Gaming, in recent years, is true,
but I contend that fits under the broader category of entertainment. Maybe
I'm naive, but I can't think of any important technology that has been driven
to development by porn. Unless you want to say bandwidth, but I'd call that
communications, and anyway, I'd say that bandwidth has been driven to a larger
extent by games (entertainment) and shopping (entertainment), the military,
and, especially in the early years, plain old garden variety communications,
like email and usenet.
Cut that out, or I will ship you to Norilsk in a box.
A certain portion of mathematical research will require computers. The algorithms are hard, run for very long times, and use amazing amounts of memory. When used as a research tools to discover counterexamples or evaluating cases in proofs future mathematicians will use all the horsepower we can generate. Making a computer a useful tool for mathematical research is still an open problem.
To answer the question:"What Applications Will Drive System Performance?" Scientists and engineers need *raw* computing power. They need lots of RAM (and even more) and they need GHz, lots of them. They need fast GPUs for 0. Consider Computational Fluid Dynamics. Most problems today are calculated on off the shelf PC hardware. I know this for a fact. Today, you don't buy Indys or Sparcs anymore, they're much too expensive bang-for-bug wise. They're nothing but dead. People use dual Athlons with 3 Gigs or RAM to run their jobs, mostly one job per CPU, because parallel processing in most cases is not there yet (solving the Navier Stokes equations in parallel is still a major PITA). So in
short, those people will always buy the fastest PC stuff available, because for them it makes a huge difference whether a solution converges in two or in four days.
At my company, we do a lot of engineering design with solidworks and pro/e. For our needs, we don't need more raw power. Some of the engineers have graphics cards in the multikilobuck range, so an increase in power/$ would mean a lot to us. We also do a lot of science apps that involve analysis (= science version of photoshop) of tiff files that can be 200 - 500 Mb each. I can certainly envision needing to work with 50+ of these files at a time, say do a diff between file 1 Vs. file 2 - 50, and plot out the results. The cost of computers to handle these in real time (20 seconds) is prohibitive.