they're the same
generating execution plans for model-parallel training
pre-Bazel and Bazel
how to make dependent reductions nicer