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

Scalable and transparent parallelization of multiplayer games

Dec 31, 2015

Download

Documents

brianne-haughey

Scalable and transparent parallelization of multiplayer games. Bogdan Simion MASc thesis Department of Electrical and Computer Engineering. Multiplayer games. Captivating, highly popular Dynamic artifacts. Multiplayer games. - More than 100k concurrent players. - Long playing times:. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Scalable and transparent parallelization of  multiplayer games

1

Scalable and transparent parallelization of

multiplayer games

Bogdan SimionMASc thesis

Department of Electrical andComputer Engineering

Page 2: Scalable and transparent parallelization of  multiplayer games

2

Multiplayer games Captivating,

highly popular

Dynamic

artifacts

Page 3: Scalable and transparent parallelization of  multiplayer games

3

Multiplayer games

- Long playing times:

- More than 100k concurrent players

Page 4: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

7

Server scaling

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

conservative synchronization Deadlocks

Page 8: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

12

Outline

Application environment: SynQuake gameData structures, server architecture

Parallelization issues False sharingLoad balancing

Experimental results Conclusions

Page 13: Scalable and transparent parallelization of  multiplayer games

13

Environment: SynQuake game

Simplified version of Quake

Entities: players resources

(apples) walls

Emulated quests

Page 14: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

15

Game map representation

Fast retrieval of game objects

Spatial data structure: areanode tree

Page 16: Scalable and transparent parallelization of  multiplayer games

16

Areanode tree

Game map Areanode tree

Root node

Page 17: Scalable and transparent parallelization of  multiplayer games

17

Areanode tree

Game map Areanode tree

A B

Page 18: Scalable and transparent parallelization of  multiplayer games

18

Areanode tree

A B

Game map Areanode tree

A B

Page 19: Scalable and transparent parallelization of  multiplayer games

19

A1

A2

B1

B2

Areanode tree

A B

A1 A2 B1 B2

Game map Areanode tree

Page 20: Scalable and transparent parallelization of  multiplayer games

20

Areanode tree

A1 A2 B1 B2

A B

Game map Areanode tree

A1

A2

B1

B2

Page 21: Scalable and transparent parallelization of  multiplayer games

21

Server frame

1

2

3

Server frame

Barrier

Barrier

Barrier

Barrier

Page 22: Scalable and transparent parallelization of  multiplayer games

22

Server frame

Receive & Process Requests

1

2

3

Server frame

Clientrequests

Page 23: Scalable and transparent parallelization of  multiplayer games

23

Server frame

Receive & Process Requests

1

2

3

Server frame

Admin(singlethread)

Clientrequests

Page 24: Scalable and transparent parallelization of  multiplayer games

24

Server frame

Clientrequests

Receive & Process Requests

Form &Send Replies

Clientupdates

1

2

3

Server frame

Admin(singlethread)

Page 25: Scalable and transparent parallelization of  multiplayer games

25

Parallelization in games

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

Page 26: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

27

Outline

Application environment: SynQuake game Parallelization issues

False sharingLoad balancing

Experimental results Conclusions

Page 28: Scalable and transparent parallelization of  multiplayer games

28

Parallelization overview

Synchronization problems Synchronization algorithms Load balancing issues Load balancing policies

Page 29: Scalable and transparent parallelization of  multiplayer games

29

Collision detection

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

Page 30: Scalable and transparent parallelization of  multiplayer games

30

Action bounding box

P1

Short- Range

Page 31: Scalable and transparent parallelization of  multiplayer games

31

Action bounding box

P1

P2

Short- Range

Long- Range

Page 32: Scalable and transparent parallelization of  multiplayer games

32

Action bounding box

P1

P2

P3

Page 33: Scalable and transparent parallelization of  multiplayer games

33

Action bounding box

P1

P2

P3

Overlap P1

Overlap P2

Page 34: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

35

False sharing

Page 36: Scalable and transparent parallelization of  multiplayer games

36

False sharing

Move range

Sh

oo

t ran

ge

Page 37: Scalable and transparent parallelization of  multiplayer games

37

False sharing

Action bounding box with locks

Move range

Sh

oo

t ran

ge

Page 38: Scalable and transparent parallelization of  multiplayer games

38

False sharing

Action bounding box with TM

Action bounding box with locks

Move range

Sh

oo

t ran

ge

Page 39: Scalable and transparent parallelization of  multiplayer games

39

Parallelization overview

Synchronization problems Synchronization algorithms Load balancing issues Load balancing policies

Page 40: Scalable and transparent parallelization of  multiplayer games

40

Synchronization algorithm: Locks

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

Page 41: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

47

Parallelization overview

Synchronization problems Synchronization algorithms Load balancing issues Load balancing policies

Page 48: Scalable and transparent parallelization of  multiplayer games

48

Load balancing issues

Assign tasks to threads

Balance workload

T1 T2

T3 T4

P2

P1

P3

P4

Page 49: Scalable and transparent parallelization of  multiplayer games

49

Assign tasks to threads

Cross-border conflicts→ Synchronization

T1 T2

T3 T4

P2

P1

Moveaction

Shootaction P3

P4

Load balancing issues

Page 50: Scalable and transparent parallelization of  multiplayer games

50

Load balancing goals

Tradeoff:Balance workload among threadsReduce synchronization/true sharing

Page 51: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

54

Locality-aware load balancing

Dynamically detect player hotspots and adjust workload assignments

Compromise between load balancing and reducing synchronization

Page 55: Scalable and transparent parallelization of  multiplayer games

55

Dynamic locality-aware LB

Game map Graph representation

Page 56: Scalable and transparent parallelization of  multiplayer games

56

Dynamic locality-aware LB

Game map Graph representation

Page 57: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

58

128

256

384

640

768

896

1024

512

0 128 256 384 640 768 896 1024512

- Quest 1

X

YQuest scenarios

Page 59: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

60

Scalability

Page 61: Scalable and transparent parallelization of  multiplayer games

61

Processing times – without physics

Page 62: Scalable and transparent parallelization of  multiplayer games

62

Processing times – with physics

Page 63: Scalable and transparent parallelization of  multiplayer games

63

Load balancing

Page 64: Scalable and transparent parallelization of  multiplayer games

64

Quest scenarios (4 quadrants)Y

static

dynamic

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

Page 65: Scalable and transparent parallelization of  multiplayer games

65

Quest scenarios (4 splits)

static dynamic

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

Page 66: Scalable and transparent parallelization of  multiplayer games

66

Quest scenarios (1 quadrant)

static dynamic

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

Page 67: Scalable and transparent parallelization of  multiplayer games

67

Locality-aware load balancing (locks)

Page 68: Scalable and transparent parallelization of  multiplayer games

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: Scalable and transparent parallelization of  multiplayer games

69

Thank you !

Page 70: Scalable and transparent parallelization of  multiplayer games

70

Splitting components (1 center quest)

Page 71: Scalable and transparent parallelization of  multiplayer games

71

Load balancing (short range actions)

Page 72: Scalable and transparent parallelization of  multiplayer games

72

Locality-aware load balancing (STM)