Software application development
This blog is intended to provoke discussion and exchange between like minded software application developers, engineers, architects, project managers - and keen hobbyists too.
Tuesday 21 April 2009, 11:15 AM
Intel outlines developer toolkit strategies for parallelism
Intel says its existing tools are focused on maximising parallel performance for C++ Fortran on Windows, Linux and Mac OS X – and the new product will be aligned to C++ using Visual Studio on Windows.
The company’s chief software evangelist James Reinders presented this morning underlining the fact that almost every processor shipped by Intel today is actually multicore. Positioning the Parallels Studio toolkit in line with its HPC (high performance computing) tools, Reinders tried to provide some tangible feel for the latest products by saying, “I’ll promise you that in ten or twenty years we’ll look back and see that what we have developed here isn’t quite perfect, even though I love the product as it stands today. These tools are incredibly powerful but they are not magic, they will not solve all developers’ problems as they move towards parallelism.”
So how do developers add parallelism to their code? Intel’s approach is to take the following structure Design -> Code & Debug ->Verify -> Tune. Logically then, the company has tools that are designed to support each of these processes.
Several references are being made this week to try and refute the anti-threading arguments expounded by Edward A. Lee in his paper “The Problem with Threads” which he composed at the University of California, Berkeley, in 2006. Lee said that, Although threads seem to be a small step from sequential computation, in fact, they represent a huge step. They discard the most essential and appealing properties of sequential computation: understandability, predictability and determinism. Threads, as a model of computation, are wildly nondeterministic and the job of the programmer becomes one of pruning that nondeterminism.” You can read the whole paper here if you wish.
Reinders smiles knowingly every time this paper is mentioned as if it has become his nemesis in the three years since its emergence. Defending his stance and his company’s strategic alignment towards threading and the use of the multicore chips that Intel’s FABs pump out, he cites a plethora of real world application examples that employ parallelism.
According to Intel, parallelism has been popular with many multimedia apps such as AutoDesk Maya and Adobe Photoshop and Apple has used it extensively in its DVD focused applications even when as few as two cores are involved – and there are many more examples in HPC and supercomputing.
Reinder’s also noted that, “Internet Explorer and Outlook also use parallelism to a degree so that they are in fact threaded applications. Although I think Firefox implemented TABS with parallelism much better than IE has done and I think Microsoft knows that, so they are making efforts to catch up.”
There’s a challenge for all the speakers here to make additional layers of complexity digestible for an audience that is (due to its heavy channel presence) mostly interested in how they can describe what the products too so that they can sell more.
There are resources for everyone to read here – and Intel is more than just a little bullish about its position in the market. In fairness to Intel, I speak to a lot of software companies about the escalating needs of the software development marketplace and not many other vendors bother to concentrate on this reality (if I can call it that – and I think I can) in modern development shops. Let’s go forth and multiply then.
Comments on this post
Sounds like an interesting conference, and I am sure the toolkit will have its takers.
Yet Intel only seem to focus on the C++ developer. Perhaps this is because they don't have a managed code language and as such managed code isn't of interest to them.
I would like to think there are more line of business applications being developed in managed code than in C++, which brings me to think that Intel doesn't consider managed code important enough to spend its time on. I could be wrong, I haven't read all your related documents yet, but my thoughts are that if it isn't done using Intels own compilers, they don't want to know. Which could be a very interesting area for AMD to pursue.
It seems we are going to have to rely on Microsoft getting VS2010 absolutely bob-on for these kind of features and they are looking good. I have enjoyed looking at the examples posted so far for the CTP. My concern is that for every new version of Windows, we seem to need a new version of Visual Studio. That may well make sense, it just concerns me a little that when Vista Launched, VS2008 didn't play too well with it.
Thanks for your reply to my post!
In fact, before I embarked upon this trip to meet with Intel I used ZDNet.co.uk's own search function to look up terms such as "multicore" and one of the first pieces I saw was your blog from January of this year here:
http://community.zdnet.co.uk/blog/0,1000000567,10011924o-2000552605b,00.htm
The mantra here this week is, yes, closely aligned to C++, but Intel does insist that it's proximity to other platforms naturally gives it an association with other languages and other OSs aside from Windows. What I mean is that my MacBook Pro runs an Intel dual core and OS X is, as we know, based on Unix. My Acer Aspire runs Linpus Linux Lite on an Atom processor etc.
Intel may be so focused on talking about the capabilities of its intelligent debuggers that pull out serial blocks from parallel structures and (allegedly) fix them with a lower developer pain point - that they may be blinkered away from looking at non C++ managed code.
Perhaps AMD will see that as an area to exploit as you suggest.
This comment has been deleted at the users request


