Is Sun's Niagara Server Viagra?
argonaut writes "Ace's Hardware has an in-depth article on Niagara -- Sun's upcoming parallel server processor with 8 cores and 4 threads each. The article discusses the chip's radical architecture and what kind of performance can be expected from it in traditionally thread-heavy server applications like web hosting, databases, and other multi-user applications. Given the recent cancellation of the UltraSPARC V, it seems this is going to be Sun's new direction for its in-house CPU design efforts. Furthermore, both Intel and IBM are working on other highly parallel processors and AMD is expected to eventually introduce a dual-core Opteron. So, will more threads prop up Sun's performance?"
Good thing I didn't receive an e-mail about this story in my e-mail box or it would have been nuked as spam.
Seriously though, why did the author have to use the term Viagra to simple mean 'performance boost'?
Help Brendan pay off his student loans
The obvious answer: Sure it will. Assuming the ability to have them will in fact be used by the software running on the thing - which may still take a while.
It's the same thing that's been happening for the last decade. As x86 slowly creeps in on Sun/IBM/Whatever's market, they have to come up with something "bigger".
Right now, the Opteron, with embedded memory controller and gobs of I/O, has really entered what was previously a niche market that Sun made very nice profits from.
So, now that particular cash-cow has fallen to the ravages of commodity parts, they're moving their sites even higher. Sun's never been the company to make $5 profit on each of 50 million computers, they'd much rather make $300,000 each on 1,000 computers.
steve
Oh, you're not stuck, you're just unable to let go of the onion rings.
Any advances Sun may have in CPU performance will be greatly outweighed by two major engineering design flaws they've gotten themselves in to:
1. overall system performance of their partitionable systems (i.e. the ones people will pay a premium for over low-end systems where Linux on Intel/AMD is killing them) is severely hampered by their 150MHz (Mhz!) backplane. Sun views this as a plus because it allows customers to run boards with differenc CPU speeds (e.g. a 750MHz board (5x backplane speed) and a 900MHz board (6x backplane speed)). So, board to board thruput suffers and overall scalability is reduced.
2. Their desire for greater hardware isolation between domains, down to only a 2 or 4 CPU board with whatever memory happens to be installed on those boards, severely limits the flexibility in providing workload management between logical servers (domains), as well as less flexibility to create / deploy fewer, smaller servers. IBM's LPAR architecture, and HP's VPARs, are kicking Sun's ASS!
especially for server software that threads.
I'm especially intrigued on how this will
work with the Java NIO (new IO) libraries,
which handle pooled selectable IO channels.
Niagra and Java NIO together looks like
a really fast way to do mass serving...
Can anyone comment on threads sharing IO?
If Sun doesn't cancel this one, it could put them back on the map for server & enterprise-class computing. Low power, awesome multi-threading capabilities, and software that could only be described as "bad-ass" (The 3D Desktop should be out by then) will give Sun a huge edge over everyone that would take years to catch up.
But that's a big "if."
Yes, you're right. Except, of course, that the price to performance ratio of the X86 platform remains unmatched; X86-64 has removed some of the limitations of this platform; limitations that made it unsuitable for the high end, and now Intel has been forced to follow. I fear for Sun's long-term future. on the long run, value for money always wins in business. Or so I think.
The Cell processor follows the same design idea, if not more radical. Sony has cross licensed it to IBM and Toshiba. Toshiba is already planning on using Cell in high end processing.
The big question is if bandwidth constraints will choke these massively parallel superscalar processors.
Sun doesn't make commodity processors, and they (at least in theory) have much better memory controllers already. Since it's a lot easier to improve the bandwidth on access to memory than the latency, it makes a lot of sense to uberthread their CPU, because they can move a lot of data in a single round-trip. If you have time to get 64 threads to their next cache misses in the time it takes to start getting data, and you can have 64 requests in flight at the same time, you're going to keep the processor 64 times as busy with a lot of threading than with a single thread per processor.
This actually brings up something that I have been thinking about recently, what classifies something as commodity hardware. It's not as if an opteron box can be had for a tremendously low price, HP's quad processor opteron box starts at approx $20K. I don't really consider that "commodity". Compare that to a quad Xeon box for $26K. And finally compare that to a quad box from sun, for approx $34K. None of those are what I would consider commodity. So what is commodity pricing?
Fear trumps hope and ignorance trumps both
1) Memory latency will be a bigger and bigger bottleneck in systems as cpu frequencies scale
2) Technology will not allow memory latency to keep pace with cpu frequency.
See ace's previous interview
A snippet:
Chris Rijk [Ace's Hardware]: Stalled on waiting for data, basically.
Dr. Marc Tremblay: Yes. In large multiprocessor servers, waiting for data can easily take 500 cycles, especially in multi-GHz processors. So there are two strategies to be able to tolerate this latency or be able to do useful work. One of them is switching threads, so go to another thread and try to do useful work, and when that thread stalls and waits for memory then switch to another thread and so on. So that's kind of the traditional vertical multithreading approach. The other approach is if you truly want to speed up that one thread and want to achieve high single thread performance, well what we do is that we actually, under the hood, launch a hardware thread that while the processor is stalled and therefore not doing any useful work, that hardware thread keeps going down the code as fast as it can and tries to prefetch along the program path. Along the predicted execution path [it] will prefetch all the interesting data and by going along the predicted path [it] will prefetch all the interesting instructions as well.
So, with the necessary Solaris installed, your existing Tomcat running on your existing JVM will see all the benefits.
Not it won't. At least not so simply. It will see the benefits if there are enough concurrent threads running (as you said), and even that if these are not waiting for each other. So it will work for many clients at once.
I have my doubts that this architecture will help with most real world tasks - even real world server tasks - even with completely blown out of proportion threading like java seems to lead people to.
Let's face it, the reason Intel or IBM are not going into that direction that far are not that they couldn't if they wanted to.
It's more that they still have other tricks in their sleeves to ramp up their processor power, and Sun hasn't - or can't afford them.
For me this is the last desperate attempt from Sun to prolong their relevance in the processor arena.
It's the same thing that's been happening for the last decade. As x86 slowly creeps in on Sun/IBM/Whatever's market, they have to come up with something "bigger".
This is not bigger. Taken to the extreme, this is like if Commodore was still in business and tried to sell computers with 2^32 6502 procs.
Look at the chart in the article to see how desperate Sun is:
They admit that existing Opterons Xeons not only kick the ass of their newest, existing architecture for a single thread, they also concede that even their not-existant future proc won't even be faster for single threaded apps.
Ok, you say, but it is faster for multithreaded apps. The only problem with that is that I bet that a recent multiproc Opteron/Xeon will give the future Sun architecture a run for its money.
And IBM/Intel won't have any problems building multicore procs, if they want. They just don't need to, at the moment.
IOW, looking at this chart one might ask himself why tSun even tries to build processors nowadays.
If I understand correctly, the Solaris operating system allows the owner to select the number of CPU's they wish to license (it's cheaper for Sun to build a fully configured system, and then license the number of CPU's used, rather than to send a technician in and change the hardware). Presumably this licensing scheme would be extended to control the number of cores active?
They hardly sell single processor systems anyway ... people interested in their types of servers and HPC are not interested in tasks without plenty of parallelism.
Cell is designed for massive parallelism ... but it is unlikely to be heavily based on multithreading. More aimed at stream type processing, with very predictable memory access patterns.
This is totally true. Scott must have done something to piss Larry off.
Maybe an Oracle techie/insider can debunk these rumors coming from the sales droids.
1) 10g was made for linux, all other versions are a "port"
2) At Oracle you need Larry's signature on the PO if you want to order a Sun box.
If either of these rumors are true, that's pretty bad news for Sun.
That's true, but until nio introduced polled IO, the best behaved java developer either had to choose to have rather a lot of threads or have their program crippled by IO waits. So there's a lot of code out there that does make lots of threads (and it's a handy programming paradigm even now, so it's not going away any time soon). As the poster above says, it's only an improvement if you've got lots of threads. So an application server is a prime example - it ends up running _lots_ of servlet instances simultaneously, as it's mostly IO bound (waiting for disks to spin, database servers to respond, xml-messaging backoffice thingies to commune with antique cobol boxes, etc.). This kind of application will really benefit - other stuff (e.g graphics, raw-calculation) largely won't - but stuff like Websphere and Tomcat is exactly what folks buy mid/high end Solaris-SPARC boxes for. As to problems on "non-Windows" environments, you'll find fantastic thread handling on AIX, HP/UX, and Solaris, where tens of thousands of extant threads isn't going to bring the machine to its knees. NT is okay, I don't know about the BSDs. Linux _was_ horrible, but I know a bunch of work has gone into threads recently, both in the library and in 2.6 - I don't know how much better this has made things.
## W.Finlay McWalter ## http://www.mcwalter.org ##
It's very interesting to think about who these Niagara based servers are going to be targeted for. The nifty IOE feature and integrated ethernet controller seems to guarantee they should be great for telecom purposes. Of course that's a cursed market that Sun is already king of. Niagara based server seem destined to go head-to-head with dual-processor Xeons and Opterons. IT groups building web server farms or clustered databases will have a new option to consider. Either go with cheaper, lower performance Xeons and Opterons running Linux or with fewer, but more expensive Sun Niagaras running Solaris. It's an interesting proposition, and seems like Sun's first real attempt to compete on price/performance. The real x-factor is AMD. If they can really break into the server market, then the Opteron could offer as much performance as the Niagara but at the same (or lower) price as a Xeon.
It's ironic to see how positions have changed. Intel and AMD are developing multi-core CPUs for use in 4+ way systems, while Sun develops a CPU that is SMP incompatible. Of course Sun is also working on Rock, and hoping it can compete with a Xeon as a single cpu, while still scaling for 100 CPU Infernos (or whatever they are going to call them.)
The only way I can see them staying alive is to find a sucker to dump SPARC on and embrace Opteron. If they tie their future to AMD's then AMD might decide to keep their promises. I do not thing it would be very wise to make the same bet on intel. I'm not sure if Solaris has a future but I'm pretty sure that if SPARC does, it won't be Sun driving.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
I can't comment on the specifics you mention, being a Sun customer/reseller rather than a true insider. However I am concerned about how the markets and community seem to have a down on Sun at present, which could itself be their undoing (i.e. the damage is being caused not by the danger but by the perception of danger).
Firstly, Sun are absolutely right to keep hold of their processor technology. The market has long since grown up to the feeds-n-speeds contest, and realised that memory latency and I/O throughput matter right through the server room, not just on the top end systems. To throw away their ability to create a competitive advantage through innovative system architecture would be madness - we've seen how HP have squandered their high end server business through precisely that tack. The costs of system *and* processor R&D are very high, but are a key part of what makes Sun different from Dell.
Secondly, Sun have two major investments which are yet to start paying back: The JES/JDS stack is now at GA, and could become a massive source of recurring revenue over 2-3 years; the throughput computing technologies are further off, but again is a potentially disruptive technology. Are IBM and HP quietly working on their own versions? Well, HP aren't because they haven't got a processor architecture any more.
Thirdly, Sun won their lawsuit against Microsoft (out of court) though everyone is saying that they threw in the towel: they got more money out of Microsoft that any court settlement would have been, they got an undertaking from Microsoft to support standards, and they got a load of proprietary Microsoft API and protocols as a hostage in case they welch (this was a very clever deal).
So when will Sun stop losing money? Probably as large corporates and government departments/agencies approach their next Windows refresh and a proportion (doesn't need to be that big a proportion either) run with JES/JDS. That refresh cycle comes every 3-4 years, so while we have a few early adopters now, next year could be interesting as the Win2K refreshes start appearing. And Sun has enough cash in the bank (even before another $2bn from Microsoft) that there's no need to sacrifice the strategy.
D.