Avoiding Communication In First Order Methods For Optimization