On Thursday, February 6, 2003, at 10:49 PM, Brooks Graham wrote: > > On Thursday, February 6, 2003, at 09:10 PM, Arturo Pérez wrote: >> >> In reality, even under OSX, no one codes multi-threaded apps except a >> few games and photoshop. (Someone needs to keep a catalog of those). >> In this case, the advantage of duals is that you can run 2 seriously >> CPU hogging apps at once. > > I'd like to submit a dissenting opinion. (OS X-only. I have no > experience with OS 1-9) > > In Unix, there are many processes running at the same time, no matter > what you're doing. The display service, which shows up as "Window > Manager" in 'top', is a distinct process that gets its own scheduled > CPU allotment. So, that said, even a single program/process that has > only a single thread, will benefit from a SMP (multi-processor) system > if it draws anything to the screen. There's an "unless." I don't know if Apple's window system lets applications write directly to the screen (X11 does not). I think 3D games/OpenGL can. In that case, unless the application is threaded the second processor doesn't help much. > "Window Manager" on my system has two active threads (at the > moment). What I'm trying to say here is that Unix itself will utilize > multiple processors if they are present to schedule processes and > threads. And there's *always* something that needs CPU time. Maybe > not a lot of CPU time, but the more CPUs you have, the more that can > happen in parallel. Actually, you've hit the nail on the head. That is the #1 reason (to me) for having a dual. It will make the "user experience" MUCH smoother. > > So, under OS X, you don't need "special applications" that are coded > to be "SMP-aware" to benefit from multiple processors. All programs > under OS X can and will benefit from SMP. Well, it depends on what you mean by "benefit" but sure. > Notice that the top line shows "129 threads" but what interests me > more is looking at specific apps here: > > Dreamweaver has 5 threads. (column "#TH") Lot's of opportunity for > parallelism > Mail has 5 as well. > and so on. > It depends on what those threads are doing. Recently I read a discussion saying that all OSX apps have two threads: one for sound and one for UI. If that is true, unless you're musically inclined, the second processor is not helping. Another issue is that threads are often used to support asynchronous I/O (like network communication). In that case the threads don't ever help because you're really waiting for the disk or network. A better way of figuring how much a second processor will help is to use ps instead of top. What matters is whether you consistently have more than one process in the "runnable" state. That means it's waiting for the CPU (or has the CPU; i.e. actually running). That's denoted by the R under the STAT column when you do a ps -aux On a single processor you'll usually see that only the ps is in the R state. Hopefully we're not boring the rest of you to death.