Historically, Intel has made extensive investments in development tools, to augment their silicon products. Two classic examples are Intel's compiler suite or their math libraries. These particular tools are aimed at achieving high performance, but in recent years, Intel has also started paying attention to issues of correctness, and helping developers troubleshoot their code, particularly for parallel software. Parallel programming is a field experiencing extreme growing pains; in the past, multiprocessor systems were the exception rather than the rule. Consequently, few developers worried about the complexities of thread synchronization or partitioning their problems for scalability. However, since dual core designs are now the norm for high performance MPUs, with quad core designs on the horizon, parallel programming is a problem that almost all software developers have to address. At today's Gelato Itanium Conference and Expo keynote, Intel continued that tradition and announced a set of new tools specifically for parallel programmers.
The first tool to be announced was an extension for VTune, one of Intel's existing products. VTune is a performance analysis tool used by software developers, architects and intelligent reviewers to understand the behavior of an application with respect to the hardware. This new Linux release of VTune has been augmented and now sports sophisticated support for discovering memory leaks in a parallel environment. Memory leaks occur when a process no longer needs a block of memory, but does not relinquish the memory to the operating system. There are several tools that can check for this sort of behavior, such as Valgrind, but they are typically not integrated into performance analysis suites. So while this capability isn’t new to programmers, it will be in a much more convenient form and more focused on a parallel environment.
The second and more important tool that Intel announced was a beta release of what is currently called Intel's Next Parallel Programming Model (PPM). The PPM is actually a C++ template based run-time library. The library contains many parallel algorithms and data structures, which have been extensively tested and verified by Intel. The library can be called from within an application, so developers don’t need to worry about all the mechanics of threading and can focus on getting their application out the door. The library is supported on Windows (x86), OS X (x86) and Linux (IPF and x86) and will work with Intel, Microsoft and GNU compilers. For more details, go to http://intel.com/software/products/tbb/beta/.
C++ is an obvious candidate for the PPM, since it is one of the more common languages where performance is a major consideration. However, there are certainly a couple of other popular languages that could use this sort of help. The first one that comes to mind is Java. Admittedly, Java programmers are usually less concerned about performance than their C/C++ counterparts, but they would certainly benefit from being able to scale their applications up to large systems. While Intel’s PPM does not support Java at this time, perhaps it will in the future.
Of the two new offerings, clearly the new parallel programming libraries are the most significant, but both will be welcome. All together, it is great news for the industry that Intel is seriously focusing on making life easier for developers. Many experts seem to believe that a language designed for parallel execution would be far superior to the status quo and could be necessary for application performance is to stay on track with Moore’s Law. One question raised by these developments is whether parallel libraries and tools will obviate or reduce the desire for a new parallel programming language. All together, there is no clear answer, but programmers usually prefer to extend old technology when feasible.
No comments:
Post a Comment