The Apple Core

Jason D. O'Grady & David Morgenstern

Speedtest: 8-core vs. 4-core Mac Pro shootout

By | May 12, 2010, 9:05am PDT

Summary: A speed test recently posted on Lloyd Chambers’ Mac Performance Guide for Digital Photographers & Performance Addicts site compares an 8-core Mac Pro Nehalem 2.93GHz with a 4-core model running a faster 3.3-GHz processors. More is better, right? The results show that a serious gating factor for performance is in the software, not the hardware.

A speed test recently posted on Lloyd Chambers’ Mac Performance Guide for Digital Photographers & Performance Addicts site compares an 8-core Mac Pro Nehalem 2.93GHz with a 4-core model running a faster 3.3-GHz processors. More is better, right? The results show that a serious gating factor for performance is in the software, not the hardware.

Chambers says that software engineering matters. For example, only one of the Camera RAW  converters tested – Phase One’s CaptureONE 5 Pro — showed speed gains with the 8-core machine. While it didn’t take advantage of all the processor’s CPU power, it made better use of the extra cores, he said. Other conversion utilities were slower, such as Adobe Lightroon 2.7.

Most of the programs use multiple threads, but with disappointing efficiency; they just do not scale beyond a few threads. The inefficiency is not related to disk I/O, both by observation as well as having these tests run on the fastest possible internal disk setup.

This lack of attention to efficiency is an engineering stupidity in today’s market of multi-core computers where time is money for many professionals.

In the photo editing contest, only BenVista’s Photozoom Pro 3.0.10 offered a speed gain with the 8-core processor. The software works stand-alone as well as a Automation plug-in and export plug-in for Adobe Photoshop.

However, the architectural advantage of the 8-core machine becomes apparent  for Photoshop when you throw RAM at it. The 8-core Mac Pro can handle 64GB of RAM.

Check out the report, it’s very interesting reading.

In addition, Chambers suggests that digital photographers and professionals interested in buying a Mac Pro consider a refurbished machine. He offers a guide on the topic. However, few of the 4-core 3.3-GHz models become available.

Kick off your day with ZDNet's daily e-mail newsletter. It's the freshest tech news and opinion, served hot. Get it.

Topics

David Morgenstern has covered the Mac market and other technology segments for 20 years.

Disclosure

David Morgenstern

Freelance journalist/blogger David Morgenstern has nothing to disclose.

Biography

David Morgenstern

David Morgenstern has covered the Mac market and other technology segments for 20 years. In the recent past, he founded Ziff-Davis' Storage Supersite, served as news editor for Ziff Davis Internet and held several executive editorial positions at eWEEK. In the 1990s, David was editor of Ziff Davis' award-winning MacWEEK news publication as well as its successor title, eMediaWEEKly, which focused on multiplatform professional content creation. His byline can be found online and in print publications including CreativePro.com, Peachpit Press' Mac Bible and Popular Photography.

69
Comments

Join the conversation!

Just In

Sorry, just because it's POSIX doesn't make it UNIX.
AzuMao 16th Jun 2010
Even Windows has a POSIX compliant subsystem. Are you going to call Windows UNIX too? Get real.
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
Feldwebel Wolfenstool 12th May 2010
@RationalGuy You want to control it? Maybe you should sweat to make it, instead. See ya.
0 Votes
+ -
@Feldwebel Wolfenstool

No, I don't want to control it. I want software companies to write good software. These days that means being multicore optimized.
0 Votes
+ -
What good is hardware capability when the software can't adapt to it? Just more proof of laziness by software developers.

Someone needs to set the standard, and I really don't think Adobe is going to be the one.
0 Votes
+ -
@vulpine@...
You make it sound like a software developer can snap his fingers and the software can magically take advantage of 8 cores. Really are you that naive?

And how do developers code for 8 cores if there were no 8 core machines for them to develop on? Do they pretend there are 8 core machines on their desk?

And how do they develop for multi cores if the tools to allow them to devleop for multi cores are practically brand new?

Hardware always always lead software for precisely the reasons I listed. New computers always come out ahead of software. Once the software catches up to the hardware, that means the hardware is becoming obsolete.

