0% found this document useful (0 votes)
192 views26 pages

Multiobjective Optimisation of The PSATSim Simulator Using Pareto and Non-Pareto Algorithms

1. The document discusses multi-objective optimization of the PSATSim simulator using Pareto and non-Pareto based approaches like VEGA, NSGA, NSGA II, and SMPSO. 2. PSATSim is a power and performance simulator with many parameters and objectives like cycles, power, and IPC. 3. The algorithms were implemented and tested in a custom framework, with NSGA II and SMPSO modified for parallel evaluation and VEGA showing better performance for the given test scenarios.

Uploaded by

cacalau123
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
192 views26 pages

Multiobjective Optimisation of The PSATSim Simulator Using Pareto and Non-Pareto Algorithms

1. The document discusses multi-objective optimization of the PSATSim simulator using Pareto and non-Pareto based approaches like VEGA, NSGA, NSGA II, and SMPSO. 2. PSATSim is a power and performance simulator with many parameters and objectives like cycles, power, and IPC. 3. The algorithms were implemented and tested in a custom framework, with NSGA II and SMPSO modified for parallel evaluation and VEGA showing better performance for the given test scenarios.

Uploaded by

cacalau123
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Multi-Objective Optimisation of the PSATSim simulator

Analysis of Pareto and non-Pareto based approaches


student: Danila George Cristian coordinator: Conf. dr. ing. Florea Adrian

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

3. Pareto and Non-Pareto based approaches


Non-Pareto approaches Aggregating the objectives Lexicographic ordering VEGA (Vector Evaluated Genetic Algorithm) Pareto approaches NSGA SPEA SMPSO NSGA II

3.1 VEGA (Vector Evaluated Genetic Algorithm)


Proposed by Schaffer in 1984 Selection Each generation the population was split into k subpopulations, where k is the number of objectives The fitness for each subpopulation k depends on the k objective function Proportionate selection - Roulette Wheel Selection Subpopulations are then shuffled and crossover and mutation applied to obtain the next generation Easy to implement Proportionate selection - shuffling and merging of subpopulations leads to averaging the fitness components associated with each objective

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

3.2 NSGA and NSGA II


NSGA Layers of classification of individuals Population is ranked based on domination All non-dominant individuals are classified into one category (with a dummy fitness value - proportionate with the population size) Classified individuals are shared with their dummy fitness value The classified individuals are then removed from the population and the process is repeated for the remainder of the population The process continues until all individuals are classified The first front have maximum fitness value - more copies that the rest of the population - search for non-dominated regions NSGA II Better sorting algorithm Elitism Crowding Distance - how close an individual is to its neighbours Binary Tournament selection based on rank and crowding distance

3.2 NSGA and NSGA II


Crowding Distance The diversity of the population is preserved by a parameterless crowded-comparison approach. The density of individuals surrounding a particular individual i is calculated as the perimeter of the hypercube formed by taking the nearest individuals to i as the hypercube's vertices. This quantity is called the crowding distance. The ranks and the crowding distance lead to the crowded-comparison operator, which in turn guides the selection process. An individual is considered to be better than another if and only if it has a lower rank or, having the same rank, if it has a higher crowding distance.

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

4. GA Framework and PSATSim Optimization


GA Framework is based on jMetal.NET (jMetal implementation for .NET) Modified algorithms: NSGA II & SMPSO Added algorithms: VEGA Additional problems, algorithms, operators and solution types can be added PSATSimOptimizationProblem 10 variables (Super-Scalar Factor, Rename Entries, Reorder Entries, Rezervation Architecture, Separate Dispatch, Rezervation Stations per Buffer, Integer Execution Units, FP Execution Units, Branch Execution Units, Memory Execution Units) 2 objectives (Cycles per Instruction, Energy) Value restrictions based on each variable SolutionType - PSATSimSolutionType Evaluation - SimulationRunner PSATSimInput & PSATSimOutput Runs the console simulator, provides input, reads output

4. GA Framework and PSATSim Optimization


PSATSimSolutionType Creates new solutions Takes variable restrictions into account - Recursive call for generating new individuals that checks for restriction satisfaction PSATSimVariable MutationType - Incremental or Exponential NSGA II & SMPSO modified to allow parallel evaluation of individuals (using .NET Parallel class) Increases execution speed by ~n times the number of cores VEGA, RouletteWheelSelection implementations Implementation of settings classes for the 3 algorithms specific for the PSATSimOptimizationProblem

5. Results
NSGA II population: 100, mutation rate: 0.1, crossover rate: 0.9, Binary Tournament Selection maximum evaluations: 200, 500, 1000

NSGA II - Individuals Best individual: 0.773 CPI, 7.024 W

5. Results
SMPSO swarm size: 100, archive size: 100, mutation rate: 0.1 maximum iterations: 5, 10, 15

SMPSO - Individuals Best individual: 1.605 CPI, 8.333 W

5. Results
VEGA population: 100, crossover rate: 0.9, mutation rate: 0.1, Roulette Wheel Selection maximum evaluations: 200, 500, 1000

VEGA - Individuals Best individual: 0.515 CPI, 7.649 W

Best sets of individuals

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

You might also like