Probably the biggest difference between academic and commercial writing is this: academic writing is almost always concerned with algorithms and process, commercial writing is almost always driven by a specific set of technologies. In this case, I'm being paid by AMD to explain integration of CodeAnalyst and Eclipse CDT. So …
read moreC++0x to Incorporate Standard Threading Model
The working groups of the C++0x committee are working hard to complete a major new standard for C++ (there's a big meeting here in Kona in October). If you're not intimate with C++, you may be surprised that such an important language has not had a standard threading model …
read moreDynamic Language Runtime / IronRuby Inst-analysis
That Microsoft was going to increase support for dynamic languages is no surprise: they've been talking about that since (at least) PDC '03 and various hires and initiatives have clearly been in the works. I haven't seen the DLR yet, but my big question is: what version / runtime / patch level …
read moreExceptions in the Manycore Era
Here's some interesting reading on the challenges of and possible strategies for dealing with exceptions in concurrent versions of C++. The try...catch...finally model of exception handling introduces its own control flow. How will that interact with concurrent models in which you're passing around a "future" (essentially, an IOU …
read moreWhen Things Go Awry Writing
I've been writing a series of articles for DevX on concurrent programming. The final installment was supposed to be "Multicore for multimedia." Plan A was to speed up the MAD (MPEG Audio Decoder) processing library using OpenMP. That went well enough except for the fact that the code was so …
read moreConcurrent Programming in C# Intro
DevX has published my introductory article on concurrent programming in C# (a companion piece to my earlier article on C++/CLI and OpenMP). The interesting thing is that OpenMP makes parallel constructs easier to express in C++ than is possible in C#. On the other hand, C#'s memory management …
read moreArticle on Using OpenMP with C++/CLI
My latest article on DevX shows how easy it is (in the best case) to use OpenMP with C++/CLI. OpenMP is a low-level library to help create concurrent operations. One of things I talk about in the article is that it is at the finest-grain (loops) and the coarsest-grain …
read moreExample of Surprising Closure Behavior
::: {style="font-size: 10pt; background: white; color: black; font-family: courier new"} What do you expect to be outputted from this program (note that line 19 captures the outer variable "i")?
[ 1]{style="color: #2b91af"} [using]{style="color: blue"} System;
[ 2]{style="color: #2b91af"} [using]{style="color: blue"} System.Collections.Generic;
[ 3 …
read moreParallelApply: Distribute Calculations Over Multicore / Processors
This code applies a BackgroundFunction to elements of an IEnumerable using the ThreadPool. If you don't know what that means, it's probably not of interest to you:
::: {style="FONT-SIZE: 10pt; BACKGROUND: white; COLOR: black; FONT-FAMILY: Courier New"} [ 10]{style="COLOR: #2b91af"} [delegate]{style="COLOR: blue"} [void]{style="COLOR: blue"} [BackgroundFunction …
read more