Generic parallel programming for scientific and technical applications
Technical and scientific applications dealing with a high computational load today face the challenge to match the increasingly parallel nature of current and future hardware. The talk shows how the increased complexity of software can be controlled by using generic programming technologies. The process and its advantages are introduced using many concrete examples, starting from simple operations on sequences (like sum/reduce or local filters), then moving into higher-dimensional applications like image processing and finally to particle methods based on dynamic neighborhood graphs. We explain how to come to a generic solution, and demonstrate how this approach helps to decouple the algorithmic code from technical details of the data organisation and of the parallelisation framework (e.g. C++ threads, OpenMP, pthreads, TBB, ...), how it improves testability, and leads to less and better maintainable code.
Speaker: Guntram Berti