1 scalable and transparent parallelization of multiplayer games bogdan simion masc thesis department...

72
1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

Upload: moris-ward

Post on 16-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

1

Scalable and transparent parallelization of

multiplayer games

Bogdan SimionMASc thesis

Department of Electrical andComputer Engineering

Page 2: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

2

Multiplayer games Captivating,

highly popular

Dynamic

artifacts

Page 3: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

3

Multiplayer games

- Long playing times:

- More than 100k concurrent players

Page 4: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

4

Multiplayer games

1.World of Warcraft:“I've been playing this Mage for 3 and a half years now, and I've invested too much time, blood, sweat and tears to quit now.”

- Long playing times:

- More than 100k concurrent players

Page 5: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

5

Multiplayer games

1.World of Warcraft:“I've been playing this Mage for 3 and a half years now, and I've invested too much time, blood, sweat and tears to quit now.”

2.Halo2: “My longest playing streak was last summer, about 19 hours playing Halo2 on my XBox.”

- Long playing times:

- More than 100k concurrent players

Page 6: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

6

Multiplayer games

1.World of Warcraft:“I've been playing this Mage for 3 and a half years now, and I've invested too much time, blood, sweat and tears to quit now.”

2.Halo2: “My longest playing streak was last summer, about 19 hours playing Halo2 on my XBox.”

- Long playing times:

- More than 100k concurrent players

- Game server is the bottleneck

Page 7: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

7

Server scaling

Game code parallelization is hard Complex and highly dynamic code Concurrency issues (data races) require

conservative synchronization Deadlocks

Page 8: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

8

State-of-the-art

Parallel programming paradigms: Lock-based (pthreads)Transactional memory

Previous parallelizations of Quake Lock-based [Abdelkhalek et. al ‘04] shows

that false sharing is a challenge

Page 9: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

9

Transactional Memory vs. Locks

AdvantagesSimpler programming taskTransparently ensures correct execution

Shared data access tracking Detects conflicts and aborts conflicting

transactions

DisadvantagesSoftware (STM) access tracking overheads

Page 10: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

10

Transactional Memory vs. Locks

AdvantagesSimpler programming taskTransparently ensures correct execution

Shared data access tracking Detects conflicts and aborts conflicting

transactions

DisadvantagesSoftware (STM) access tracking overheads

Never shown to be practical for real applications

Page 11: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

11

Contributions

Case study of parallelization for gamessynthetic version of Quake (SynQuake)

We compare 2 approaches: lock-based and STM parallelizations

We showcase the first realistic application where STM outperforms locks

Page 12: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

12

Outline

Application environment: SynQuake gameData structures, server architecture

Parallelization issues False sharingLoad balancing

Experimental results Conclusions

Page 13: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

13

Environment: SynQuake game

Simplified version of Quake

Entities: players resources

(apples) walls

Emulated quests

Page 14: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

14

SynQuake

Playerscan move

and interact(eat, attack, flee, go to

quest)Apples

Food objects,increase life

WallsImmutable, limit

movement

Contains all the features found in Quake

Page 15: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

15

Game map representation

Fast retrieval of game objects

Spatial data structure: areanode tree

Page 16: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

16

Areanode tree

Game map Areanode tree

Root node

Page 17: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

17

Areanode tree

Game map Areanode tree

A B

Page 18: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

18

Areanode tree

A B

Game map Areanode tree

A B

Page 19: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

19

A1

A2

B1

B2

Areanode tree

A B

A1 A2 B1 B2

Game map Areanode tree

Page 20: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

20

Areanode tree

A1 A2 B1 B2

A B

Game map Areanode tree

A1

A2

B1

B2

Page 21: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

21

Server frame

1

2

3

Server frame

Barrier

Barrier

Barrier

Barrier

Page 22: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

22

Server frame

Receive & Process Requests

1

2

3

Server frame

Clientrequests

Page 23: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

23

Server frame

Receive & Process Requests

1

2

3

Server frame

Admin(singlethread)

Clientrequests

Page 24: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

24

Server frame

Clientrequests

Receive & Process Requests

Form &Send Replies

Clientupdates

1

2

3

Server frame

Admin(singlethread)

Page 25: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

25

Parallelization in games

Quake - Locks-based synchronization [Abdelkhalek et al. 2004]

Page 26: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

26

Parallelization: request processing

Clientrequests

Receive & Process Requests

Form &Send Replies

Clientupdates

1

2

3

Server frame

Admin(singlethread)

Parallelization in this stage

Page 27: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

27

Outline

Application environment: SynQuake game Parallelization issues

False sharingLoad balancing

Experimental results Conclusions

Page 28: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

28

Parallelization overview

Synchronization problems Synchronization algorithms Load balancing issues Load balancing policies

Page 29: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

29

Collision detection

• Player actions: move, shoot etc. • Calculate action bounding box

Page 30: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

30

Action bounding box

P1

Short- Range

Page 31: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

31

Action bounding box

P1

P2

Short- Range

Long- Range

Page 32: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

32

Action bounding box

P1

P2

P3

Page 33: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

33

Action bounding box

P1

P2

P3

Overlap P1

Overlap P2

Page 34: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

34

Player assignment

P1

P2

P3

T1

T3Players handled by threads

If players P1,P2,P3 are assigned to distinct threads → Synchronization required

Long-range actions have a higher probability to cause conflicts

T2

Page 35: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

35

False sharing

Page 36: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

36

False sharing

Move range

Sh

oo

t ran

ge

Page 37: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

37

False sharing

Action bounding box with locks

Move range

Sh

oo

t ran

ge

Page 38: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

38

False sharing

Action bounding box with TM

