Multiobjective Optimisation of The PSATSim Simulator Using Pareto and Non-Pareto Algorithms
Multiobjective Optimisation of The PSATSim Simulator Using Pareto and Non-Pareto Algorithms
Summary
1. 2. 3. Multi-Objective Optimisation PSATSim Simulator Pareto and Non-Pareto based approaches 3.1. VEGA (Vector Evaluated Genetic Algorithm) 3.2. NSGA and NSGA II 3.3. SMPSO GA Framework and PSATSimOptimizationProblem Results Encountered issues Conclusions
4. 5. 6. 7.
1. Multi-Objective Optimisation
Problems with more than one objective function for optimisation Conflicting objective functions - a single solution that optimizes each objective does not exist (non-dominant solution concept) Pareto Front A way of determining optimal solutions Figure (1) shows the Pareto front for a minimization problem. Solution C is not in the Pareto front because it is dominated by both A and B. A and B are not strictly dominated by any other.
Figure (1)
2. PSATSim Simulator
An interactive graphical superscalar architecture simulator for power and performance analysis (Clint W. Smullen and Tarek M. Taha, Clemson University, 2006) Parameter constraints and parameter dependencies Large number of input parameters Multiple trace files General: Super-Scalar factor, Rename Entries, Reorder Entries etc. Execution: Execution Unit Architecture, Reservation Architecture etc. Memory/Branching: Cache accuracy, latency etc. Outputs Instructions Cycles Power (W) IPC Execution time (ns)
2. PSATSim Simulator
2. PSATSim Simulator
2. PSATSim Simulator
Also contains a command line executable The command line executable requires a XML configuration file specifying the parameters Allows for easily running the simulator from another application by creating configuration files psasim_con.exe -path_of_config_file -path_of_output_file -g
1. initialize population 2. evaluate population 3. while evaluations < maxEvaluations 4. update population using the Roulette Wheel Selection method using the apropriate objective function based on subpopulation 5. shuffle population 6. crossover 7. mutation 8. evaluate and add to offspring population 9. evaluations += populationSize 10. replace population with offsprings 11. end while 12. rank the population 13. return first front
VEGA Pseudocode
1. initialize population 2. generate random population 3. evaluate objective values 4. while eval < maxEval 5. binary tournament selection 6. crossover 7. mutation 8. evaluate and add to offspring population 9. eval += populationSize 10. union population with offsprings 11. rank the union 12. assign crowding distance to each front until all are evaluated 13. end while 14. rank the population 15. return the first front
NSGA II Pseudocode
3.3 SMPSO
Based on the OMOPSO algorithm - particle swarm optimization Pareto dominance and crowding distance Velocity constriction mechanism External archive to store the non-dominated solutions (leaders) Density estimator: crowding distance Leader selection: binary tournament from the leaders archive taking into account the crowding distance Mutation (turbulence) operator
1. initialize swarm 2. initialize leaders archive 3. generation = 0 4. while generation < maxGenerations 5. compute speed 6. update positions 7. mutation // Turbulence 8. evaluation 9. update leaders archive 10. update particles memory 11. generation ++ 12. end while 13. return leaders archive
SMPSO Pseudocode
5. Results
NSGA II population: 100, mutation rate: 0.1, crossover rate: 0.9, Binary Tournament Selection maximum evaluations: 200, 500, 1000
5. Results
SMPSO swarm size: 100, archive size: 100, mutation rate: 0.1 maximum iterations: 5, 10, 15
5. Results
VEGA population: 100, crossover rate: 0.9, mutation rate: 0.1, Roulette Wheel Selection maximum evaluations: 200, 500, 1000
6. Encountered issues
Invalid input combinations caused the simulator to crash Implemented restrictions for crossover, mutation operators and for the initial individual creation jMetal works with real variables whilst the PSATSimOptimization problem requires integer variables Hard to visualize and compare run results Implemented a simple visualizer for one or many results
7. Conclusions
Parallel evaluation of fitness increases speed of execution VEGA seems to perform better for the given scenarios Randomly generated individuals Original NSGA II & SMPSO used polynomial mutation Next to no prior knowledge about the problem used Faster - less complex Hypervolume should be used as a stop condition see discrepancies between SMPSO and VEGA & NSGA II results Testing various scenarios for this specific problem would require a lot of time and hardware resources in order to obtain satisfying results