Distributed Convolutional Neural Network Training On Resource-Constrained Mobile And Edge Clusters