You are proof of management types who know little to nothing about technology development and should really just stay in your office while the IT staff gets real work done.
0 Votes
+ -
Stop yer bitching
godsfault 13th May 2010
and do yer job. Now. And be quick about it.

I've always left the "real work" to others; it's easier that way.
If it wouldn't take any effort to make something better (as in your example), but they still refused to, that would be a deliberate act of maliciousness, not laziness as vulpine said.

Laziness implies that it would take time and effort.

And they would do it the same way they'd do it if they did have 8 core machines to develop on.. by making slow parts scalable, as in checking at startup how many cores are available and creating that many threads/forks (or more if blocking operations are performed)..

You are proof that armchair flamers should stay off ZDNet.
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 13th May 2010
@rengek

Sorry, but you are just plain wrong. This is clear even if you don't understand the software development process, simply by observing that two products DID manage to take advantage of the extra cores.

"And how do developers code for 8 cores if there were no 8 core machines for them to develop on?"

Um, by using algorithms and compilers that allow for multi threaded code. You do not need 8 cores to write for 8 cores. You just have to make your code as multiple-thread capable as the algorithm allows.

"And how do they develop for multi cores if the tools to allow them to devleop for multi cores are practically brand new?"

How are they brand new? The dual processors Mac G4 came out over 10 years ago, with thread-aware versions of XCode available simultaneously. The CoreDuo machines have been around for about 5.

"You are proof of management types who know little to nothing about technology development and should really just stay in your office while the IT staff gets real work done."

And what is your misinformed post proof of?
0 Votes
+ -
Hooked on phonics
DeusExMachina Updated - 18th May 2010
@Azumao:

Um, how did YOU get from:
"There is no need for an application to check how many cores a given machine is running."

to:
"the developer must know ahead of time how many cores the client will have?"

Who said anything about the developer? Spawning threads is an OS governed thing. It does not need to happen at the application layer (unless you have a crappy OS.)

