A question that pops up quite often when computer architects and representatives from firms like Intel encounter a crowd today is but just what do you need more computing power for????. Most regular users are fairly happy with the speed at which they process words, surf the web, read email, do IP phone calls, crunch numbers in Excel, and other common tasks. It is hard to perceive the need for more speed in everyday tasks, unlike a decade or two ago when you could definitely ask for improvement. I remember scrolling a page in PageMaker on a Mac SE (8Mhz 68000). You counted the clicks and waited for the screen to jump, redraw, jump, redraw, stabilize… quite a different experience from working with modern computers and far more complex software that still responds instantaneously to almost any work.
The video compression I have been doing lately for my iPod Nano with Video is a very good example in several ways.
- It is a classic batch job that can run in parallel to other work, without user interaction.
- It is CPU-intense and not particularly IO-intense, so it would not disturb other tasks that access the disk too much. On a single-core machine like my current desktop, doing video encoding even at low process priorities (Windows platform) makes everything else unresponsive and pretty much unusable. Leading to issues for other members of the family. Shunting it off on a second core would make perfect sense (unless shared L2 cache issues appear), in principle letting video work go on while we use the computer for other things.
- It could parallelize easily to a few threads/cores by splitting video files up in chunks for encoding. Or encoding several separate videos in parallel.
- It is a type of computation that is known to like SIMD and other high-instruction-level parallel types of architectures. The Pentium 4 architecture was built for this.
- It takes long enough to do that a speed-up above 25% is readily noticeable and appreciated by the user. Cutting one hour from a ten-hour job is much more appreciated than cutting one second from a ten-second job.
Note that before I tried coding things this hard I felt that the three-year old PC was amply fast for “video” work, when video meant editing DV-quality video to create DVD movies of family events for friends and family. That was all responsive enough, but I guess H-264 requires much more work on coding end than MPEG-2.