210 likes | 365 Views
Resource Allocation in Heterogeneous Computing Systems. By Chris Klumph and Kody Willman Advisor: Professor H.J. Siegel. Resource allocation in a MMOG. in a m assive m ultiplayer o nline g ame (MMOG) multiple users are simultaneously connected at any given time
E N D
Resource Allocation in Heterogeneous Computing Systems By Chris Klumph and KodyWillmanAdvisor: Professor H.J. Siegel
Resource allocation in a MMOG • in a massive multiplayer online game (MMOG) multiple users are simultaneously connected at any given time • a heterogeneous system includes • varying computer capabilities • varying communication times • need to implement resource allocation heuristics for this heterogeneous system
Mn Mn-1 Mn M1 … Mn-1 Main Server M2 M6 M1 … Main Server SS2 SS6 M3 M5 M3 M5 M4 M4 Part of our problem all players connected directly to a MS vs. players are connected to a MS directly or through SS
Goal of Project and Terminology Goal Terminology • given 200 players are directly connected to MS • need to create different heuristics • distribute the 200 players between MS and SS • So RTmax time is as low as possible • RTmax • the maximum communication time between computers and MS • heuristic • way to allocate resources • chromosome • mapping of a possible solution of players and SS
For this problem Chris has worked on Kody has worked on • Genitor heuristic • Min-Min heuristic
Genitor Overview Genitor_matching_scheduling { initial_population_generation; ranking; while(stopping criteria not met) { selection; crossover; mutation; ranking; } output best solution found; } • selection – selects 2 random parents in the hope of duplicating better chromosomes • crossover – picks 2 random points within chromosomes, and swaps data points in between points • mutation –randomly mutate elements within chromosomes • ranking – determines which chromosome represents the best solution found, inserts into ranked list • stopping criteria – 10,000 iterations with no change in best solution or 10 minutes
Chromosome Example 6 2 Users 1 & 3 connected to SS which is user 2 Users 4 & 5 connected directly to MS Users 7, 8 connected to SS which is user 6 4 1 8 5 7 3
Initial Population and Ranking • initial population generation • M – connected to main server(MS) as a player • SS– player is a secondary server • 1-8 – player is connected to that SS • randomly generates 200 chromosomes • ranking (R#) • create ranked list based on each chromosome’s RTmax
Selection and Crossover • selection • two parents • roulette wheel selection • crossover - two point Point 1 Point 2 swap the 3 through 6 portion
Crossover Fixing • fixing – line not always valid check that all players match up to valid SS or MS randomly assign the players to the known SS or to MS
Mutation • randomly swap numbers • 0.1% chance rank each chromosome, then sort into mapping
Repeat and Final Output • drop two lowest-ranking chromosomes • repeat until 10,000 iteration of no change in best solution or 10 minutes • output best solution • at location Rank 1 • done
Min-Min Overview • have 200 players or tasks • run a greedy Min-Min (used as base comparison) • run Phase1 • run Phase2 • compare completion times • output best solution considering all unmapped tasks while(there are unmapped tasks) { find task with single overall minimum computation plus connection time; assign task to corresponding machine; update machines and computation and connection times; }
Min-Min Introduction • no players connected to MS, only SS • 3 types of players • UP – unmapped player • SS – secondary servers • M – mapped to MS • 1-10 – player mapped to that SS find player with minimum connection plus computation time connect player update connection and computation times repeat for all unmapped players
Greedy Min-Min Base • start with all users unmapped • randomly pick k users (between 1-10) to be initial SS • finish the mapping with a modified Min-Min heuristic • not able to create more SS than k randomly generated
Phase 1 implementation • find the user with the largest RTmax • if user is SS or M • no other players connected • remap as player connected to SS with a better RTmax • if user is connect to SS • remap as player to different SS with better connection time or • remap as SS with better connection time • repeat for 1000 iterations or no update
Phase 2 set up • start with the end mapping from Phase 1 • find the set of all the SS • from the set of SS find the SS with the largest α • α is highest computation plus highest communication • p is the number of players connected to that SS • µ is the computational constant for that SS • Comm(SS, MS) is the communication time from SS to the MS • α = (p)² x µ + 2 x Comm(SS, MS)
Phase 2 implementation • try swapping all mapped players into the set of SS in the α SS location • remap with the modified Min-Min • if mapped player gives a better round trip time • make that mapped player a SS • repeat 1000 iterations or no improvement • output best solution
Future Work • continue to modify current heuristics to get better results • could possibly implement other types of heuristics • consider making it a dynamic application where players can join, play, and then leave • budget • have not needed to buy equipment or programs • still have full budgeted amount of $100 • sponsors • no sponsors currently Questions?