Should you make friends with an academic?

The Babbage column in The Economist has published a short report about parallel computing, in the context of the water-cooled machines at Supercomputing ’11. The piece makes an interesting point about the way that supercomputing didn’t invent parallel computing, but it did turn the theory into practice and kickstart the cycle of innovation we see in consumer PCs with cheap multicore chips being widely available, and many proven techniques available to programmers to exploit them. It’s often observed that the desktop follows where high performance computing leads, but I guess the interesting thing is that the theories were already established. We have lots of theories and proposed solutions available today for different parallel programming solutions. It made me wonder whether their advocates should focus their efforts towards securing a major supercomputing implementation, as proof of concept? Certainly, if your goal was to get a parallel paradigm off the ground, it might be a smart move to befriend academics who might be interested in your work. I reckon one big supercomputing installation would carry a lot more weight than a few hundred implementations among consumer-software programmers. What do you think?

It also occurred to me that water-cooling could add a huge amount of complexity to the data centre. I guess supercomputers aren’t designed to be just dropped into the typical data centre, but ultimately the designs might end up there. Data centres today already struggle to manage their physical resources, particularly power, space and heat dissipation (and having the right combination available at the right place to support the right equipment), so adding another dimension of water plumbing would make many a data centre manager break out in a sweat.

Food for thought, certainly. You can check out The Economist’s article here.

Microsoft adds game-style achievements to Visual Studio

Now this is a bit of a strange one. It appears that Microsoft has created an extension to Visual Studio that will assess programmers’ work for various “achievements” and then give them badges that they can post on their blogs, Microsoft’s forum, and other places.

Microsoft does have some history in this area. It created Ribbon Hero, an add-on for Microsoft Office that used a gameplay-like experience to train people on using the ribbon interface that was introduced in Office 2007. The idea of turning training into a game is gaining some traction, and it seems that the Visual Studio project is the latest embodiment of that.

I think the concept of it is quite clever. I can see how it could inspire people to become better programmers, by driving them to explore new language features, tools, and program architectures. The implementation seems a little bit confused to me, though, because there’s a whole class of ‘Don’t try this at home’ achievements, which are things you should ideally avoid doing, like having lots of single-letter variables and using the goto keyword. There are achievements for lonely people coding on a Friday or Saturday night (which I can see being strangely desirable to many programmers!) and an achievement for using swear words in a file.

That said, there are plenty of achievements you might want to collect and publicise, including those related to pre-processor directives, a solution that takes ten minutes to compile, and one that’s complex enough to require 50 projects. You get points for using performance tools too. You can find out more, download the extension and peruse the full list of achievements here.

I’d love to see some achievements relating to parallel programming in there. What achievements would you like to be recognised for in your code or programming habits?

New research shows 66% of software engineers don’t use a thread checker

Dr Dobbs has published new research (PDF) which shows that 66% of software engineers don’t use a thread checking tool of any kind. You might not be surprised at that, but 56% of those surveyed said they considered parallel programming to be important, and a further 26% said it was critical. That suggests to me that there is a gap between programmers and their tools: while they might recognise the importance of parallel programming, they aren’t fully tooled up to do a good job of it. The most popular thread checkers were Intel Inspector XE (used by 11% of those surveyed), Micro Focus Boundschecker (9%), and Helgrind (6%). Other tools accounted for 8% and 8% said they didn’t know, presumably drawn from those people who aren’t actively engaged with parallel programming yet. Programmers reported that they tend to use manual methods to find and fix software bugs, such as print statements and log analysis.

These figures can be contrasted with those for performance tuning tools. 30% of those surveyed said they use Visual Studio 2010 (the most popilar tool) for performance tuning, which is nearly three times as many people who use the most popular thread checker.

You might not be surprised to know that the main reason why programs are converted to run in parallel is to improve performance, although 7% of people said they converted programs for reasons of customer perception.

The survey was based on 275 software engineers or development team managers who mostly use C/C++ as their primary language (with a handful using Fortran). The fact that newer parallel languages weren’t represented could be taken to mean that programmers prefer to work with parallel extensions for old languages, than to learn a new one. The survey was sponsored by Intel.

Does this data show that thread checking is still in its infancy, despite the huge interest in parallel programming? Do you have any thoughts on why this might be?

Follow

Get every new post delivered to your Inbox.