(And if you are going to criticize someone's English skill, better check your own
0 Votes
+ -
would help you a lot.
AzuMao 18th May 2010
I pointed you how wrong rengek was in saying that developer's need computers with 8 cores to make programs that scale up to 8 cores, and you responded with saying the OS handles threads so that the developer doesn't have to do.. which was equally wrong! An OS is meant to run programs as-are, not magically turn single-threaded programs into multi-threaded ones. The developer doesn't need to have an 8 core machine to make an 8 threaded program because he could make it spawn as many threads as there are cores at run time.. for whichever parts of it scale well..
0 Votes
+ -
@azumao

For the record, that is not how multithreading works. It makes no difference how many cores you have, and there is no need to check on startup how many are available. Assigning of threads is dealt with at the OS layer, not the application layer.
I know that schedulers put single threaded processes on separate cores, but that's not what we were talking about at all.
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 15th May 2010
@Azumao
In neither case is is necessary for the application developer to know how many cores are running in a given machine. It just does not work that way. You're just wrong.
..which is completely wrong.


"For the record, that is not how multithreading works. It makes no difference how many cores you have, and there is no need to check on startup how many are available. Assigning of threads is dealt with at the OS layer, not the application layer."
0 Votes
+ -
Yes, you did
DeusExMachina Updated - 18th May 2010
@Azumao

"And they would do it the same way they'd do it if they did have 8 core machines to develop on.. by making slow parts scalable, as in checking at startup how many cores are available and creating that many threads/forks "

There is no need for an application to check how many cores a given machine is running.
How did you get from the program should be made to detect at startup how many cores are available and spawn that many threads to the developer must know ahead of time how many cores the client will have?
0 Votes
+ -
@vulpine@... Logically, it's laziness if developers haven't figured out multi-core processors by now. We've had duo-cored processors for more than 3 years, quad-core for almost as long and even 8-core is at least 2 years old. Simply put, if you can code for 2, you can code for 4, 8, 16, 32, etc... In fact, some of the world's fastest supercomputers run a thousand cores or more, effectively. Why? Because they're not running Windows, but rather one or another flavor of UNIX.
I still call it laziness when you have to rely on middleware to code an application. I admit I'm lazy; but I don't code, I use. I leave the coding to people who know how.
GNU/Linux's Not UNIX!
  • Flagged
0 Votes
+ -
@Azumao

WTF are you talking about? OSX is NOT GNU, nor is it Linux.
It is an OFFICIALLY certified, POSIX-compliant UNIX.

Wrong, much?
  • Flagged
0 Votes
+ -
@Azumao@...
Change the subject much?

This is about Unix. OSX is Unix. You were saying?
  • Flagged
..CPU manufacturers ship out CPUs where one or more core didn't pass specs with those cores disabled, resulting in other numbers such as 3. And he mentioned another form of UNIX, which Linux was originally based directly on.. where as OSX is based on a variant (Mach) of a variant (BSD).
  • Flagged
0 Votes
+ -
@azumao

Wow, you're really dead set on being wrong, aren't you?
No, what you said was the developer can write for 8 cores by having the application check at launch how many cores there are, and spawn that many threads.
Again, THAT IS NOT HOW IT WORKS.
Yes, a developer needs to write code to be multiple thread capable, but they do NOT need to know how many cores they have at their disposal. This is handled by the OS, with threads handed to cores as they are available. To be clear, just because a machine has 8 cores does NOT mean all 8 will be available to an application, and just because a given number may be available at time x in the execution lifecycle does NOT mean that same number will be available at time y. This is why threads are handled by the OS. A good developer writes applications that can spawn as many threads as is mathematically feasible based on logical dependencies, NOT on the number of cores available. You just don't know what you are talking about.

"An OS is meant to run programs as-are, not magically turn single-threaded programs into multi-threaded ones."

This is a TOTALLY separate matter, and has nothing to do with what I said. But that having been said, who says? While not perfect, OSX does a decent job of splitting single-threaded tasks among available processors. But again, this has nothing to do with this discussion.

"The developer doesn't need to have an 8 core machine to make an 8 threaded program"

The application doesn't need to be on an 8-core MACHINE to run in 8 threads. The number of threads has little correlation to the number of processors. Programs with dozens of threads run happily on core duos. You are equating topics that are not related to one another.
0 Votes
+ -
@azumao

You really do like having no idea what you are talking about, don't you?

"..CPU manufacturers ship out CPUs where one or more core didn't pass specs with those cores disabled, resulting in other numbers such as 3."

Being that I CLEARLY wasn't addressing that part of your posts, why are you bringing it up?

"And he mentioned another form of UNIX, which Linux was originally based directly on.. where as OSX is based on a variant (Mach) of a variant (BSD)."

1) Mach is NOT a variant of BSD, they are two different things.
2) Mach is a microkernel architecture developed a few blocks from my old house, and a few more from my current one. BSD it the Berkely Standard Distribution. Distribution of what, you say? UNIX!!!
3) OSX uses both the Mach kernel AND BSD, depending on the task. And one more time, BSD IS UNIX. Linux is not.
4) Linux is based on AT&T SysV Unix. With one exception, however, it has not passed POSIX compliance. It therefore is NOT UNIX
5) OSX DID pass POSIX; therefore OSX IS UNIX.

So you were basically right on nothing.

Linux is NOT Unix, Mach is NOT BSD, BSD is UNIX, and so is OSX.
  • Flagged
(Open)Solaris, at least. I guess OSX is just really weird under the hood.


And I didn't say you couldn't have more threads than cores. I said that unless some of those threads are blocked there's no need to. You'll just be making extra necessary context switches if you spawn any more than that, so don't go making one for every little thing, just what is scalable, like I said..
  • Flagged
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 20th May 2010
@azumao
"Oops. My bad. Well it's how it's done on Windows, Linux, the BSD*s and..
(Open)Solaris, at least."

Um, no it's not. You appear to be confusing processes with threads, which are not the same thing, but even then, again, you are wrong.

"And I didn't say you couldn't have more threads than cores. I said that unless some of those threads are blocked there's no need to."

That just simply isn't true. Since there is no reason to have one thread per core (and in fact, this is rarely the case) and would lead to multiple wait states and wasted CPU resources, doing so makes no sense
Again, you are confusing threads with processes.

