Massively)Mul+player)Online)Gaming) - - PowerPoint PPT Presentation

massively mul player online gaming on heterogeneous
SMART_READER_LITE
LIVE PREVIEW

Massively)Mul+player)Online)Gaming) - - PowerPoint PPT Presentation

Massively)Mul+player)Online)Gaming) on)Heterogeneous)Parallel)Pla7orms) Radu)Prodan) Ins+tute)of)Computer)Science) University)of)Innsbruck) 01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 1) What)are)MMOGs?) !


slide-1
SLIDE 1

Massively)Mul+player)Online)Gaming)

  • n)Heterogeneous)Parallel)Pla7orms)

Radu)Prodan) Ins+tute)of)Computer)Science) University)of)Innsbruck)

01/09/2014) 1) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014)

slide-2
SLIDE 2

What)are)MMOGs?)

! Real%&me(virtual(world( simula&ons(entertaining(players( distributed(across(the(world( ! Simula&on(en&&es(

  • Avatars(
  • Non%player(characters(
  • Passive(en&&es(
  • Immutable(en&&es((décor)(

! Players(interact(with(each(other( within(game(sessions(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 2)

slide-3
SLIDE 3

MMOG)Genres)

! Massively(Mul&player(Online(Role(Playing( Games((MMORPG)(

  • Adventure(games(
  • World(of(WarcraF,(Eve(Online,(Second(Life,(RunScape,(…(
  • Thousands(of(players(sharing(one(game(session(in(a(huge(

persistent(game(world(

( ! First(Person(Shooter((FPS)(

  • Ac&on(games(
  • Counter(Strike,(BaPlefield,(Doom,(Quake,(…(
  • 64(up(to(few(hundreds(players(in(one(ephemeral(session(

! Real%Time(Strategy((RTS)(

  • Economic(and(baPle(strategy(games(
  • StarcraF,(Empire:(Total(War,(Age(of(Empires,(Dune(II,(…(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 3)

slide-4
SLIDE 4

Why)MMOGs)?)

! hPp://mmodata.blogspot.co.at/( (

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 4)

22)million) subscribers)

slide-5
SLIDE 5

Game)Revenue)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 5)

slide-6
SLIDE 6

MMOG)Computa+onal)Model)

! Real%&me(server(loop(with(a(minimum(required(&ck(rate(

  • Minimum(state(update(frequency(for(a(responsive(playable(game(
  • Up(to(100(Hz(depending(on(game(type(

! Number)and)density)of)players)in(a(game(session(generates(load( that(congest(servers(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 6)

Congested)

slide-7
SLIDE 7

MMOG)Load)

! Long%term(demand(

  • hPp://mmodata.blogspot.co.at/(
  • MMOG(providers(operate(large(

data(centres(

! Short%term(demand(

  • hPp://store.steampowered.com/(
  • Resource(overprovisioning(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 7)

slide-8
SLIDE 8

Research)Agenda)

! History:(2006(–(2014( ( ! EU(edutain@grid,(FP6(STREP(

  • 2006(–(2009(
  • University(of(Münster,(Germany(

! FWF(Real(Games(

  • 2010(–(2013(

! TU(DelF,(Netherlands(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 8)

Service(Level(Agreements( QoS(fault(tolerance( Resource(provisioning( Load(modelling( Parallelisa+on)

slide-9
SLIDE 9

Game)Server)Parallelisa+on)

! Zoning(

  • Spa&al(par&&oning(
  • Geographical(sub%zones(

( ! Replica&on(

  • En&ty(distribu&on(
  • Synchronised(states(

( ! Instancing(

  • Mul&ple(instances(with(

independent(states(

R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 01/09/2014) 9)

slide-10
SLIDE 10

OnUdemand)MMOG)Scaling)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 10)

Massive)join) Massive)join) Massive)leave)

slide-11
SLIDE 11

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 11)

slide-12
SLIDE 12

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( several(ac&ons(

  • Replica+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 12)

slide-13
SLIDE 13

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client)migra+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 13)

slide-14
SLIDE 14

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • DeUreplica+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 14)

slide-15
SLIDE 15

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • DeUreplica+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 15)

slide-16
SLIDE 16

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server)migra+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 16)

slide-17
SLIDE 17

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server)migra+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 17)

slide-18
SLIDE 18

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server)migra+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 18)

slide-19
SLIDE 19

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server)migra+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 19)

slide-20
SLIDE 20

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server(migra&on(
  • Instancing)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 20)

slide-21
SLIDE 21

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to( the(exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server(migra&on(
  • Instancing)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 21)

slide-22
SLIDE 22

OnUdemand)Scaling)Algorithm)

! Scale(the(MMOG(session( up(/down(according(to(the( exhibited(load( ! Combina&on(of(the( following(ac&ons(

  • Replica&on(
  • Client(migra&on(
  • De%replica&on(
  • Server(migra&on(
  • Instancing(
  • DeUinstancing)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 22)

slide-23
SLIDE 23

FPS)Game)Demonstrator)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 23)

slide-24
SLIDE 24

Scaling)Experiment)

! 4(massive(joins(at(1(minute( interval(

  • 80(+(30(+(30(+(50(=(190(users(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 24)

Metric) Player)interac+onU based) Player)thresholdUbased) 40)clients/server) 50)clients/server) Under%alloca&on((avg.)( 0.66%) 0.86%( 8.69%( Total(non%interrup&on( 99.33%) 99.14%( 91.31%( Resource(u&lisa&on( 83.3%) 100%( 83.3%( Zone 0 Zone 1 R1 R1 R2

slide-25
SLIDE 25

Research)Agenda)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 25)

Service(Level(Agreements( QoS(fault(tolerance( Resource(provisioning( Load)modelling) Parallelisa&on(

slide-26
SLIDE 26

Load)Predic+on)

! Load(predic&on(method(

  • Monitor(game(servers(and(log(en&ty(

posi&ons(

  • Use(past(posi&ons(to(predict(future(

en&ty(distribu&on(

  • Translate(en&ty(distribu&on(in(

resource(load(

! En&ty(distribu&on(predic&on(

  • Split(game(world(into(subareas(
  • Predict(the(number(of(players(in(each(

subarea(

  • Time(series(and(neural(network%based(

methods(

1( 2( 3( 6( 5( 4(

t(

Preprocessor Preprocessor) Preprocessor Preprocessor Preprocessor Preprocessor) Neural Network) Neural Network) Neural Network) Neural Network) Neural Network) Neural Network)

1( 2( 3( 6( 5( 4(

t+∆t( Time(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 26)

slide-27
SLIDE 27

Load)Modelling)

! Translate(en&ty(distribu&on( into(resource(load( ! Game(interac&on(complexity(

  • Low,(average,(high(

! !(​$↓1 ,​$↓2 )={)​$↓1 +​$↓2 &+(,)@​$↓1 ∙​log⁠, &+(,∙​log⁠, )@​$↓1 ∙​$↓2 &+(​ ,↑2 )@​$↓1↑2 ∙​log⁠​$↓2 &+(​,↑2 ∙​ log⁠, )@​$↓1↑2 ∙​$↓2 &+(​,↑3 )

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 27)

Network Load Model Memory Load Model CPU Load Model LOAD MAX

( ) ( )

S BE N t BE IC f p p IC IC f p p T T L

i ei ui ci ui SAT C CPU

+ + ⋅ ⋅ ⋅ + ⋅ ⋅ = = , , ! ! " # $ $ % & =

in in

  • ut
  • ut

NET

B D B D L , max

HOST zone game es cs HOST MEM

M m m m BE m N M M L + + ⋅ + ⋅ = =

slide-28
SLIDE 28

En+ty)Predic+on)Results)

! Game(simulator(with(AI(profile%driven(en&&es(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 28)

slide-29
SLIDE 29

Resource)UnderUalloca+on)Events)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 29)

slide-30
SLIDE 30

Research)Agenda)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 30)

Service(Level(Agreements( QoS(fault(tolerance( Resource)provisioning) Load(modelling( Parallelisa&on(

slide-31
SLIDE 31

CloudUbased)Resource)Provisioning)

! Game)operators(generate(resource(requests( based(on(predicted(load) ! Cloud)providers(rent(virtualized(resources( based(on(&me(–(space(–(price(policies( ! Resource)alloca+on)performed(through( request(–(offer(matchmaking(

  • Locality,(instance(type,(size,(dura&on,(price(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 31)

slide-32
SLIDE 32

RuneScape)MMOG)

! World’s(largest(free( MMORPG(

  • 18(million(ac&ve(players(per(

month((15(free(+(3(members)(

  • Over(200(million(registered(

accounts(since(2001(

! 6(month(long(monitoring(data(

  • 17(data(centres,(150(servers(
  • 7(countries,(4(con&nents(
  • >(130(game(worlds(
  • Number(of(player(per(server(

group(at(two(minute(interval(

  • 40(million(samples(per(

simula&on(

R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 01/09/2014) 32)

slide-33
SLIDE 33

Sta+c)versus)Dynamic)Alloca+on)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 33)

slide-34
SLIDE 34

Virtualised)Cloud)Hos+ng)

! VM(instance(management(overheads(

  • Crea&on,(transfer,(start,(removal(

! VM(execu&on(overheads(

  • Computa&on((~(5%)(
  • Networking((~(15%)(

! VM(performance(in(RS)units(

  • Requirements(of(one(server(with(2000(concurrent(clients(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 34)

slide-35
SLIDE 35

Cloud)Hos+ng)Cost)

Average) load) Es+mated)yearly)MMOG)hos+ng)costs)[$]) Amazon(EC2( FlexiScale( NewServers(

Dynamic( Sta&c( Dynamic( Sta&c( Dynamic( Sta&c(

0%( 0) 101,266( 0) 189,426( 0) 202,531( 20%( 23,326) 101,266( 40,920) 189,426( 38,468) 202,531( 50%( 57,345) 101,266( 100,404) 189,426( 97,495) 202,531( 60%( 57,830) 101,266( 101,829) 189,426( 98,179) 202,531( 70%( 66,299) 101,266( 116,458) 189,426( 114,775) 202,531( 80%( 75,709) 101,266( 133,111) 189,426( 129,119) 202,531( 90%( 84,007) 101,266( 147,055) 189,426( 142,578) 202,531( 95%( 88,199) 101,266( 155,039) 189,426( 149,793) 202,531(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 35)

slide-36
SLIDE 36

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 36)

Policy CPU Mem. Time ts tx Virt. [units] [units] [min.] [s] [s] penalty Ideal 0.4 0.25 360 Policy1 0.4 0.25 360 30 5 1% Policy2 0.4 0.25 360 60 10 3% Policy3 0.4 0.25 360 90 20 5% Policy4 0.4 0.25 360 120 40 10%

20% 30% 40% 50% 60% 70% 80% 90% 0% 5% 10% 15% 20% Ideal Policy 1 Policy 2 Policy 3 Policy 4 Load Average under-allocation

Virtualiza+on)Penalty)

0% 2% 4% 6% 8% 10% 12% 0% 5% 10% 15% 20% 25% 30% 70% Load 80% Load 90% Load 95% Load Virtualisation penalty Average under-allocation

slide-37
SLIDE 37

Impact)of)VM)Size)and)Boot)Time)

! 10%(under%alloca&on(increase(

  • For(each(GB(of(VM((
  • For(each(minute(of(VM(start(&me(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 37)

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 0% 5% 10% 15% 20% 25% 30% 35% 40% 70% Load 80% Load 90% Load 95% Load VM size [GB] Average under-allocation

20 40 60 80 100 120 140 160 180 0% 5% 10% 15% 20% 25% 30% 35% 40% 70% Load 80% Load 90% Load 95% Load VM start [seconds]

slide-38
SLIDE 38

Research)Agenda)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 38)

Service(Level(Agreements( QoS)fault)tolerance) Resource(provisioning( Load(modelling( Parallelisa&on(

slide-39
SLIDE 39

Resource)Failure)

! Machine(unavailable(

  • Crash,(hang,(network(interrup&on(

! Players(experience(a(total) interrup+on(in(gameplay(for(a( certain(&me(period( ! Three(self%recovery(ac&ons(

  • Provision(a(new(resource(with(

similar(characteris&cs(

  • Start(a(new(MMOG(server(
  • Reconnect(the(players(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 39)

slide-40
SLIDE 40

Management)Failure)

! Unexpected(high(number(of(players( congest(game(servers(

  • Low(number(of(resources(
  • High(concentra&on(of(players(in(game(

hotspots(

! Players(experience(a(par+al) interrup+on) ! Two(self%recovery(op&ons(

  • Redistribute(clients(to(other(MMOG(

servers((load(balancing)(

  • Provision(more(resources(to(the(

session(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 40)

slide-41
SLIDE 41

Experimental)Setup)

! RuneScape(simulated(environment( ! 16(commercial(Cloud(providers( ! 70(different(VM(types( ! 3500(concurrent(VM(instances(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 41)

slide-42
SLIDE 42

Failure)Traces)

! Availability(model(

  • A.(Iosup(et(al.(On(the(dynamic(resource(availability(in(

grids.(In(8th(IEEE/ACM(InternaAonal(Conference(on(Grid( CompuAng,(pages(26G33.(IEEE(Computer(Society,(2007(

! Generate(traces(with(99.5%(%(99%(availability(

  • Failure(dura&on(
  • Failure(size(
  • Failure(inter%arrival(&me((IAT)(

! Mul&ple(game(operators(with(two(minute(resource( provisioning(delay(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 42)

U+lisa+on) [%]) Number)of) machines) 5( 2120( 20( 520( 40( 280( 60( 190( 80( 150( 95( 140(

slide-43
SLIDE 43

Impact)on)Total)Interrup+ons))

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 43)

slide-44
SLIDE 44

Research)Agenda)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 45)

Service)Level)Agreements) QoS(fault(tolerance( Resource(privisioning( Load(modelling( Parallelisa&on(

slide-45
SLIDE 45

New)MMOG)Business)Ecosystem)

! Client(

  • Request(connec&ons(to(MMOG(session(

( ! Game(provider(

  • Provides(MMOG(&tles(to(clients(
  • Es&mates(concurrently(ac&ve(clients(
  • Nego&ates(Opera&on(SLAs((O%SLAs)(

! Game(operator(

  • Monitors(and(predicts(resource(needs(
  • Provisions(appropriate(Cloud(resources(
  • Nego&ates(Resource(SLA((R%SLA)(

! Resource(provider((Cloud)(

  • Rents(virtualized(IaaS(resources(
  • Locality,(&me,(quan&ty,(price(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 46)

OUSLA) RUSLA)

slide-46
SLIDE 46

Conclusions)

! MMOG(on(IaaS(Cloud(resources(

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 47)

Service(Level(Agreements( QoS(fault(tolerance( Resource(provisioning( Load(modelling( Parallelisa&on(

slide-47
SLIDE 47

Thank)you!)

hfp://www.dps.uibk.ac.at/mmog/)

01/09/2014) R.)Prodan,)12th)Interna+onal)Workshop)HeteroPar)2014) 48)