Parallel Computing Algorithms & Systems
Auto-tuned parallel software for multi-core processors, GPUs, clusters & clouds
Parallel computing methods must deal with a number of very different parallel computing architectures such as multi-core processors, many-core GPUs, processor clusters and cloud architectures. Traditional parallel algorithms and software have been designed and optimized for individual parallel architectures. This means however that each new architecture requires a new software implementation. Here, we study new parallel methods (parallel algorithms and parallel software) that automatically adapt to the parallel architecture on which they are being executed. Such auto-tuned methods have a software installation phase in which they measure the performance parameters and properties of the parallel architecture (e.g. a multi-core processor or GPU or cluster) and automatically adapt themselves in order to achieve optimal performance and scalability. Such adaptations can include changing algorithm parameters or modifying the entire algorithm.