"You'll just be making extra necessary context switches if you spawn any more than that, so don't go making one for every little thing, just what is scalable, like I said.."

Again, confusing threads and processes. Well, at least with Windows. Windows has expensive processes, but relatively cheap threads. This is in contrast to most other OSes, where there is little difference other than the cost of the address space switch and the translation lookaside buffer flush. All of this is done in hardware by the OS.

But again, this is about threads not processes.

And being that modern processors utilize simultaneous multithreading, trying to code for one thread per core is not only a waste of time, it is outright stupid.

Oh, and nice job ignoring the other topics you were wrong about, like OSX, BSD, Unix, etc..
0 Votes
+ -
On all proper operating systems threads are handled by programs using functions like CreateThread and pthread_create. Manually. Most OSs can't just magically figure out how to make your application threaded for you. Again, maybe this isn't the case with OSX, but it is with all others.
  • Flagged
0 Votes
+ -
@Azumao
First, again, good job cherry picking the questions. What were you saying about BSD and Mach?
Second, again, you are just plain wrong, The issue is not who spawns threads, the issue is how they are assigned to processors. This is NOT handled by the Application. It is handled by the OS. As such, the developer has NO need to check on launch how many cores are available.
  • Flagged
..reverses the binary of every program runs, heuristically scans them for things that're parallelizable, and puts branches to some code cave that spawns additional threads and handles all that?

Because if so, that's a very magical OS indeed.

In the real world, though, there has to be something in the program (generally put there by whoever wrote the program) telling it to make additional threads or it won't..
  • Flagged
0 Votes
+ -
@azumao
No. Pay attention. Your claim is that the developer needs code that ckecks how many processors are running, and spawns threads accordingly. This is just not so. The application (well, more likely the compiler) threads the algorithm to the point possible given the mathematical constraints. The OS then assigns these threads to available processors as they are available, THere are not two threads on core 2 duos, and 4 on quads. Multiple threads can run on single cores. Again, the OS takes charge of assigning processors to tasks, NOT the application.
Your claim that the application checks on number of cores at launch and somehow magically spawns the right number for that configuration is just NOT what happens.

Now, what were you saying about BSD and Mach?
..of efficiency due to increased context switching, as I already mentioned a while back. Looks like you're the one lacking attention.
0 Votes
+ -
@azumao
What was that about BSD and Mach?

If it were not already abundantly clear, your last post has made it readily apparent that you are confusing threads with processes. All threads within the same process share state, so there is no need for context switching.
  • Flagged
..whatever crazy nonexistent version of OSX you played with.

Also, you're demonstrating immense lack of understanding here. Just quit already. A process generally must have at least one thread, and as such, is subject to context switching, yes, but so are multiple threads within a process. The CPU can't just blindly execute instructions from different parts of the program and share the stack and register.. all state must be saved and managed for each thread..
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 25th May 2010
@Azumao.

You have yet to educate me on anything. Certainly not in the use of pronouns. But let's examine your English:

"Nobody said anything about Mach being BSD."

Yes, you did.

"where as OSX is based on a variant (Mach) of a variant (BSD)."

a variant of a variant means that item A is a variant of B. Mach is NOT a variant of BSD.

"You, however, made the erroneous statement of "OSX IS UNIX", which I corrected you on."

First, no, you never addressed that, second, OSX IS UNIX. What part of POSIX compliant, fully-certified do you not get?!? To be more specific, you poor, little troll:
1) Dennis Ritchie, the prime developer of the original UNIX is on record that ALL UNIX like OSes deserve to cary the name.
2) With official BSD designation, and now POSIX, OSX is fully UNIX compliant. But most importantly, and pay attention now, you micro-encephalic, bridge-toll taker:

