  A good parallelization strategy can significantly improve the efficiency or
reduce the cost for the distributed training of deep neural networks (DNNs).
Recently, several methods have been proposed to find efficient parallelization
strategies but they all optimize a single objective (e.g., execution time,
memory consumption) and produce only one strategy. We propose FT, an efficient
algorithm that searches for an optimal set of parallelization strategies to
allow the trade-off among different objectives. FT can adapt to different
scenarios by minimizing the memory consumption when the number of devices is
limited and fully utilize additional resources to reduce the execution time.
For popular DNN models (e.g., vision, language), an in-depth analysis is
conducted to understand the trade-offs among different objectives and their
influence on the parallelization strategies. We also develop a user-friendly
system, called TensorOpt, which allows users to run their distributed DNN
training jobs without caring the details of parallelization strategies.
Experimental results show that FT runs efficiently and provides accurate
estimation of runtime costs, and TensorOpt is more flexible in adapting to
resource availability compared with existing frameworks.
