Distributed Gradient Descent Optimization Algorithm