3) You are not the final arbiter. There is only ONE official body that can grant POSIX certification. One, that is the Open Group. A consortium of commercial and government interests, including Sun, HP, the US Defense Department, NASA, and others, The Open Group is the owner of the Unix trademark. There is one and only one entity that can confer the official Unix designation. The Single UNIX Specification is the set of specifications and standards maintained by the Austin Group, that determines if an OS officially qualifies for the use of the name Unix.
In 2007, they granted OSX official UNIX-03 certification. Argue with this, jackass:
http://www.opengroup.org/openbrand/certificates/1190p.pdf
http://www.opengroup.org/openbrand/register/brand3555.htm
and
http://en.wikipedia.org/wiki/Single_UNIX_Specification#Mac_OS_X_and_Mac_OS_X_Server

Deny that.
  • Flagged
@DeusExMachina
..yet GNU's Not UNIX.

UNIX-like != UNIX
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 26th May 2010
@Azumao
"..yet GNU's Not UNIX.

UNIX-like != UNIX"

NO.
Thanks for confirming your ignorance. Read the freaking links.

Unix-like, in the Austin Group parlance IS Unix. That said, OSX is NOT Unix-like in the colloquial definition that you are using. OSX is a fully POSIX certified, fully compliant Unix. It is POSIX certified by The Open Group, and authorized as Unix by the Austin Group. As I have already said, The Austin Group is the FINAL ARBITER of who gets to be officially called UNIX. OSX was fully Unix-certified in 2007. You are just wrong. Again.

http://www.opengroup.org/openbrand/certificates/1190p.pdf
http://www.opengroup.org/openbrand/register/brand3555.htm
and
http://en.wikipedia.org/wiki/Single_UNIX_Specification#Mac_OS_X_and_Mac_OS_X_Server

Since you seem to be being confused by the terminology, The Austin Group does not use the term Unix-like in the same way as the general tech press. All Unix-certified systems are registered as Unix-like. There is no higher level of certification. All true Unix systems are certified as Unix-like. SUS certificaton MEANS Unix-like. The issue is the Unix level.

"Marks for compliant systems
There are two official marks for conforming systems
UNIX 98 - the mark for systems conforming to version 2 of the SUS (partial compliance)

UNIX 03 - the mark for systems conforming to version 3 of the SUS (full compliance)"

As you can see from the links, OSX is a FULLY-CERTIFIED, Unix-03 system. Or are you claiming AIX, HP/UX, Solaris, SCO Unixware, True64 Unix, and IBM's xOS are not true Unix. What, pray tell, are you claiming IS a true Unix?!?

Again, your superficial understanding, and in-depth ignorance have tripped you up.
  • Flagged
UNIX is open source, and according to you OSX is UNIX, so according to you OSX is open source.. so how do I get the source? Is there a subversion or git repository? A Sourceforge or Google code page? Do I just download it as a big tar from their website?

Also, if GNU/Linux isn't POSIX-compliant, why is it based around POSIX functions like pthread_create (which, by the way, would crash your program if thread context wasn't preserved.. you suddenly started ignoring this so I'm guessing it sank in that you're wrong.)
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 26th May 2010
@Azumao
"Then dispel my ignorance by telling me how to get OSX's source code."

Or about any number of other things! To wit:

"UNIX is open source"

Um, WHAT?!? WTF are you talking about?!? Unix is NOT open source! Where on earth did you get THAT idea?!?
The specification is open, Unix itself anything but.
http://www.unix.org/what_is_unix.html

Seriously, guy, you have no idea what you're talking about!

"... and according to you OSX is UNIX, so according to you OSX is open source..[sic]"

Logic invalidated by the rejection of the key premise.

That said, key portions, including the kernel ARE open source.

"so how do I get the source? Is there a subversion or git repository? A Sourceforge or Google code page? Do I just download it as a big tar from their website?"

If you really want the key code, you are welcome to the d/l from the PureDarwin site.
http://en.wikipedia.org/wiki/Darwin_(operating_system)
http://www.puredarwin.org/

"Also, if GNU/Linux isn't POSIX-compliant, why is it based around POSIX functions like pthread_create (which, by the way, would crash your program if thread context wasn't preserved.. you suddenly started ignoring this so I'm guessing it sank in that you're wrong.)"

