Optimization Algorithms Over Distributed Systems