The need to write scalable applications has been important for programmers in the HPC community for years. Now, with the proliferation of multi/many-core processors developing scalable software is now a top priority for many programmers.
Andrew S. Tanenbaum stated at the USENIX ’08 conference last year that developing “sequential programming is really hard” … the difficulty is “parallel programming is a step beyond that.”
He is right, but let’s illustrate why it is just a small step.
Here is the point – parallel architectures will continue proliferating and we will need to develop and refine parallel algorithms that exploit parallelism. While difficult, to develop and refine parallel algorithms, the actual programming of these new algorithms, does not need to be hard. However, if the developer is required to know the intimate details of the hardware then the development and refinement parallel algorithms can be very difficult, and very time consuming.
One approach provided by Intel software developer tools is to abstract away the details of the hardware. This allows the developer to focus on their algorithms /applications, and rely on Intel software developer tools to provide the best optimizations for current and future platform While you may give up some performance by being abstracted away, what you lose in performance will be rewarded by your ability to quickly iterate through more iteration of your parallelization ideas in less time. You may find yourself designing and developing better approaches to parallelism because you were able to test more hypotheses.
An additional by-product of being abstracted away from having to know the intricacies of the hardware is that your software will be highly adaptable to future platforms. You will see tremendous improvements on multi-core solutions and will be in a great position scale your application performance forward as newer architectures are made available.
To learn more Intel Software Tools and the benefits of optimizing your software on multi core based solutions first visit http://software.intel.com/en-us/intel-sdp-home/