I did not start ignoring it, it was already addressed. You are confusing processes with threads within that process. Nor would a properly written program crash if it lost context. Are you claiming there is NO way to error trap that?
Anyway, your logic, as usual, is fatally flawed. Just because an OS is based around POSIX functions does not mean it is fully POSIX compliant. As in Linux, which is not. There are several places where most Linuxes deviate from POSIX standards. Don't argue with me about it, argue with The Open Group. It is they that will not grant the Linuxes POSIX certification.
http://en.wikipedia.org/wiki/Posix#Mostly_POSIX-compliant
Claim otherwise? Please post links to show any Linux system that has achieved POSIX compliance. (There is one, I believe)
Now as to both these claims together (pthreads and POSIX) funny you should bring that up. Now pay attention.
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html

Therefrom:
Threads require less overhead than "forking" or spawning a new process because the system does not initialize a new system virtual memory space and environment for the process."

I.e. exactly what I was saying, and contrary to your claims about threads v processes.

Further:
"While most effective on a multiprocessor system, gains are also found on uniprocessor systems which exploit latency in I/O and other system functions which may halt process execution. (One thread may execute while another is waiting for I/O or some other system latency.)"
and further:
" All threads within a process share the same address space."

I.e., there are advantages to threads of number greater than the number of processors. There is NO need for the application to determine number of processors. Threads are assigned by the OS, NOT the application. They are spawned by the application, and assigned in the most efficient manner to individual processors based on current, dynamic conditions. Thus multi-threaded software enjoys advantages, even on single-core systems.
  • Flagged
'Or about any number of other things! To wit:

"UNIX is open source"

Um, WHAT?!? WTF are you talking about?!? Unix is NOT open source! Where on earth did you get THAT idea?!?
The specification is open, Unix itself anything but.
http://www.unix.org/what_is_unix.html

Seriously, guy, you have no idea what you're talking about!
'

..source. Thanks for clearing up that misconception.

That said, key portions, including the kernel ARE open source.

Why would anyone want their kernel? What's needed for application compatibility is their libraries, like Cocoa and such.

I did not start ignoring it, it was already addressed. You are confusing processes with threads within that process. Nor would a properly written program crash if it lost context. Are you claiming there is NO way to error trap that?

Again, I ask, where is your code? I want to see something tangible that will work even if ESP/RSP gets corrupted at any point without warning. If you're going to challenge common sense you need something more to back it up than repeated assertion to the contrary.
0 Votes
+ -
@azumao
Again, the lack of understanding is on your part. CLEARLY.
And what was that about Mach being BSD?
0 Votes
+ -
" Again, the lack of understanding is on your part. CLEARLY. "

Looks like another lesson on pronouns is in order.
"You" refers to the one being spoken to, "I" refers to the speaker.
I explained why you are wrong (and I am right) about context switching. Are you challenging the axiom that for the x86 architecture to even be turing complete, threads need their state preserved? If so, I'd love to see you post some code that will run correctly even if any of the registers (even ESP) get trashed without warning. That would be a sight to behold.

" And what was that about Mach being BSD?"

Nobody said anything about Mach being BSD. You, however, made the erroneous statement of "OSX IS UNIX", which I corrected you on.
  • Flagged
0 Votes
+ -
@azumao

So, we finally resolve you are wrong on the fact that Unix is open source. It is NOT.

"Why would anyone want their kernel? What's needed for application compatibility is their libraries, like Cocoa and such."

1) That is not the point. You were wrong, period, your current attempts at deflection aside.

And the point of Darwin being open source is not so that people can make fully OSX-compatible OSes. I never said it was. Apple never said it was. But Darwin, the actual OS kernel, is. And a fully functional BSD unix can be compiled from it.

And again, you never made an original request for code, nor is code necessary. The quoted items more than adequately address your faulty understanding. You got more than assertions on my part to challenge what you call common sense. First, you claim threads crash if they do not pass state, and further claim that threads do not share state. I presented you with links that CLEARLY show that threads DO share state. In fact, ALL threads in a given process share state. That was not my opinion, it was a quote. From a site dedicated to what YOU brought up, POSIX compliant pthreads. Quibble with them, not me.

"My bad. I thought being released under the BSD license counted as open..[sic]"

1) What's with the double periods? What kind of weird punctuation is that?

