Performance optimization of the MGB hydrological model for multi-core and GPU architectures