ReGen: Optimizing Genetic Selection Algorithms for Heterogeneous Computing