2) Not all UNixes are released under BSD, so that comment is irrelevant. You were commenting on Unix in general, not OSX in specific.
"UNIX is open source"
It is not.
Darwin is. You then go on with:
"so how do I get the source? Is there a subversion or git repository? A Sourceforge or Google code page? Do I just download it as a big tar from their website?"

And I posted you the link to where you can get it.

You are wrong. Period.
'So, we finally resolve you are wrong on the fact that Unix is open source. It is NOT.'

..is open source.

'1) That is not the point. You were wrong, period, your current attempts at deflection aside.'

Nope. I never said that OSX's kernel wasn't based on an open source kernel. I asked where to download the source code for OSX. As in, OSX. Not Darwin. Not Mach. Not BSD. Not UNIX. In the same way that Windows isn't NT and Ubuntu isn't Linux.

And the point of Darwin being open source is not so that people can make fully OSX-compatible OSes. I never said it was. Apple never said it was. But Darwin, the actual OS kernel, is. And a fully functional BSD unix can be compiled from it.

A fully functional *BSD can be had using a *BSD, no need for OSX there.

Just waiting for DirectX and Cocoa to be ported or replaced one way or another so the commercial OSs can die once and for all.

And again, you never made an original request for code

Yes I did;
`I explained why you are wrong (and I am right) about context switching. Are you challenging the axiom that for the x86 architecture to even be turing complete, threads need their state preserved? If so, I'd love to see you post some code that will run correctly even if any of the registers (even ESP) get trashed without warning. That would be a sight to behold.`

'nor is code necessary'

Yes it is. You kept repeatedly claiming that thread context doesn't need preserved and calling me names, so I finally gave you a chance to show me your magical program that somehow implements threading without saving context (which would require it to be able to run even if any of the registers, including the stack register, get clobbered without warning.)

The quoted items more than adequately address your faulty understanding. You got more than assertions on my part to challenge what you call common sense. First, you claim threads crash if they do not pass state, and further claim that threads do not share state. I presented you with links that CLEARLY show that threads DO share state. In fact, ALL threads in a given process share state. That was not my opinion, it was a quote. From a site dedicated to what YOU brought up, POSIX compliant pthreads. Quibble with them, not me.

You misinterpreted what they said or they're wrong, there's nothing more to it than that. I explained why and told you how to prove me wrong.

'1) What's wit'

Oh look, I can quote part of your sentence, too.

'What kind of wei'

Hey I did it again. Thanks for teaching me such a neat trick.

2) Not all UNixes are released under BSD, so that comment is irrelevant. You were commenting on Unix in general, not OSX in specific.
"UNIX is open source"
It is not.
Darwin is..
'

UNIX as in the UNIX operating system. As I already told you, not every UNIX-like OS is UNIX.

'You are wrong. Period.'

Stop projecting.
0 Votes
+ -
@azumao
No, you said Unix was open source. It is NOT. Now you are claiming it is released under the BSD license. It is NOT. Many Unixes are not even BSD, but Sys V. They are NOT released under BSD. Period. You are wrong.

I never said OSX was open source, so there is no reason that the source be available. As I have said, repeatedly.

The following code will run fine if the registers get corrupted
dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t i){
results = do_work(data, i);
});
total = summarize(results, count);

"You kept repeatedly claiming that thread context doesn't need preserved and calling me names"

I said no such thing. I said you are confusing processes with threads. You are.

"You misinterpreted what they said or they're wrong"

No I didn't, but nice that you admit you didn't bother to read it. Clue: You can't successfully refute a point you never read, "there's nothing more to it than that."

Not every Unix-like OS is Unix.

OSX IS.

Again, you are wrong. Period.

"Stop projecting."

And infantile, too.

Nice pop-psyche version of "I'm rubber, you're glue... ."
Grow up.
  • Flagged
..and not base your denials on anything, just stop posting already.

