Parallelization in a generic image processing library



Milena is an image processing library focused on genericity: using advanced template meta-programming techniques, algorithms are written once and can then run on many types of images: 1D, 2D, 3D, graph-based, built on a cell complex, etc. In order to improve the efficiency of the library we would like to introduce optimization techniques offered by modern processors: multicore parallelism and SIMD (Single Instruction, Multiple Data) vectorization. In this report we investigate how such low-level constructs can be integrated while preserving genericity.