Parallel implementation of multi-population differential evolution