Recently, there was an online conference with Intel’s James Reinders. The main topic was parallel computing and the process of developing applications for parallel environments. There were many questions asked during the conference, and I am going to present the answers to the most interesting ones (answered by James Reinders).
The first question was about adding support for other programming languages in future Parallel Studio and Parallel Advisor versions, like C# or Java and which IDEs are going to support these new languages. James admitted the fact that there is a big focus on C and C++ when it comes to current versions of Parallel Studio. He mentioned that in the upcoming Visual Studio 2010, Microsoft will add support for parallelism to the C# programming language (known as TPL – Task Parallel Library). Possibly, next year, some of the analysis tools, like Parallel Inspector or Parallel Amplifier will support .NET at a specific level. Java is a bit further off in this situation, as the main problem is caused by resources. Probably the next step will be C# support, that will be implemented a bit more in different tools. The focus in this case comes to the Ct Technology (which is a programming model described by Intel to facilitate a more effective usage of multicore processors). As of IDEs, Microsoft’s Visual Studio already supports Parallel Studio. Linux IDEs and IDEs running on Mac OS X (like XCode) are planned to be fully supported, since the main target at this point is to support the C/C++ development environments.
An interesting question was about the planned implementation of Intel parallel development tools, that would run from the command line without the need to buy expensive development tools. It was pointed out by James that the exact reference in this case is the Intel compiler, that needs Visual Studio to run. The reason for this is because there are some fundamental features, like header files, libraries, the interfaces to the operating system and even the linker, that are a part of the Microsoft development kit (Visual Studio). These elements don’t come with the operating system. The reason why Intel is not implementing their own libraries, linker or any other component of the ones mentioned above is the compatibility. If Intel will develop their own linker or libraries, this will cause incompatibilities on multiple levels, and this leads to user frustration. There are two choices – either be independent and cause incompatibility problems, or depend on Microsoft tools and provide a higher level of reliability and compatibility. The current choice is the second one. Now, the analysis tools can fully work without Microsoft development tools, but the compiler on Windows will permanently require the presence of Visual Studio. This is specific to Windows, since on Linux and Mac OS X, the needed components are either bundled with the operating system or are freely available. The compiler still works in the command line, but it requires Visual Studio.
On the question, whether there is a competition between Intel and Microsoft in the parallel space, James answered that it really depends on what you define as competition, but in fact, there is no real competition between the two companies. There is a healthy exchange of ideas and just like any group of people, sometimes both sides have different views on things, but those are eventually discussed and analyzed. Both companies work on increasing the compatibility. For example, the code for concurrent vectors is in fact in a Microsoft solution and it is fully compatible with various implementations from both companies.
Another interesting question touched the topic on whether parallel computing will eventually move from datacenters and enterprise environment to smaller computer eco-systems, for example, to the home environment. The answer is yes. James mentioned that he is already seeing that. The most important place in his opinion where parallelism can be applied at home is the user interface. Video and image playback is an easily parallelizable task. Actually, parallelism has a place in every application. Maybe, parallel technologies will not be directly used in the application, but rather provided by different services or by the operating system. Voice recognition is yet another domain where parallelism can be of great help. In datacenters parallelism is applied for major data processing, number crunching and many other things, while at home it will have a slightly different task, and that’s the user interface.
There was also a question that asked if .NET will ever become not really suitable for some tasks, will Mono be used to provide the same functionality on other OSes. There wasn’t a definite answer on this, but James said that they (Intel) should see how far Mono can go in terms of .NET development and if it will eventually provide the same functionality set, then they could see Mono used with Intel tools. This is where TBB (Threading Building Blocks) comes, which can be ported to various systems, including Linux and Mac OS X or Xbox 360. It could be of some use if Mono is going to be considered.
With all those questions being asked, there was only one asking about what testing tools are available in Parallel Studio. The most common assumption about running tests is the one that states – if the test was successful, the application runs correctly. When an application uses parallelism, though, the test can be successful, but the things developers should beware of are potential deadlocks, and those should be found and removed even after successful tests. There is analysis needed, not only plain tests. Intel provides Intel Parallel Inspector (ThreadChecker in Linux). This tool finds data raises and deadlocks in parallel applications.
Cloud computing was also discussed, and the question was whether it will be possible to implement parallel development directly in the cloud, without the need of client libraries. Cloud computing is in fact parallel computing. The interconnected servers share their memory and power. Obviously, every client and server connected in the cloud use parallelism. James wasn’t really sure that we will ever see parallelism development tools that could run in the cloud that can be compared to what a client environment has to offer, but the very basic principles can still be applied.
As the conclusion, James mentions that people are definitely more interested in parallel programming. If before, the questions were something like “where do I start”, now the questions are more like “I’m in, what should I do to achieve this”. People are looking for more advice, and this is the biggest change.
Parallel computing is one of those topics that only grows in popularity and is not going to disappear with the current state of the computer industry. With dual-cores giving way to quad-cores, if you are writing an application, you will definitely win from using parallelism.
Page 1 of 1
3 Replies - 2004 Views - Last Post: 01 October 2009 - 12:04 PM
Replies To: Talk Parallel with Intel's James Reinders
Page 1 of 1