The more I know men the more I like my blog

Or was it my dog? Some days I relate to that locution, and I tie it somehow to Diogenes. The internet consensus suggests the author is unknown. Unknown is a very prolific author since the internet. Specially since Blogs, these anonymous sources of wisdom, where anonymity is easy and attaining name recognition is hard.

There are no new ideas left, blogs are at best a new mold for old ideas. Blogs may carry a novel mindset, or merely a new mass publishing technique. A push-pull model of sorts for spam. The blogger mindset I see could descend from Diogenes the cynic. Diogenes, self proclaimed citizen of the world, presumably created the cosmopolitan concept. His cynics placed reason above convention, and argued that if an act is not shameful in private it should not be shameful in public. Strikingly reminiscent of the blogger mindset, at least the blogging community at Sun. “Of what use is a philosopher who doesn't hurt anybody's feelings?”, with that one I rest my case on Diogenes' blogging paternity.

Unconvinced? OK, let's settle on a fictional ancestor, Blogenes, and move on. The point is that neither the ideas nor the mindset are new. The only novelty is in their expression. The blog expression starts with our ability to capture, share, and interact electronically. Capturing our thoughts wherever we are, even in the restrooms. And with his record on private vs. public acts Blogenes would have taken his laptop to the restrooms. Actually, who hasn't?

This new expression lets me write about old ideas, like convergence, like the unstoppable force of general purpose volume technologies, and of course, the smart use of concurrency to exploit the newfound parallelism of CMTs. But why inflict old ideas onto others? Because, remarkably, some old ideas are themselves finding new expressions in new silicon.

For example, I have been blogging about CMT (Chip Multi Threading), as the combination of multi-core processors with vertically threaded cores. Neither is new, the advantages of evolving into multi-core processors instead of faster processor clocks is undisputed by now. Vertical threads go back at least a decade when architects I know like Laudon , Yamamoto, and Nemirovsky examined the virtues of hiding memory latencies through multiple hardware threads on the same processor pipeline.

By now all Sun's CMT processors incorporate four vertical threads per core. Processor threads are hard to visualize, so here is a picture. They are vertical, and when the rubber meets the road CMT speed relies on four of them per processor core. In fact simultaneous multi-threading has been tried in x86 architectures. It had only two wheels, wasn't that fast, and has already been abandoned.

Convergence is superficially the notion of unifying all networks (voice, signaling, data, video) into an all IP network. For those of us seeking the simple certainty of dogma, “In the beginning God created the Packet”. And for the many whose only dogma is cost, convergence is all about general purpose volume market costs. And that is fine, because as a cynic placing reason above convention, convergence is not only about unifying the networks but also unifying the processing building block used to build them. Same processing element for voice, signaling, data, and video, same for control and data planes.

Now, when picking a building block for a converged network, I insist, infrastructure ain't built on laptop parts. Laptop processors are made in volume allright, but they neglect the central tenet of the converged network faith: The Packet. The new expression of a converged building block is a General Purpose processor designed for superior packet processing, and for now that means two things:

1) Vertical Threads
2) Native Network Interfaces

As simple as dogma.

I already touched on 10 Gigabit native network interfaces in my previous post, so let's talk Vertical Threads. Vertical Threads, as intended, hide cache miss latency, and packet practicioners know that caches are evil to start with. There is no temporal locality in packet arrivals other than in the short term burst. Things may work fine for a small number of subscribers and collapse when the subscribers state no longer fits in the processor cache. Vertical Threads also eliminate the other packet nemesis: Interrupts. A multi-threaded processor with 32 threads like the UltraSPARC T1, or its 64 thread Niagara 2 successor, can dedicate a few threads to ingress packet processing (dedicate as in "fully devote without interrupts") and deliver no sweat wire speed packet processing in a general purpose processor.

Again, the converged building block is multi-threaded, not just multi-core. Multi as in “lots of threads”, not as in “more than one”. Vendors that don't have lots of threads complain that the software is not ready for the high levels of concurrency of lots of threads. Wait for software to catch up, they say.

Blogenes would retort with a categorical locution: “If you control something you make it work, if you don't you complain”. I bet these vendors do not control the software that needs to get ready for concurrency. I say this as bluntly as I say that volume does not mean laptops. After all “Of what use is a blogger who doesn't hurt anybody's feelings?”

[ Technorati: NiagaraCMT, ]


Nice article.

Those people saying the software isn't ready are correct regarding a lot of existing code. No one would dispute that producing code utilising multiple threads needs great care.

I fully agree that it can be made to work and it is worth doing. We have seen and will continue to see development in design patterns, coding practice and tools that will give us more software tailored with better and better threads.

It seems that the software engineer gets no freebie from Moore's law this time?

Posted by Stewart Stevens on November 08, 2006 at 07:24 PM PST #

Post a Comment:
Comments are closed for this entry.



« July 2016