Thursday, November 13, 2008

Build for multi-cores now!

I guess we've all heard of the "free performance lunch".  For many years we have enjoyed a "free" performance improvement for our apps in line with CPU performance gains.  Buy a newer machine and your apps run faster.  Basically we're getting more cycles which makes our slow apps faster over time.  Whilst Moore's Law predicts exponential growth, this relates to transistor densities, and we've seen a spectacular growth in data storage, but the rise in clock speeds has slowed, and the growth is now to multi-cores.  The free lunch is over.

In line with this trend, Windows 7 can scale to 256 processors.

But even though the free lunch is over, the Redmond Steakhouse will be open for free dinners if you build software for multi-cores now. (The gag continues, Winston)

The Moth has some wise words of advice to start now.  I really recommend his recent articles on Fine Grained Parallelism and Do NOT Explicitly Use Threads for Parallel Programming.

He says "Our goal with parallel programming is to write once and have our code scale well as the hardware underneath it gets better, i.e. see incremental benefits when running our app on machines with more cores without changing the code."  Chunking your app into fine grain partitions which can be threaded provides part of the answer, but "we need some kind of user mode "engine" to schedule only as many threads as the number of cores on the machine and we need this to take place automatically for us. We also need to be able to partition the overall compute-bound operation into many work items that will get executed by the "engine"."  That engine is there now, but improvements are coming in .NET 4.

Daniel's blog also has articles on Threading vs Parallelism and the Parallel extensions in .NET 4 (which are also available in CTP for .NET 3.5 now).

Also worth keeping an eye on is the Microsoft Parallel Programming team blog.

Monday, November 10, 2008

Software Factories resurface as "Blueprints"


Back on 25th October, I said.......

Steve Cook is co-author of seminal book on Software Factories : : Assembling Applications with Patterns, Models, Frameworks, and Tools, together with Jack Greenfield, Keith Short & Stuart Kent.  After a drought of over 2 years, Keith Short has surfaced to tell us he's been working on Oslo, so I wonder if Jack has also?  Has the software factory initiative morphed into Oslo?

Well, not quite.........

Just notes for now


A one day lab on the DSL Tools has been posted.


Andre Furtado - PhD Candidate (UFPE), Software Engineer (Microsoft Corporation) has a Codeplex project - Feature Model DSL.  This is based on the Feature Model DSL in the Practical Software Factories in .NET by Gunther Lenz and Christoph Wienands.  Haven't run it yet, 'cos the installer said I needed VB :-(

New stuff - 11 November

StyleCop violations as you type

There's a new release of StyleCop for ReSharper.  Howard van Rooijen has been joined by some other devs.  This means that you get hit with StyleCop violations as you type.

VS2010 goes WPF

Brad Abrams has a short video of Scott Guthrie's PDC keynote about some of the things coming in VS2010.  In the video Scott reveals that VS2010 will use WPF and also use MEF(managed extensibility framework) to extend it.  So that's a great validation for us about WPF which we're using, and MEF which we'll probably adopt.  The video's only 6 minutes and is really worth it.

Hammett (founder of Castle Windsor - now working on MEF) talks about the proposed lifetime support for MEF.

Other new stuff

Drop 5 of Prism v 2 is out.

Distributed Development

I recently blogged about some new paper guidance from the Patterns & Practices team about distributed development.  The article about Distributed Agile Development is essential reading for any distributed development shop.

A useful companion to this article is work being done by David Tuffley at Griffith University.  I saw David present at an ACS meeting on work he is doing on Leadership of Integrated Virtual Teams.  As the title implies it particularly looks at the expanded leadership characteristics that are essential to get the most out of virtual / distributed teams.

Both articles recognise that whilst co-located teams are preferable, in today's world this is not always possible.  So recognising this reality, they provide practical suggestions and a framework to lift our game in this area.

Saturday, November 1, 2008

PDC without the cost & jet lag

You can watch videos of the PDC sessions on channel9.msdn

These are the ones that are on my viewing list:

  1. Day Two #2 - Chris Anderson and Don Box - Keynote
  2. Day Two #1 - Ray Ozzie, Steven Sinofsky, Scott Guthrie and David Treadwell - Keynote
  3. Day One - Ray Ozzie, Amitabh Srivastava, Bob Muglia and David Thompson - opening keynote
  4. Oslo - The Language - Don Box
  5. A Lap around Oslo - Douglas Purdy
  6. Oslo - Customizing and Extending the Visual Design Experience - Don Box
  7. Windows 7- Design Principles for Windows 7 - Samuel Moreau
  8. A Lap Around Windows Azure - Manuvir Das
  9. Team Foundation Server 2010: Cool New Features - Brian Harry
  10. Microsoft Visual Studio Team System- A Lap Around VSTS 2010 - Cameron Skinner
  11. Managed Extensibility Framework- Overview - Glenn Block
  12. Microsoft Sync Framework Advances - Lev Novik
  13. Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio - Daniel Moth
  14. Microsoft Visual Studio- Bringing out the Best in Multicore Systems - Hazim Shafi
  15. Entity Framework Futures - Tim Mallalieu
  16. WF 4.0- A First Look - Kenny Wolf
  17. WF 4.0- Extending with Custom Activities - Matt Winkler
  18. The Future of C# - Anders Hejlsberg
  19. Deep Dive- Dynamic Languages in Microsoft .NET - Jim Hugunin
  20. Framework Design Guidelines - Krzysztof Cwalina & Brad Abrams
  21. Microsoft Expression Blend- Tips & Tricks - Douglas Olson
  22. WPF Roadmap - Kevin Gjerstad
  23. Silverlight Controls Roadmap - Shawn Burke
  24. Microsoft Silverlight, WPF and the Microsoft .NET Framework- Sharing Skills and Code - Ian Ellison-Taylor
  25. Microsoft .NET Framework- Declarative Programming Using XAML -

I wonder how long I'll take to get through more than a 24 hour day's worth of riveting presos, especially as I haven't finished the first one yet?