[Ti] slightly OT: which apps dual-processor aware?
Ronald Woodland
woodland at infowest.com
Wed Apr 13 07:55:23 PDT 2005
Now that was an education. The scary part is that I almost really
understood what you were taking about. I do a lot of 3D
modeling/rendering, as well as video editing. I have seen the load hit
100% on BOTH CPUs during rendering. That's when I notice the mouse
clicks into other apps or to check my e-mail aren't as responsive --
yet it still works while the rendering proceeds in the background. But
no worries, I'd rather it get the rendering done, so I typically leave
the machine alone in those times of high demand. Man, I love my Mac!
Ron Woodland
On Apr 12, 2005, at 11:22 PM, Chris Olson wrote:
On Apr 12, 2005, at 9:35 PM, Ronald Woodland wrote:
> I have yet to see one of the CPUs idle while the other one is working.
> The numbers move around and often bounce back and forth as the
> workload is distributed. Dual processors working in beautiful
> cooperation with the robustly stable and fluid Mac OS -- it gives me
> goosebumps just thinking about it.
The Mach kernel does the thread scheduling for the cpu(s). Mach does a
very good job at SMP - it was designed for it. Both Carbon and Cocoa
applications can be multithreaded but Carbon will use Multiprocessing
Services (as in Mac OS 9). Cocoa uses the NSThread class with
NSThread's detachNewThreadSelector:toTarget:withObject
Some applications like Safari will throttle the threads if one requires
the other to be at a certain point before continuing by using condition
locks (NSConditionLock). But if an app uses a lot of condition locks
or passes many objects and messages between threads, application
performance can suffer. Safari, by design, does not benefit from dual
processors. Neither does Mail, Sherlock, iCal, Finder, and most other
every day applications and utilities. Only cpu-intensive tasks and
applications really take full advantage of it. Because of OS X's
pre-emptive multithreading capability, along with the Mach kernel's
capability to schedule and switch threads many times per second on one
cpu, you just don't notice the difference until the total system load
on one cpu reaches 100% cpu time.
--
More information about the Titanium
mailing list