Let the flaming begin... addendum

Damn, Slashdot picked this story up and ran with it along with most of the Mac news sites and a whole slew of PC ones. This is at least the 2nd revision of the story, and I don't remember the first getting picked up as readily in the Windows camps... perhaps it's a slow news day. Either way it's really, really bad press for Apple... the only saving grace being that AMD machines weren't included, which in benchmarks I've seen will often beat the P4 on some of the tests by a large margin.

Generally, the comments (both on slashdot and around the web) break down into (paraphrased):

"The tests are loaded against the Mac, because a lot of the apps used don't take advantage of the Mac's dual processors or aren't very optimized for Altivec. So it's a biased, worthless benchmark and not indicative of the mac's speed."

First of all, just be glad the machine in question wasn't a dually-xeon or athlon but rather a single P4.

That said, lets look at the dual processor issue first: The thought here is that the PC is uni-processor, while the mac has two processors, yet for an app to really take advantage of 2 processors it has to be specifically written to do so (threading). This means that you split what your app does into different threads, each of which gets worked on by one of the processors.

For example, if you had a 3D rendering app, one thread (thread A) might handle the interface (where you point and click and stuff gets displayed to the screen) while the other (thread B) might be doing the actual calculations of your 3D model. If it was a single processor machine, thread A might be taking up 10% of your CPU time while thread B takes up 90% of your CPU. If you move to a dually machine, thread A goes to its own processor, leaving thread B to the first... giving you a speedup of ~10%. You wouldn't get quite that much, but I'm trying to keep it simple. Your real gains would be in somehow splitting thread B into separate threads, for example taking each frame that has to be rendered and putting that onto its own processor. Then the speedup might be very dramatic indeed.

However this often either isn't very easily accomplished, due to the calculations that have to be performed not being easily "split" or the time spent to code it not being considered to be cost efficient. For example, many Photoshop/Image filters just can't be split up easily into multiple actions just because of how they work, needing to the the image in its entirety.

Most applications in general just don't take advantage of dual processors, and that's just the way it is- your apps are not magically twice as fast by having them.

Now, the Altivec side of the equation is that the Mac has this really nice SIMD tacked onto its processors which allows it to run certain types of code very, very quickly. SIMD means single instruction, multiple data. The limitations are basically that you don't need double-precision numbers, that you spend the time to write the code, and that the computation you need to do would benefit from SIMD in the first place. If you have something you need to do that is basically calculating the exact same thing in a loop over different data (often pixels) it can be dramatic.

But often it's not, or the limitations of how Altivec works don't make it "precise" enough for the purpose at hand. So in many cases the apps in question just might not be able to use Altivec because it doesn't meet their needs, or they've made the decision that they don't want to put the effort into maintaining different code bases for specific functions. Ie, not all your users may have a G4 processor, so you would have to have multiple code bases just for the mac... and when you might already have two code bases (PC + Mac) you want to keep it as simple as possible.

Don't get me wrong, I really dig dual processor machines... because while multi-tasking and using multiple apps it just makes the whole experience smoother. But they aren't a panacea, and sometimes you just need a really fast processor, not two sort of fast processors. I'm the same way about altivec- it's great if you can use it, but in many cases it either isn't appropriate or the time a developer would need to spend optimizing for it can't be justified for the gains they'd get.

And the bottom line is that this type of benchmark isn't SPEC2000 or something that just measures CPU speed or memory bandwidth: it measures how fast these apps will run on either platform. And if you use those apps for a living, that is a big deal.

"Both platforms are fast enough for anything you might want to do, so which system you use depends on the environment you prefer."

Nyet. You might interpret this from the examples shown, which might be 1:30 vs 1:60, or 1 minute versus two minutes, but you'd be guilty of not seeing the forest for the trees.

For example, if you have a specific function that takes 0.25 seconds on one platform, and 0.5 seconds on another platform, the difference to the user, while 50% slower, won't be a big deal unless you have to do the operation over and over and over.

If you took the same example, but with a much bigger starting point, lets say 10 hours, the first would finish in 5 hours. That's a big deal, and in many cases for those doing video they are dealing times of 1 hour or even 30+.

You can even see this from within something like photoshop... if you're just doing some 72dpi web graphics the difference wouldn't be that pronounced. Start applying massive filters on layered 800 megabyte files in the print world and you'll see it. And before I get "800 megs? What a joke.", it isn't a joke- I used to routinely work with 160-300 meg scans, and know others who work with more every day.

"This is retaliation against Apple for Final Cut Pro."

The thought here is that Adobe is getting into some trouble in some of their core areas, and one of the trouble makers is Apple themselves, and this is their way of pushing back a bit. Back in the day, the mac (or turn-key systems, such as Avids or SGI's) were the machines to use for video editing, and adobe's premiere was the major app along with after effects. WindowsNT went a long way into eating into that market as Apple didn't have a competitive OS at the time, to the point where it's fairly evenly split.

Apple, with Final Cut Pro has gone a long way into destroying premiere as a video editing solution on the Mac, and with Final Cut Express, Apple is eating into any low-end left. In all honesty, I barely even hear Premiere mentioned anymore. It's all Final Cut Pro, or Final Cut Pro + After Effects which is still a big app, but with Apple's purchase of Shake even that market might be going away.

So on the mac, Adobe's video products are endangered due to other offerings, but it isn't so dire on the PC side of the camp, hence they are "pushing" users of their software over to it as Final Cut Pro and other Apple apps only run on Apple's machines.

In all honesty, I'd have to believe that Adobe (and many other developers) would love to see the Mac just die away in some ways: both because Apple makes it a bit difficult when they are competing directly against you, and that having one OS to develop for and support (windows) makes things a lot easier.

"Anyone who isn't living under a technological rock or RDF field knows that PC's have surpassed macs in raw speed for most types of computations quite a bit ago, and this type of thing only nails it home. I hope it pushes Apple to either do something drastic to even the disparity or surpass it sooner rather than later."

Hard to find any fault in that one.

yummy alcohol posted button Posted by drunkenbatman
    March 26, 2003, at 05:09 PM


Comments (0)




Post a comment



Anonymous comments are allowed, but please enter something for a name.

And do endeavor to appear sane.









Remember personal info?