by Peter Dzwig
Last year at – and for that matter after – SuperComputing, we wrote about the lack of direction in the parallel software market. In subsequent commentaries, we talked about how, unless there was agreed action across the market place, software could easily become dominated by one company. It looks like Intel are grasping the bull by the horns.
In a recent bout of acquision Intel has bought into its fold since June (though doubtless the negotiations have been going on for much longer) WindRiver, Cilk Arts and now RapidMind.
It's an interesting mixture: the dominant embedded software provider – at least as far as UNIX/Linux systems are concerned – and two smaller, but very innovative, software companies that appear to complement Intel's existing offerings rather well.
Cilk Arts was an MIT offshoot, targeting dynamic and highly asynchronous code. Its C (Cilk) and later C++ (Cilk++) directed offerings align well with Intel; in fact James Reinders said in a blog piece that Intel's Threading Building Blocks (TBB) was inspired by the work of Cilk. So Cilk's Cilk++ offering clearly fits at several levels.
RapidMind's technologies are widely admired throughout the industry and it is hardly surprising that Intel will continue to market RapidMind's offering (though whether under a new label or not, and for how long, remains to be seen). Its tools could fit well with Intel, depending on which way Intel is moving. But we must presume that Intel wouldn't have acquired them were they not broadly heading down the same path.
WindRiver, at a price of some $884 million, is by far the largest of the three, but offers an interesting synergy. It has been suggested that the embedded Linux expertise will sit well with the Larrabee architecture, as the chip has to run its own operating system in order to be able to handle the complexities of its architecture and integrate with the more mainstream device achitectures currently featured in most boxes.
WindRiver also brings considerable mobile expertise. The whole area of mobile devices is one that Intel has targetted for a number of years and which is growing in importance both for the company and for the market as a whole. The current continuing growth in markets for all categories of mobile device, as well as the sheer number of new types of devices that people talk about, means that the area will likely continue to support substantial growth over the next few years. Intel is already a major player there and its strategies would clearly benefit through the acquisition.
So where dos this leave us with respect to parallel systems? Well, it clearly enhances Intel's parallel tools and probably presages a broader development of C++-related technologies to complement its TBB, OpenMP and related offerings; and it provides, at the very least, the ability to expand its tool chain.
But what of the opposition? They haven't as yet replied in similar fashion. As we have said before, we could get once again to a position in which one large or influential company sets the course of software for years to come.
Part of the problem is the sheer diversity of parallel systems. They extend from asynchronous, highly asymmetric embedded systems to highly symmetric ones and with processor complexities running from relatively simple architectures to the extremely complex. The program development issue is then further complicated by the sheer variety of algorithms involved.
Does this mean that there is no single solution to the issue? Possibly not. We have yet to find a single language or development environment that can embrace all types of applications. That may be something that may not change. For the moment, though, Intel is forcing the pace.