Add underscore string to spark worker.
Two phase compute.

Instead of building the computation tree and running a task at the same
time, build the computation tree first while asynchronously launching
data dependency fetches and then push results from the bottom up.

Two reasons:
  1. Prefetches data
  2. Makes handling wide dependencies trivial (we know how many
  partitions depend on a partition before we start running the
  computation).
Retain order when splitting rdds.
Remove useless file.