Spark and Dask both offer in-memory computing, data locality, and lazy evaluation,
which is common for Big Data engines. Both their schedulers operate dynamically,
which is good when task runtimes are not known ahead of time [1]}. They
also provide rich, high-level programming APIs, and support a variety of
infrastructure schedulers, such as Mesos [2]}, YARN [3]}, or HPC clusters (Dask only). Over
these similarities, the engines have differences.
