Todays DAC panel session on EDA and Cloud Computing was interesting and the ensuing discussion was fairly lively (I'm speaking relatively of course. it's a conference of chip design geeks; how lively do you think it could ever get?) But while cries of "The Cloud, The Cloud, My Kingdom for The Cloud" are all very well, I'm only going to get excited when I see some important enabling technology show its face first. Here are four:
- Mobile apps. This is really what Cloud computing is all about. Sure you get to stuff your stuff up on Amazon, somewhere in, well, in the Cloud. But it's how you interact with it when it's up there that's important. You have a LinkedIn app on your iPhone? Or a DropBox one on your iPad? Well, you'll want a Regression Dashboard one too.
- Data Visualization Technology. It's already bad enough trying to wade through a jillion lines of plaintext logfile coming off one or two or five simulations. Imagine what it's going to look like when you have five thousand simulations running in parallel, the log outputs combining into a flood. I'm not just looking for a glorified grep I can run during a boring DAC talk (the Cloud one wasn't boring). We need new ways to look at and in other ways analyze simulation data. We don't, for the most part, know how to do that yet. People like Edward Tufte might. We should ask him. (Here at Verilab we already sent one of the team to do exactly that.)
- Virtualization. Partly because the chip design environment is so heterogeneous (lots of different things as opposed to lots of things-the-same), partly because the EDA tools are not always as well-behaved citizens of the GNU/Linux environments in which the live as we'd like, and partly because it's not easy making a large number of GNU/Linux boxes behave in a sane and stable way anyway, the last thing we want to do is in anything like a manual fashion try to configure five thousand in-the-cloud servers so they are ready to run big chip sims. One way to solve this is to rely on virtual machines which are then cloned and farmed out to the farm.
- Much *much* more robust GNU/Linux configuration. Even with the help of virtualization, that merely helps the scaling, You need a stable system in the first place. Unfortunately GNU/Linux sysadmin is often treated as little more than a glorified (if that) backup-tape-changing, email-fixing job. Its not. If we compare looking after GNU/Linux systems in a chip engineering environment to looking after financial systems, then too often GNU/Linux admin is barely at the level of book-keeping. What it should be compared to is the role of the sophisticated M&A specialist, or investment quant. The GNU/Linux infrastructure needed to design and verify a modern SoC is a significant piece of engineering in its own right, and it needs a significant piece of engineering brain power to run it. Every chip team worth its salt needs such a large-brained sysadmin. Verilab has one. If you don't, go get one. If you don't know what one looks like, ask me and I'll tell you. But a clue: if your guys aren't running Puppet, or something similar, ask why.
Of course there's more to it than even that. We'll want FaceBook "Like" buttons next to simulation output displays, and the ability to retweet a successful regression will be cool too. All of this is why, unlike what one questioner suggested at this evening's panel, "The Cloud" is much more than the same simple build-versus-buy decision we've contemplated for years. No; done right, Cloud-based EDA -- Cloud-based anything -- will be a game changer. Why else would Big Brother Steve be so excited about it, and Brother Richard so not?