From the Editor

Volume 12, Number 24: November 17, 2008
 

There is certainly no shortage of topics to talk about. Yes, there is the world of politics and what many consider to be the most historic election ever. Then there are the financial markets, where buyers have returned to Wall Street after heavy losses looking for beaten-down stocks, still mindful of the economy's growing problems.

But let's talk about some good news. Microsoft just finished announcing some amazing products at the Professional Developers Conference in Los Angeles. In past columns, I've talked about software+services, in addition to cloud computing. Well, now it is official - we have announced Windows Azure, and released a Community Technology Preview of it hosted in a Windows Server 2008-based kernel.

Developers will create applications that run on Windows Azure using Visual Studio and their existing .NET programming skills. You can expect model-driven development and new software patterns, parallelism, and horizontal scale.

The Need for Speed

Speaking of scale and parallelism, I just gave a speech at User2User, the 2008 Mentor Graphics International User Conference. Everyone agreed on one thing: Pushing the limits of computer technology comes from a variety of fields, including electronic design automation, financial analytics, data mining, and medical imaging, to name a few. From 1986 to 2002, the performance of microprocessors improved at the rate of more than 50 percent per year. But the honeymoon is over and we need to think about multi-core programming.

I see huge potential for partners, customers, and the development community to vastly improve both client and server-side performance by leveraging multi-core technologies. Think about it - if you are single threaded on a quad-core processor, you are wasting 75% of your available processing power. On a dual quad-core... well, you can do the math.

The Challenge

Of course this will create new challenges. A dual-core processor at 2GHz may perform very nearly as fast as a single core of 4GHz, if parallelized properly. What is the hitch? The hitch is that programming for multi-core architectures is notoriously difficult, and trying to adapt legacy applications may prove fruitless. However, we must start thinking in terms of concurrency and threading.

When I was a field engineer, we used WinDBG to debug threads for customers. When applications hang, it is usually because of a deadlock or spinning thread. Deadlocked threads can be identified because they barely use the CPU while spinning threads endlessly loop threads, hogging the CPU.

Learning About Parallelism

Microsoft is working very hard on this problem. Our goals are simple:

• Enable developers to express parallelism easily so that they can focus on the problem to be solved

• Improve the efficiency and scalability of parallel applications

• Simplify the process of debugging parallel applications

There is some fantastic material here for you to see from PDC, red hot from the product teams at Microsoft.

I spent some time talking with George Chrysanthakopoulos, who is a brilliant engineer who created a concurrent programming toolkit called the Microsoft CCR and DSS Toolkit 2008. It is available for free download. If you are skeptical, just watch this video, which is a case study for Siemens AG. It changed the way I look at parallelism. Simply awesome.

Are You a Startup?

We recently announced a new program for early-stage startups, called Microsoft BizSpark. The program enables startups to get friction-free access to Microsoft products and tools with no up-front cost. For more information, please see Anand Iyer's blog post.

Want to blog, give a presentation, or get involved in the community. Shoot me an e-mail. Let's talk. Let's meet in person. I am at the Microsoft office in San Francisco frequently. It is in the heart of the city and a great place to hang out.

Let's work together to keep our programming skills strong to survive this tough economy.

Thanks for reading,
Bruno

Subscribe to the MSDN bi-monthly newsletter.

 

 


Links to Help You Succeed

Helpful Links

Technorati

Technorati Profile

Send Bruno Email