  Serverless computing is increasingly being used for parallel computing, which
have traditionally been implemented as stateful applications. Executing
complex, burst-parallel, directed acyclic graph (DAG) jobs poses a major
challenge for serverless execution frameworks, which will need to rapidly scale
and schedule tasks at high throughput, while minimizing data movement across
tasks. We demonstrate that, for serverless parallel computations, decentralized
scheduling enables scheduling to be distributed across Lambda executors that
can schedule tasks in parallel, and brings multiple benefits, including
enhanced data locality, reduced network I/Os, automatic resource elasticity,
and improved cost effectiveness. We describe the implementation and deployment
of our new serverless parallel framework, called Wukong, on AWS Lambda. We show
that Wukong achieves near-ideal scalability, executes parallel computation jobs
up to 68.17x faster, reduces network I/O by multiple orders of magnitude, and
achieves 92.96% tenant-side cost savings compared to numpywren.
