Teams vs. Individuals
By hendel on Jan 30, 2006
We crossed Gregorian calendar boundaries, so some blog introspection is due. It yields two findings. One. My blogs got wordy, as if following a blog Moore's law of sorts. I do not promise shorter blogs, just some images to lower the overall word density. Like this canvas painting. I saw the canvas at Carlos' place in December and took this picture. Carlos says it won some award, I hope I am not breaking any law by reproducing it, but let's leave the canvas for later.
Two. Blogs resemble airports. High traffic structures for short visits. Hub airports send you on to other places, terminus airports don't. I expect my visitors to enjoy the destination over the journey. Shoe removal rituals at metal detectors, $7 airport pizza slices, does anybody enjoy the journey anymore? My blog wants to remain a small terminus.
Airports make the case for teams over individuals. Complex operations smoothly choreographed to move people and route airplanes. A network routing problem that, unlike the Internet, cannot do flow control by dropping airplanes. They drop passengers allright, but fortunately before boarding. The aviation case for individuals over teams is the Mustang P-51 fighter, designed and prototyped in about 120 days. Hard to imagine the Mustang as the product of process and teamwork. It had to be all in the head of one person, and presumably one that worked on the German Messerschmitt before moving to the US. Complex engineering slows down when a single person cannot handle all design tradeoffs and delegates to a team. Human communications cannot be as fast and accurate as no communication. I rest my case with our own Andy Bechtolsheim, if you worked with him you know that no team can iterate at Andy's speed.
So who wins, the team or the individual?
In sports the team wins, at least in the soccer (aka football elsewhere) teams I coached or played. Reductio ad absurdum proof of that is the legendary USA team that won the Sun World Cup in 2003; no stars there. In high tech we have a mix of teams and influential individuals. Looking at Microsoft's hiring philosophy through "How would you move Mount Fuji" shows that missing a good hire is better than taking the risk of hiring the wrong person into the mix. A natural corollary of high-tech engineering being a team endeavor where individuals can do damage disproportionate to their potential contributions.
The teams vs. individuals, or centralized vs. distributed picture is equally ambiguous for computer systems. In Turning the Tables I implicitly sided with the distributed and horizontal team approach. Or at least hinted that cost and resiliency benefits make it a natural choice when possible. But sometimes systems are simpler and more efficient if they avoid or minimize the need to communicate. Would we host the entire net on one system if we had an infinitely powerful processor?
Well, the UltraSparc T1 is a powerful performer as shown in this analysis by the University of Aachen. And yet in some cases the system can be pushed to higher throughput by using Solaris 10 Containers to deploy multiple application instances. Solaris Containers provide a single point of platform administration and restore scalability to apps that were not necessarily written to exploit the degree of parallelism of a CMT.
In a sense this creates a team out of an individual. Strange. And it gets stranger soon, as the CMT Hypervisor adopts Logical Domains (or LDOMs). With LDOMs we could deploy multiple isolated OS instances onto a single CMT. Like the little men in the canvas. Why do that? Fault containment. Recall that when things go wrong an individual can cause disproportional damage. Better contain the scope of the damage. Software defects and most hardware faults are contained to the offending LDOM.
Is this all there is to LDOMs? Fat chance. This is just the beginning, now we can deploy different revision and patch levels of Solaris on different LDOMs, and also deploy heterogeneous Operating Systems ported by the OpenSparc community to the Hypervisor API. Incidentally the Hypervisor API was just published on the OpenSparc site. That publication is what shook me out of my recent blogging lethargy and prompted this post.
Paraphrasing Woody Allen, the prerogative of the classics is that you keep finding in them new things you never saw before. Looking again at the canvas now I find an heterogeneous team of little men, maybe collaborating, maybe isolated, doing their thing. A CMT canvas? So many CMT block diagrams, so many CMT Staroffice slides, finally real art, a CMT painted in oil on canvas.
I also see entire heterogeneous systems (e.g. a wireless network infrastructure), collapsing into a much smaller number of processing elements than today, sharing one high bandwidth system memory. Not sure what Woody Allen has to say about this, but I care more about what Telcos say about this vision.
Is this all I can do with CMT domains? Not really. Stay tuned for "The Unbearable Lightness of Being Stateless" blog, covering neat uses of stateless domains. Stateless is the wrong word, but I hate to change the title when that is all I wrote so far. In the meantime, there is a hub airport you should visit, often, for the places it takes you. And unlike my blog, it has a team behind it: OpenSparc.