Data Exchange Optimization
Many contemporary multicore systems feature advanced memory architectures. These may consist of different banks or of hierarchies, in which the large main memory is complemented with smaller but faster memory banks typically owned by a single core or a group of cores (cluster). DMA controllers ensure an efficient exchange of data within such a hierarchy. Proper use of these memory architectures is far from trivial to organize and rarely achieved by anything other than manual programming. We are researching on the automation of this highly hardware-dependent task, such as to increase code portability and to relieve the programmer of being required to understand all details of the memory architecture.
An excellent example for the application and the necessity of this research is given by the NanoTera UltrasoundToGo project, which tries to build a portable, battery-powered high-quality ultrasound device. With data rates in the order of gigabytes per second, efficient memory usage and data exchange become vital for good performance and reliable execution.