Action bounding box with locks

Move range

Sh

oo

t ran

ge

Page 39: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

39

Parallelization overview

Synchronization problems Synchronization algorithms Load balancing issues Load balancing policies

Page 40: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

40

Synchronization algorithm: Locks

Hold locks on parents as little as possible Deadlock-free algorithm

Page 41: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

41

Synchronization algorithm: Locks

A B

1

2

P1

P2

P4

P3P5

P6

P

A B

A1 A2 B1 B2

Root

P1

P2P5, P6 P4

P3

Page 42: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

42

Synchronization algorithm: Locks

A B

1

2

P1

P2

P4

P3P5

P6

P

A B

A1 A2 B1 B2

Root

P1

P2P5, P6 P4

P3

Area of interest

Page 43: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

43

Synchronization algorithm: Locks

A B

1

2

P1

P2

P4

P3P5

P6

P

A B

A1 A2 B1 B2

Root

P1

P2P5, P6 P4

P3

Area of interest

Leaves overlapped

Page 44: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

44

Synchronization algorithm: Locks

A B

1

2

P1

P2

P4

P3P5

P6

P

A B

A1 A2 B1 B2

Root

P1

P2P5, P6 P4

P3

Area of interest

Leaves overlapped

Lock parentstemporarily

Page 45: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

45

Synchronization: Locks vs. STMLocks:

1. Determine overlapping leaves (L)

2. LOCK (L)

3. Process L

4. For each node P in overlapping parents

LOCK(P)

Process P

UNLOCK(P)

5. UNLOCK (L)

STM:

1. BEGIN_TRANSACTION

2. Determine overlapping leaves (L)

3. Process L

4. For each node in P in overlapping parents

Process P

5. COMMIT_TRANSACTION

Page 46: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

46

Synchronization: Locks vs. STMLocks:

1. Determine overlapping leaves (L)

2. LOCK (L)

3. Process L

4. For each node P in overlapping parents

LOCK(P)

Process P

UNLOCK(P)

5. UNLOCK (L)

STM:

1. BEGIN_TRANSACTION

2. Determine overlapping leaves (L)

3. Process L

4. For each node in P in overlapping parents

Process P

5. COMMIT_TRANSACTION

STM acquires ownership gradually, reduced false sharingConsistency ensured transparently by the STM

Page 47: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

47

Parallelization overview

Synchronization problems Synchronization algorithms Load balancing issues Load balancing policies

Page 48: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

48

Load balancing issues

Assign tasks to threads

Balance workload

T1 T2

T3 T4

P2

P1

P3

P4

Page 49: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

49

Assign tasks to threads

Cross-border conflicts→ Synchronization

T1 T2

T3 T4

P2

P1

Moveaction

Shootaction P3

P4

Load balancing issues

Page 50: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

50

Load balancing goals

Tradeoff:Balance workload among threadsReduce synchronization/true sharing

Page 51: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

51

Load balancing policies

a) Round-robin

Y

256

768

1024

512

0 256 768 1024512

X

- Thread 3 - Thread 4- Thread 1 - Thread 2

Page 52: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

52

Load balancing policies

a) Round-robin

Y

256

768

1024

512

0 256 768 1024512

X

- Thread 3 - Thread 4- Thread 1 - Thread 2

b) Spread

256

768

1024

512

0 256 768 1024512

Y

Page 53: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

53

Load balancing policies

c) Static locality-aware

- Thread 3 - Thread 4- Thread 1 - Thread 2

b) Spread

256

768

1024

512

0 256 768 1024512

X

Y

256

768

1024

512

0 256 768 1024512

X

Y

Page 54: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

54

Locality-aware load balancing

Dynamically detect player hotspots and adjust workload assignments

Compromise between load balancing and reducing synchronization

Page 55: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

55

Dynamic locality-aware LB

Game map Graph representation

Page 56: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

56

Dynamic locality-aware LB

Game map Graph representation

Page 57: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

57

Experimental results

Test scenarios Scaling:

with and without physics computation The effect of load balancing on scaling The influence of locality-awareness

Page 58: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

58

128

256

384

640

768

896

1024

512

0 128 256 384 640 768 896 1024512

- Quest 1

X

YQuest scenarios

Page 59: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

59

Quest scenarios

- Quest 3

128

256

384

640

768

896

1024

512

0 128 256 384 640 768 896 1024512

- Quest 4

X

Y

- Quest 1 - Quest 2

Page 60: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

60

Scalability

Page 61: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

61

Processing times – without physics

Page 62: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

62

Processing times – with physics

Page 63: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

63

Load balancing

Page 64: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

64

Quest scenarios (4 quadrants)Y

static

dynamic

- Thread 3 - Thread 4- Thread 1 - Thread 2

Page 65: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

65

Quest scenarios (4 splits)

static dynamic

- Thread 3 - Thread 4- Thread 1 - Thread 2

Page 66: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

66

Quest scenarios (1 quadrant)

static dynamic

- Thread 3 - Thread 4- Thread 1 - Thread 2

Page 67: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

67

Locality-aware load balancing (locks)

Page 68: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

68

Conclusions

First application where STM outperforms locks:Overall performance of STM is better at 4

threads in all scenariosReduced false sharing through on-the-fly

collision detection

Locality-aware load balancing reduces true sharing but only for STM

Page 69: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

69

Thank you !

Page 70: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

70

Splitting components (1 center quest)

Page 71: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

71

Load balancing (short range actions)

Page 72: 1 Scalable and transparent parallelization of multiplayer games Bogdan Simion MASc thesis Department of Electrical and Computer Engineering

72

Locality-aware load balancing (STM)