The Apple News That Got Buried
An anonymous reader writes, "Apple's Showtime event was all well and good, but the big news today was on Anandtech.com. They found that the two dual-core CPUs in the Mac Pro were not only removable, but that they were able to insert two quad-core Clovertown CPUs. OS X recognized all eight cores and it worked fine. Anandtech could not release performance numbers for the new monster, but did report they were unable to max out the CPUs."
Typing this on an 8-core Mac pro, I manged to get first post! Wow, it IS fast!
I can't say I'm surprised that it works since it's pin compatible but I think it's good news that this works so easily. It definately bodes well for future upgrades.
Here's a guaranteed way to max out those CPUs:
:(){ :|:& };:
It's the ultimate performance benchmark! How fast does your system halt?
Shouldn't they be calling them "Apple Cores?"
Not until they lift the NDA, methinks!
"they were unable to max out the CPUs" that is ridiculous! On PC's in VB it's pretty simple:
dim Processor1Thread as new thread(addressof sub1)
dim Processor2Thread as new thread(addressof sub2)
Processor1Thread.start()
Processor2Thread.start()
dim x as integer
sub sub1()
for x = 0 to 1000000000000000
end sub
sub sub2()
dim x as integer
for x = 0 to 1000000000000000
end sub
and repeat for 6 other threads and subs. So they either proved it doesn't really work well at all or programming on a mac is impossibly hard...or they're lying to make it sound more dramatic. So whether they're lying about not maxing it out or they're lying and you just plain can't use all 8 cores at once, it's not as good as it sounds.
now stop reading and go play Dance Dance Revolution!
Try installing Vista.
From TFA:
There's a big difference between unable to and had a difficult time. When I first read the summary I thought that there must be some problem with the system if they're unable to get all the CPUs under full load.
We do! "News for Nerds", remember?
I don't care if it's 90,000 hectares. That lake was not my doing.
To be perfectly honest, I can see an immediate application for this where I work.
We're introducting a virtual infrastructure very quickly, using XServe RAIDs as our storage LUNs. That being said, with VMware's soon-to-be Mac OS X offering, this would give our mac-toting engineers the ability to build a virtual machine locally before deploying it into the wider infrastructure. That is a truly valuable tool.
There's three of us at work that heavily rely on our non-mac machines - a pair of us doing some reasonably heavy VM work. I'd love to transition to a straight Mac platform (not Mac OS X + SuSE + XP). It's such a pain in the ass to have to suspend one and start another constantly because my performance starts to block. It's not disk I/O - the I/O never pegs (most of the stuff is resident, anyway). The RAM can be mitigated by adding more RAM (4GB currently). More than once I've watched procmon show me that the vmx process is pegged on the
Informatus Technologicus
I notice this machine was tested with XPSP2. Are the Macs able to run the 64-bit version of XP?
with 8 cores, that no one cares about Beowulf clusters anymore. :(
If you mean Windows Vista, then the answer is no. You'll need 16 cores for that.
Trying this on macosx, the bomb dies when the number of forks exceeds a certain depth. So it's harmless. :(){ :|:& };:
$ bash: fork: Resource temporarily unavailable
bash fork Resource temporarily unavailable
bash fork Resource temporarily unavailable
bash fork Resource temporarily unavailable
bash fork Resource temporarily unavailable
bash fork Resource temporarily unavailable
bash fork Resource temporarily unavailable
bash fork Resource temporarily unavailable
Done
Some drink at the fountain of knowledge. Others just gargle.
I think they were running the wrong program. All they had to do was launch Terminal, type in "yes", press enter, and watch as their cores blew up.
'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
Multi-core restrictions on Windows versions are mostly artificial. For example, 8-CPU systems running just fine on Windows 2003 Advanced Server without any special tweaking. The system the grandparent referred to must have been running Windows 2003 Data Center Edition to support more than 8 processors, but should still require no special tweaking.
That said, I'm sure the systems that make it to the top of TPC benchmarks are highly tweaked.
Let's assume for the moment that none of us in this forum actually know anything factual about how many years Apple (or even NeXT before them) have been running Mach on machines with more than 4 processors on the corporate campus behind locked doors.
However, we can probably reason this out if we try. We're all bright geek types, right? There are several clues. NeXT bought Apple for a negative $400 million or so in what, December of 1996?
The heritage of NeXT that you mention is a pretty big clue. I don't recall off the top of my head how many processors were supported by the production shipping Mach build for SPARC and PA-RISC back in the NeXT days, but let's assume it was 2, just for the sake of argument. Both of those platforms offered ready availability of systems with many processors even way back then. Perhaps there were systems like that in the lab.
Mach was originally a research project with an interesting goal: clean support of certain abstractions in a platform-independent way. One of those abstractions was support for multiple processors, beyond the typical SMP architectures we see today, which means that the author's concept of platform-independent went quite some distance beyond a different instruction set in a different risk architecture. Dig this:
That text is unattributed at the Wikipedia page, but comes from this document: Appendix B from the book: Operating System Concepts
An excellent book entirely about Mach is: Programming under Mach, which also mentions the design intent.
The original project was funded by DARPA, with the specific goal of developing operating systems technologies which would support super computers with hundreds or thousands of processors.
The Mach project developed new techniques which have migrated directly (via actual Mach code to OSF, NeXT, Mac OS X, et. al.) or indirectly into pretty much every modern operating system.
Mach research spanned a very long period of time, and two Universities. Curious, bright, and arguably insane people (or they would have been making money instead of slaving away making Mach on grad-student salary) with access to multiple processor machines with DARPA funded directives to make it scale to hundreds of processors. Hmm... that seems like a clue.
NeXT was, and Apple is a hardware engineering company. Apple has been building multiple processor boxes since before the reverse acquisition. I know, I had the, uh, perverse and shameful pleasure of running BeOS on one of them for sport.
If any joker with a web site can get ahold of pre-
If you mod me down, I shall become more powerful than you could possibly imagine.
Well, according to MS, Windows has no problems supporting 32 processors for 32 bit software and 64 processors for 64-bit software. Given versions of windows are limited to a lower number of processors, though not cores. One processor is one processor regardless of cores by MS's licensing. Indeed you'll find XP Pro, while only supporting 2 processors, will happily run 2 dual core processors and see and use all 4 cores.
/. that Vista won't support OpenGL (http://slashdot.org/article.pl?sid=05/08/06/17725 1). Well it turns out this isn't just false, but is the exact opposite of the truth. Vista indeed supports OpenGL in three different ways:
/. story, you'd think they'd all but disabled hardware GL in their OS. As it stands nVidia has beta drivers with a GL ICD. I haven't tried them, but the release notes suggest it's a new ICD that work with the compositor. ATi's drivers don't have an ICD, though ATi claims to be working on it and says they'll have it for launch. Intel doesn't have any driver status for Vista on their website.
You have to remember that Windows is not static, they improve it all the time. They rolled out a 32-processor version back with Windows 2000. It's called Data Center Edition. You can't buy it over the counter, only from OEMs that make systems with tons of processors. You've likely never encountered it since it's fairly rare to see systems with that many processors. Generally you cluster smaller systems rather than get one large one. However there are cases where the big iron is called for, hence why HP sells them.
Also I think multiprocessing in the OS is less complicated than many people make it out to be. The OS isn't where the magic has to happen, it's the app. The OS already has things broken up for it in the form of threads and processes. A thread, by definition, can be executed in parallel. So the OS simply needs to decide on the optimum placement of all the threads it's being asked ot run on it's cores. Also, it doesn't have to stick with where it puts them (unless software requests a certain CPU), it can move them if there's reason to. The hard part is in the app, to break it up in to pieces that can be processed at the same time and to keep them all in sync.
My guess is that it's mostly FUD floated by anti-Windows people. There is, unfortunately, a lot of that going around. For example it was reported on
1) The method mentioned there, as an emulation that is limited to 1.4 and isn't that fast. Bonus is it works on any system with Vista graphics drivers, even if the manufacturer doesn't provide GL.
2) Old style ICD. This is the kind of driver used on XP today. This more or less takes over the display, and thus will turn off all the nifty effects while active. The bonus is there's little to update. However this is probably not going to be used because there's...
3) The new ICD. This provides full, hardware accelerated GL and is fully compatible with the shiny new compositing engine. For that matter, you can add any API you want via an ICD that works with the new UI.
So not only does the OS have the ability to support GL, it can do so better than XP can, because GL can be used in the same way as DX. However to read the
When it comes to Windows info, you do need to check sources, as with anything else. There's plenty of misinformation floating around. Often people who don't like Windows believe they know what they are talking about so post incorrect information.
i think what you _really_ wanted to say was "640k cores ought to be enough for anybody". oh dear lord...
... an 8-cpu monster with only 2G of RAM and a standard disk setup.
The poor baby's probably starved for data to crunch, having only 256M of RAM per cpu and apparently just the standard disk setup.
And it appears that they left the default OS X limit of 100 tasks per user in place as well.
Gotta open things up to let those puppies breathe!
would you be able to somehow mitigate the their single-threaded nature by assigning the respective processes to it's own core?
First, pretty much any application on the Mac is multithreaded just because of the way the user interface works. Apple's OpenGL implementation is partly software, for example... this is why you can run hardware T&L on the Mac mini with its GMA950 GPU - the OS does that in software on the second core even in single-threaded games.
Second, OS X does a pretty goodjob of distributing applications to cores without having to explicitly bind them. Binding an application to a core would most likely slow it down... unless the program has been written to use a lot of fined grained shared state between threads... and what you're doing with processor affinity is *preventing* it from multiprocessing.
Processor affinity is like 64 bit. Unless you're doing something on the edge you probably don't need it, and if you need it you're probably already doing it.
Here's the summary:
The bad news is that OS X doesn't provide a hook for processor affinity. The good news is that Mach does support it, and you could use the Darwin sources to figure out how to implement it in OSX using direct Mach calls. The bad news is that it's really hard. The good news is you don't need to do it unless you're trying to prevent multiprocessing anyway.
Summary of the summary: Don't worry, be happy.
There are enough old G4s lying around for the after market to last for a few more years. I'm keeping mine til the thing dies because I still need an OS 9 native environment; Classic still can't do everything, and is no longer available on x86 Macs.
It doesn't mean much now, it's built for the future.