  Nowadays, cloud-based services are widely favored over the traditional
approach of locally training a Neural Network (NN) model. Oftentimes, a cloud
service processes multiple requests from users--thus training multiple NN
models concurrently. However, training NN models concurrently is a challenging
process, which typically requires significant amounts of available computing
resources and takes a long time to complete. In this paper, we present
UnifiedNN to effectively train multiple NN models concurrently on the cloud.
UnifiedNN effectively "combines" multiple NN models and features several memory
and time conservation mechanisms to train multiple NN models simultaneously
without impacting the accuracy of the training process. Specifically, UnifiedNN
merges multiple NN models and creates a large singular unified model in order
to efficiently train all models at once. We have implemented a prototype of
UnifiedNN in PyTorch and we have compared its performance with relevant
state-of-the-art frameworks. Our experimental results demonstrate that
UnifiedNN can reduce memory consumption by up to 53% and training time by up to
81% when compared with vanilla PyTorch without impacting the model training and
testing accuracy. Finally, our results indicate that UnifiedNN can reduce
memory consumption by up to 52% and training time by up to 41% when compared to
state-of-the-art frameworks when training multiple models concurrently.
