  The evolution in the design of modern parallel platforms leads to revisit the
scheduling jobs on distributed heterogeneous resources. The goal of this survey
is to present the main existing algorithms, to classify them based on their
underlying principles and to propose unified implementations to enable their
fair comparison, both in terms of running time and quality of schedules, on a
large set of common benchmarks that we made available for the community. Beyond
this comparison, our goal is also to understand the main difficulties that
heterogeneity conveys and the shared principles that guide the design of
efficient algorithms.
