Wednesday Oct 15, 2008

Chip Multi-Threading, Cooking and the Anatomy of a Viral Video

Here's a fun video about chip multi-threading, explained through cooking:

The Story

For those of you who don't speak German: Ingo, the hero of this movie, wants to cook German roulades. He uses his hands as registers, while his table serves as a level 1 cache. The instruction cache is his brain, where the recipe resides. Soon, he reaches the point at which it says: "Pour red wine into the pan". There's no red wine in the registers, no wine in the L1 cache, so he needs to ask his memory subsystem: "Hooooney, would you mind bringing me a bottle of Merlot from the basement, pleaaaase?"

While "honey", the memory subsystem, is busy bringing wine, Ingo explains that at this point, there's no difference whether he stirs the dish at 1.4 GHz, or at 4.5 GHz (this is the piece where his stirring gets frantic). Actually, he'd rather use his precious time to do other useful things with what he has in L1 cache already, for example cook dumplings, or prepare dessert. That would indeed help a lot in getting dinner ready sooner, even while waiting for "honey" to bring some wine.

And that is the whole point of chip multi-threading.

Now, imagine 8 Ingos, each with two hands (think pipelines) and doing 4 dishes per hand (read: threads). What a feast!

CMT Cooking Going Viral

I first saw Ingo giving this presentation in February, during Sun Germany's Partner University event. It was hilarious, the whole  room was laughing and we knew he needed to do it again. So, with the help of a few people, Ingo and Ulrike created this fun video.

They posted it on YouTube in July and we featured it on one episode of the HELDENFunk podcast for German system admins. Soon, Ingo reached a few hundred downloads and we thought: "Cool, we have a new fun video to share!"

Then, Alex Wunschel, aka the "Podpimp", one of the more well-known podcasters in Germany and a listener of the HELDENFunk podcast, twittered about Ingo's memory subsystem called "Schatz!" (the German equivalent of "honey"). That was even cooler.

Then, Thomas Knüwer saw Alex' Tweet, and blogged about it. On the "Handelsblatt" blog. Think something like "Fortune" Magazine in German. And he got 14 comments. Gulp. 

The result: Ingo's views skyrocketed, soon he was in the thousands, and last time I checked, he had more than 13,500 views, for a 3.5 minute video about chip multi-threading and a memory subsystem called "honey". Nice!

Today, Alec and I chatted about Ingo's video and apparently, he liked it very much. Well, I guess Ingo can start counting again. This time, english speaking viewers, too. Have fun!

Would you like Ingo to dub his video in English? Or do you prefer the German version? Just drop a comment below! 

Thursday Oct 25, 2007

Behind the scenes of the HELDENFunk podcast production

Marc, our heroic HELDENFunk producer Earlier this week, we posted episode 4 of the (german) HELDENFunk podcast to the site. It includes a CEC 2007 roundup with a pointer to Alec's excellent Futurology presentation, some information on the new UltraSPARC T2 based servers and some coverage of the Team Jefferson project.

