Optimization Methods and Software for Federated Learning