A Multi - Objective Genetic Algorithm for Program Partitioning and Data Distribution Using TVRG