Christian Müller, our studio guest in the latest episode told us that and the HELDENFunk podcast are now known as a great example of a well functioning "B2B messaging platform" (you have to excuse Christian, he's in marketing...) and he's busy travelling from marketing droid conference to marketing droid conference telling people what actually is. To me it's just a nice place for german sysadmins to hang out in :).

To the right, you see Marc Baumann, our heroic podcast producer while he's making sure that HELDENFunk listeners enjoy good sound. And so, let's take a look behind the scenes of the HELDENFunk podcast:

Once (now twice) per month we gather in a small conference room to record the next episode. Marc got us some nice microphones to record with: An Audio Technica AT-2020 for the moderator and two Røde NT5 for our guests. The audio goes through a Behringer Eurorack MX 802A Mixer where Marc can adjust the volume and pan for each individual speaker, then goes to a Native Instruments Audio Kontrol 1 A/D converter (which I already blogged about) and audio interface that is connected to my Apple Powerbook. We use Logic Audio Express 7 for recording (I'm still waiting for my upgrade to the new Logic Studio 8) and Marc uses Logic Studio 8 for mixdown and mastering (he already got his upgrade). Unfortunately, there are no good pro audio software solutions on Solaris, but who knows what the future will bring...

As you can see (and hear), good audio quality starts with good microphones and good mixing and A/D equipment. Still, post-processing is very important. I listen to a lot of podcasts while driving to work and these are the most common things that annoy me about podcast audio quality:

  • Overall low volume: It's such a hassle to have to turn up the volume a lot so you can actually understand what people say, then get yelled at once you switch from MP3 player to radio. Make sure your podcast has a volume that is comparable to radio or normal music. This usually means peak levels of just below 0 dB.
  • Poor audio quality: As said, 90% of a good sounding podcast is using good equipment before sound goes into the computer. Quality matters and the better quality audio comes into your computer, the better the outcome will be. For mastering, we prefer 128 kBit MP3 because it gives you reasonable audio quality (for a podcast) and maximum compatibility with devices at acceptable file sizes.
  • Large variations of speaker volume: When having multiple speakers, make sure their volume is more or less equal, otherwise some will yell while others will whisper. It's hard to adjust the volume while driving to work :). Using a compressor during post processing helps a lot here.

Me, talking to a microphone, trying not to look too silly.For the casual interview, we use a Zoom H2 audio recorder (here's a great and helpful review). This device offers excellent portable audio quality, ease of use, lots of recording options and great sensitivity, even in very difficult recording situations. For example, listen to the final episode of the CEC 2007 podcast (another podcast I was involved with) where we had a lot of background noise, still the voices could be heard nicely. Thanks to the 24 bit audio resolution, we can increase the volume way up for more distant or less loud speakers without introducing too much noise or artifacts. This can be heard during the second episode of the same podcast, where we spontaneously added John Fowler to the round of guests, while he was sitting at the other end of the table, more than a meter away from the microphone. Still, his voice can be understood quite well.

Yesterday, we recorded another interview for our next episode, which will be recorded next monday. With the new two week cycle, we now live in an "After the episode is before the episode" kind of world...

 If you understand german, try the HELDENFunk podcast. It's also listed in the iTunes podcast directory. And let us know your feedback and suggestions by writing to Thank you for listening!

Credits: Thanks a lot to Randy and Mel for shooting these pictures during the recording of episode 2.

Tuesday Oct 09, 2007

CEC 2007: JavaFX on stage, podcasting with Jonathan and Web 2.0 at the unconference

A screenshot of the CEC Message Prompter JavaFX Application 

Boy is this CEC 2007 conference a busy place! Here's a couple of things that got me excited since my last post:

  • Yesterday we had an Unconference session coupled with a couple of speed geeking sessions. Three of the speed geeking sessions were centered around Web 2.0: Neeraj presented on CE 2.0, our new collaborative infrastructure for the field that leverages a lot of Web 2.0 principles. Hal Stern shared some fascinating thoughts about why DRM is Morons and why sharing content is always a good thing, even if it's professional music or movies or other traditional content.
  • Today, after the morning sessions and the big launch, a couple of colleagues and I sat down to record the second episode of the CEC 2007 Podcast. This time, Jonathan Schwartz and John Fowler joined in, together with Matthias Pfützner, Robert Holt, Dave Levy and Michael Ramchand. Don't miss this episode where we share our impressions of CEC and discuss some thoughts about the value of Web 2.0 to us.
  • This CEC has also probably seen the debut of JavaFX and JavaFX Script on a big stage :). To the top, you see a screenshot done by Rajesh of an application that we use to prompt questions from the audience to the presenters on stage. Questions come in through SMS, Email and Instant Messaging while the presenter on stage gives his talk. They are aggregated and fed into a database by the CEC Backstage Messaging Team. Finally, they are displayed onto a screen through the CEC Message Prompter for the speaker and the audience to see.
    The message prompter is written in JavaFX Script. It uses traditional Java classes to access the database through JDBC and it can also digest messages in an XML format through the JAXB API and this is the first significant feature of JavaFX: You can mix traditional Java Classes with JavaFX Script seamlessly, leaving all the heavy-lifting to Java so you can concentrate on the GUI through JavaFX script. Another nice feature of JavaFX Script is the declarative syntax: You just write down how what you want and the JavaFX runtime takes care of instantiating the objects, initializing their parameters and fiddling them into the Swing event loop.
    The above photo only shows a screenshot, but the application is animated: Every time a new message is highlighted, old messages are reduced in size and color while the highlighted message grows and becomes a darker color. Also, to the right, there is a dynamic tag cloud that reflects all of the words visible on screen and where the size of the word indicates its multitude. Again, the tags are animated based on the changes in the message part. Programming animations in JavaFX is very easy thanks to two constructs: Variable binding and parameter streaming. Variable binding means binding an object attribute (i.e. the HTML code that describes the rendering of the message) to a variable (the position of the message in the message list). After the binding, the attribute behaves much like a marionette: As soon as something changes in the data model (i.e. a new message is added to the display list), the attribute is updated in real time and the font characteristics are updated to reflect the change (in this case, the next message grows while the older one shrinks). And here comes another mechanism to help, the "dur" statement. A line like "myVariable = [0..100] dur 500" means: Assign the values 0 to 100 to the variable myVariable during the next 500 milliseconds. Perfect for animation control! JavaFX takes care of all the setting up of timer threads etc. under the hood, while the programmer can essentially animate everything in their application. Very nice.
    Of course, the CEC Message Prompter is not bugless, and unfortunately, the highlighting went wrong a few times :). Fortunately, this didn't seem to confuse anyone, but today I implemented a watchdog mechanism to make sure stuff always has the right size no matter what. I hope that this works more smoothly tomorrow...
    I'd like to encourage everyone to try JavaFX script out. It still feels a lot like beta but it's already quite useable, heck, we're using it in production right now at CEC :). Let me know if you want the source code to the CEC Message Prompter application.
Well, that's it for now. Off I go to drop into a session real quick before attending a meeting and then there's a party scheduled, too...

Monday Oct 01, 2007

New HELDENFunk Podcast Episode Featuring 3 Interviews (2 in English)

HELDENFunk Episode 3 pictures 

Today, the 3rd episode of the HELDENFunk podcast went live. And we now have a jingle, too! I'm glad we reached this milestone: If we can bring out three regular episodes of this podcast, we can do 10, then maybe 100...

Even if this podcast is mostly in german, there are two very interesting interviews in english:

Of course, there's much more, albeit in german: Ulrich Gräf, OS Ambassador talks about Solaris 10 8/07 (update 4), we discuss Sun's newest servers based on Intel CPUs, the CFS acquisition, a nice case mod where one of our customers put a Solaris 10 server into his hand luggage, Solaris xVM and Project eTude and much, much more.

In fact, from episode 1 to 3, this podcast has ever increased in length. Maybe it's time to move to a bi-weekly schedule soon...

P.S.: If you understand german, make sure to participate in our sweepstake competition! 


Tune in and find out useful stuff about Sun Solaris, CPU and System Technology, Web 2.0 - and have a little fun, too!


« July 2016