Communication-aware Parallelization Strategies for High Performance Applications.
Résumé
With the advent of multicore processor architectures and the existence of a huge legacy code base, the need for
efficient and scalable parallelizing compilers is growing. Where
multi-core processors were seen as the way forward to address
the known challenges such as the memory, power and ILP wall,
efficient parallelization to make use of the multiple cores, is still
an open issue. In this paper, we present two complementary
tools, MCROF and XPU which provide an alternative development
path to parallelize applications and that address the challenges
of identifying potential parallelism and exploiting it in a different
way. The MCROF tool provides a detailed profile of the data
flowing inside an application and the XPU programming paradigm
provides an intuitive and simple interface to express parallelism as
well as the necessary runtime support. We demonstrate through
two different use cases that better performance up to 4× can be
achieved than available commercial compilers.