Author's Blogs

Mixing MPI and OpenMP, hugging hardware and dealing with it
By James Reinders (Intel) Posted on 11/16/09 2
This morning, I took a rare break, and attended a tutorial at Supercomputing.  I'm glad I did. The tutorial looked at the pros and cons of mixing MPI and OpenMP in a single program, and was taught by Rolf Rabenseifner (University of Stuttgart), Georg Hager (University of Erlangen) and Gabriele J...
When test suites fail us (when they meet parallelism).
By James Reinders (Intel) Posted on 10/09/09 1
Another week and another customer shared how messed up their test suites were because of parallel programming. So where are we going wrong? First, it is natural to feel confused and disoriented when a failure "escapes" into the wild.  In other words, when a bug is not caught by our test suites it...
Presentations at IDF about Software Tools, available for download
By James Reinders (Intel) Posted on 09/23/09 0
Today, at Intel's Developer Forum, we have taught many classes on our tools, and have a few left to go. If you could not join us in San Francisco, the presentations are available online for downloading at My talks, including one today with Steve Teixeira of Microsoft, c...
Version 2.2, Intel Threading Building Blocks, worth a look
By James Reinders (Intel) Posted on 08/04/09 7
If you write C or C++ code, and you haven’t given Intel Threading Building Blocks (TBB) a try, you really should. Intel Threading Building Blocks has emerged as the most popular high level programming method for writing parallel programs (see Evans Data Corp:
parallel_for is easier with lambdas, Intel Threading Building Blocks
By James Reinders (Intel) Posted on 08/03/09 10
Lambdas are an exciting new addition to C++ in the current draft for C++ 0x. (see my prior post for "Hello Lambda" - my introduction to Lambdas). The Intel compilers support them now in the Intel compiler products, and Microsoft has support in their beta for Visual Studio 2010. I think we can exp...
"Hello Lambdas" C++ 0x, a quick guide to Lambdas in C++
By James Reinders (Intel) Posted on 08/03/09 10
The current draft of the new C++ 0x standard includes lambda functions. I think we can expect this to be very popular. I'll show a "Hello, World" example, and then explain the syntax very briefly. In a future posting I’ll write about lambdas and their use with Intel Threading Building Blocks. He...
Cilk + Intel
By James Reinders (Intel) Posted on 07/31/09 1
Parallelism can be smooth as Cilk? (pronounced "Silk") If you've visited today, you see that the Cilk engineering team has joined Intel. I was surprised how fast I've gotten questions from a note on the Cilk web site on a Friday afternoon - it happened only minutes after the posting!  I'...
Parallel programming is fundamental, High School here we come
By James Reinders (Intel) Posted on 07/17/09 7
Teaching programming and teaching parallel programming - should they be different? I don't think so. We've always had many elements to teach when we teach programming - data structures, algorithms, databases, parsing, scheduling, etc. Parallelism is yet-another item to throw on the list of thin...
Updates today for our compilers, libraries and cluster toolkits
By James Reinders (Intel) Posted on 06/23/09 2
Today we released updates for our C++ and Fortran compilers, our Intel Math Kernel (MKL) and Intel Integrated Performance Primitives (IPP) libraries and Cluster toolkits. Noteworthy additions include outstanding performance enhancements, support of Intel® Advanced Vector Extensions (AVX) and incl...
on Processors, Cores and Hardware threads
By James Reinders (Intel) Posted on 10/29/08 4
In discussing the ins and outs of parallel programming, we need to distinguish between the terms processor, processor core and hardware threads. It is easy to be imprecise and say 'processors' sometimes when we mean 'processor cores' - but with multicore processors being everywhere it seems that ...