Intel unveils Parallel Studio XE 2013
September 6, 2012 —
(Page 2 of 3)
Related Search Term(s): Cluster Studio, Intel, multi-threading, Parallel Studio
Reinders said this comes from “conditional numeric reproducibility. It's about floating-point numbers. I think a lot of people don't think about it: We were taught in school [that] addition and multiplication are associative. Well, they're not associative if you do round off. Floating points are approximations. When you run programs multiple times, if it computes the math at all differently, you could get different results. They shake your ability to be confident your program is stable.
“So we've implemented things to allow the programmer to take control of that, and ask our libraries and compilers to ensure the same math is done every run. That comes with a performance penalty, and in practice it's around 10% to 20%. Our customers are telling us the overhead is usually quite reasonable and having that reproducibility is valuable.”
Intel Parallel Studio XE 2013 is available in three versions: one for Fortran, one for C++ and one for both. The Fortran edition is US$1,899, the C++ edition is $1,599, and the mixed edition is $2,299. Later this year, Intel will ship Intel Cluster Studio XE 2013, which includes some additional tools targeted at the HPC market. Specifically, Intel Cluster Studio XE 2013 includes the new Intel Message Passing Interface library, as well as the Intel Trace Analyzer and Collector. Intel Cluster Studio XE 2013 will cost $2,949.
All of these new capabilities make Intel's Parallel Studio a useful tool for finding difficult bugs in multi-threaded programs. One example of this is the new heap growth analysis available in this version. This new capability can be used to track down memory leaks.
“As people take programs and add parallelism to them, they find that they're debugging a program that has concurrency, and that's not easy,” said Reinders. “Problems can happen many different ways. Even if you make a simple programming error, in a program with thousands of threads, there's so much that can happen, it's difficult to envision where the source of the error is. We've extended traditional error-checking methods or made them work in parallel environments.