Wednesday, February 18, 2009

The Evolution of the Router

From the first IMPs to Fuzzballs to the AGS to Layer 3 switches to Juniper to Vyatta to routers in space, Network World's "Evolution of the Router" slide show tells it all. It's interesting that routing was started on standard hardware platforms early in its evolution. Vyatta is simply leveraging today's more modern standard hardware for the same purpose. The circle is complete, so to speak.

Wednesday, February 04, 2009

And Cisco's profit margin is...

Cisco announced earnings today. You can read the details in the Cisco press release or in press articles summarizing the data presented in the earnings call. What I found interesting was the Cisco gross profit margin: 63% (= $5723M / $9089M).

We have pointed out previously the fact that Cisco has one of the highest gross profit margins the world, other than software companies which have essentially zero cost of goods sold. The profit margin is obscenely high, in fact. High to the point that Exxon-Mobile and other oil companies would be drawn and quartered if they had profit margins that high (about 40% for Exxon in the quarter ending Sept 2008).

So, 63 cents of every dollar that customers paid Cisco was gross profit on the sale last quarter. People will rightly point out that Cisco still had to pay salaries, taxes, and other expenses with that money. But Exxon-Mobile had to do the same thing with only 40 cents of every dollar paid to it, and it was similar with every other company with a lower gross profit margin.

If you ever wondered if Cisco is charging high prices, the latest numbers filed with the SEC provide yet another data point.

Monday, February 02, 2009

Cores, cores, cores...

Andy Patrizio wrote a nice story for last week, titled "Gartner: Too Many Chips Spoil the Server". The article discusses the struggle for software to make use of all the parallelism that is on the cusp of being delivered by the CPU crowd in the form of massive multicore.

Patrizio writes:

With the number of chips per server and cores per chip increasing, future generations of servers may end up with way more processing power than the computer could possibly utilize, even under virtualization, Gartner has found. The research firm issued a report on the issue earlier this week.

The article then goes on to detail the fact that today's software systems might have trouble scaling in a massively multicore environment. Because of this, total processor utilization of all the CPUs in a system may start to drop.

Simply, programmers have relied on the chip boys to delivering chips that execute a single instruction stream faster and faster, from the 1980s up through 2005 or so. They wrote linear code and the chips simply executed that instruction stream faster and faster. These days, the chip boys are reneging on that "promise" and are having to go parallel. While Moore's Law is still in effect (transistor count keeps doubling), we're finding it harder and harder to push up the clock speeds. The result is that everything is going multicore in a big way, and the software folks haven't figured out how to deal with this, yet. The challenge is to find and exploit the parallelism in the software and make use of all the cores. But there is a lot of existing code that doesn't work this way and the tools and techniques for doing this easily or automatically are primitive today.

From Vyatta's point of view, this multicore explosion is a fine development. There are some problems that are naturally parallel; networking is one of them. While you have to make sure that the overall system is balanced to be able to feed the processor (the other data paths have to be fast enough to deliver data when needed), the more processing cores, the better. There are relatively few data dependencies in networking. There are some, particularly for stateful flow tracking, but those dependencies exist temporally, between packets in the same flow; each flow can typically be processed independently of the others.

What this means is that you can expect Vyatta to get better and better in the world of multi-core. And we won't have to re-engineer things greatly to take advantage of this. Unlike software for other applications, networking is in the "sweet spot" for where the world is headed.

Bring on the cores!