For the last time; you can't have multiple threads without preserving context. It doesn't matter whether it is multiple threads within one process, or a bunch of single threaded processes, it simply won't work. Claiming it will demonstrates a complete lack of understanding of the most basic aspects of the x86 architecture. When one thread stops executing, and another starts (known as a context switch), the core it was executing on starts executing code somewhere else. If the registers aren't preserved, *SP will be garbage, meaning no ret or call, and *AX will be garbage, meaning no int (all OSs require *AX or some other register to be a certain value for interrupts), the status register will be garbage, meaning no conditional branching. All registers will be garbage, meaning you can't even add two variables together. Your program won't even be able to exit cleanly, yet alone do anything. Thus; context switching without saving state makes Turing completeness physically impossible.

Also, UNIX was made before there even was an Apple, yet alone OSX, so short of time travel they can't be the same.

If you can make a program that does anything at all under such constraints, or find a way for something that exists to be the same as something that doesn't even exist yet, by all means, do so, but enough with the petty insults and baseless contradictions. They change nothing.
0 Votes
+ -
RE: Speedtest: 8-core vs. 4-core Mac Pro shootout
DeusExMachina Updated - 30th May 2010
@azumao

First, NONE of that backs up your contention that an applications per se needs to determine number of cores. The OS is perfectly capable of assigning threads in an efficient manner, so that the same code can run optimally on any number of cores, including one.

"Also, UNIX was made before there even was an Apple, yet alone OSX, so short of time travel they can't be the same."

This argument is as asinine an argument as you have ever made. Because Unix predated OSX, it can not be Unix. That is absurd. By that logic, nothing but the original precursor to SYS V from AT&T written by Ritchie can be called Unix. No one has used that OS in 30 years. So you are saying Unix does not exist.
It is like saying that horses existed thousands of years before Secretariat, so Secretariat could not have been a horse.
BY YOUR LOGIC, PLEASE NAME A SINGLE REAL UNIX
Get this through your head, Unix is whatever The Open Group and the Austin Group say it is. Period. They are the final arbiters.
If they say it is Unix, it is Unix. End of story. (They continue to certify Unixes to this day.


As for changing nothing, neither does you continued denial of the facts, or your COMPLETE failure to comprehend a logical train of argument.

Separated so you can't avoid it:
Answer
Seriously, name me a version of Unix, just one, that was not predated by the original Unix (which is no longer marketed by AT&T, and has not been for decades.)
Did you answer this^^^^^^^^^^
..se. I just corrected Mr. "the developer of the application needs to know ahead of time how many cores and have a computer with that many cores to make an 8-threaded program" by pointing out that applications can detect automatically at startup how many cores there are and spawn that many threads (as opposed to, say, always launching a thousand, and then having all the overhead from context switching, to which you replied that context only needed saved when passing execution from one process to another (which is wrong), not one thread to another.)

And no, I'm just saying that only UNIX is UNIX. OSX isn't UNIX. Linux isn't UNIX. Solaris isn't UNIX. The PS3 isn't UNIX. Not everything that is POSIX-compliant is UNIX, it is UNIX-like.
0 Votes
+ -
@Azumao

Are you seriously trying to say that there has been no Unix OS in 13 YEARS?!?

Because that is what you ARE saying. The last Sys V variant was released in 1997 by SCO, Sys Vr5. By your criterion that no true Unix can come after the original Unix, that means no Unix has been released in over a decade! Really?!? The entire Unix world is laughing at you.

I posted code already. Pay attention.
0 Votes
+ -
Funny, did you miss that question. PLease name me a SINGLE version of Unix that you feel is actually Unix.

Again, the ONLY definition of Unix is an OS with POSIX compliance as certified by The Open Group, and Unix certification by The Austin Group. PERIOD. They have certified OSX as Unix. YOU do not count. THEY do.

But again, please name what you call Unix. I wouldlike to see you name one that does not fail your test of not coming after the original Unix.

So let's hear it. Which one is it?

Huh?

(As to the rest, yes you did, and no it isn't.)
Even Windows has a POSIX compliant subsystem. Are you going to call Windows UNIX too? Get real.

Join the conversation!

Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]
ie8 fix

The best of ZDNet, delivered

ZDNet Newsletters

Get the best of ZDNet delivered straight to your inbox

Facebook Activity

White Papers, Webcasts, & Resources
ie8 fix
ie8 fix