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. "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. 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. Here's output from 'top' on my Cube: (sorry if your mailreader does something funky with the font. a fixed-width font will make it look right) [the command is: top -u -s 10 ] Processes: 61 total, 2 running, 59 sleeping... 129 threads 21:24:22 Load Avg: 0.25, 0.43, 0.31 CPU usage: 20.4% user, 6.1% sys, 73.5% idle SharedLibs: num = 127, resident = 35.8M code, 3.23M data, 10.2M LinkEdit MemRegions: num = 4215, resident = 72.0M + 10.4M private, 121M shared PhysMem: 105M wired, 246M active, 757M inactive, 1.08G used, 173M free VM: 1.95G + 75.6M 21764(0) pageins, 2200(0) pageouts PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE 2087 Dreamweave 10.5% 0:21.70 5 80 470 28.4M 39.8M 48.9M 133M 2050 Mail 6.6% 1:45.69 5 147 237 8.20M+ 20.1M 14.1M+ 83.9M 1998 Window Man 5.1% 8:40.58 2 225 318 6.79M+ 32.8M- 37.7M+ 76.9M+ 179 ATSServer 1.1% 21:17.49 2 56 186 880K 8.25M 4.89M 49.2M 2027 top 0.8% 3:31.06 1 14 18 252K 380K 352K 13.6M 0 kernel_tas 0.7% 43:26.25 26 0 - - - 89.3M- 520M- 2013 Nikon View 0.5% 1:27.72 1 47 86 616K 6.64M 2.24M 59.8M 2024 Terminal 0.3% 0:51.64 3 61 172 1.26M+ 11.5M 6.04M 67.1M 2006 Dock 0.1% 0:12.67 2 101 149 1.52M 15.4M 9.56M+ 70.7M 1544 RetroRun 0.0% 0:27.83 1 11 25 256K 1.90M 108K 15.1M 2016 MagicMenuH 0.0% 0:00.60 1 41 75 432K 2.36M 1.43M 53.1M 350 cupsd 0.0% 1:14.20 1 8 68 1.64M 808K 2.20M 4.44M 71 update 0.0% 0:59.98 1 7 13 48K 344K 104K 1.26M 110 configd 0.0% 0:43.06 3 113 135 472K 1.22M 1.55M 15.9M 431 slpd 0.0% 0:34.16 8 51 31 192K 548K 604K 17.8M [Cube:~] brooks% 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. Now here's a disclaimer: my knowledge of Unix internals is very deep for Solaris and HP-UX (both of the AT&T SystemV flavor) but I'm assuming that the NeXTstep, er, um, OS X scheduler is similar. But then again, you know what happens when you assume ... ;-) HTH -brooks