Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Effects of Parallel Programming on Gaming Anthony Waterman.

Similar presentations


Presentation on theme: "The Effects of Parallel Programming on Gaming Anthony Waterman."— Presentation transcript:

1 The Effects of Parallel Programming on Gaming Anthony Waterman

2 Topics to Discuss Are online games conceptually parallel? What portions of a game benefit from parallelization? Graphics Processing Units (GPUs) General-Purpose Computing on Graphics Processing Units (GPGPU) History of Parallel Programming in Consoles Parallelization = Game Development Success?

3 Online Client-Server Games are Conceptually Parallel Clients are identical programs with different data (SPMD - Single Program Multiple Data) Multiple client computers take input from a user, execute local game functions, and communicate necessary information to the master server Server takes information from the clients, executes local server-side functions, and communicate necessary information back down to the clients Server Client A Client B Client C Both the clients and the server contribute to as well as make up the overall state of the game

4 Additional Similarities Between Client/Server & Classical Parallel Programming Communication between processors/computers is time consuming Communication time can create bottle necks in both applications Both applications can use local sequential functions to compensate Client/Server Game Classical Parallel Application (Prime Number Sieve) Communication Bottleneck appears as: Game lag Sluggish response time Significantly slower completion time Solution: Local prediction of upcoming game state Locally calculated starting values

5

6 What portions of a game benefit from parallelization? Graphics Graphics in video games are not accomplished in the same way movies/videos are done In a video game, what the player sees is created as the game is played Processors must decide what color each pixel needs to be in order to show the correct image Graphics Processing Units (GPUs) are responsible for nearly all video game graphics

7 What portions of a game benefit from parallelization? Physics Many modern games have simulated physics Simulation Games are generally built around a complex physics environment What happens in the game is a direct result of a multitude physics equations and parameters

8 What portions of a game benefit from parallelization? Artificial Intelligence (AI) AI is an essential component to most video games AI programs generally involve large data sets and robust decision trees, making them prime candidates for parallel computation Another parallelizable function closely linked to AI is pathfinding Pathfinding uses decision tree algorithms to find the most direct/desired path by checking a vast number of possible paths

9 What portions of a game benefit from parallelization? World Generation Example: Minecraft On the PC version of Minecraft, maximum blocks that can be generated in a world is approximately 921,600,000,000,000,000. *This example is only to show the scale of what could be accomplished. Minecraft generates small portions of the world procedurally.

10 What portions of a game benefit from parallelization? Character Generation Custom created characters are common among RPGs Using the same slider type architecture, characters could be created using parallel computing This could be especially useful for generating multiple characters at once Machine created characters should be created intelligently

11 Graphics Processing Units (GPUs) A GPU is essentially a chip with tiny built-in processors or cores often referred to as shaders designed to process graphics Shaders are simplistic by design and are used to process large magnitudes of image data to create the desired picture Generally divided into two types (though others exist) Pixel Shaders – determine the color and attributes of a pixel Vertex Shaders – process 3D data in order to display it on a 2D screen The number of shaders vary by GPU, but the most recent console GPUs have 768 (Xbox One) and 1152 (PS4)

12 General-purpose computing on graphics processing units (GPGPU) What is GPGPU? GPGPU is the use of graphics processing unit’s inherent parallel structure to perform non- graphic calculations GPGPU is used in the #2 ranked supercomputer in the world, the Titan which takes advantage of Nvidia GPUs In gaming, GPGPU can help with some of the more computation intensive tasks such as AI and physics modeling PlayStation 4 is one console that is confirmed to use their GPU in physics simulation applications GPGPU applications are constrained by limited number of operations the GPU cores are able to process

13 General-purpose computing on graphics processing units (GPGPU)

14 History of Parallel Programming in Consoles First use of multiple processors Non-parallel applications (Late 1980’s) 4 th Generation of gaming consoles Super Nintendo Entertainment System (SNES) Sega Genesis/Mega Drive Used Central Processing Unit (CPU) + Graphics Processing Unit (GPU) + Sound Processor Distinct processors carried out specific tasks

15 History of Parallel Programming in Consoles Multiple Processors (Parallel applications) Sega Saturn (1994) (5 th Gen) First console to use 2 CPUs Game developers lacked the ability to program parallel game components Processors were primarily given separate tasks

16 History of Parallel Programming in Consoles Xbox 360 (2005) (7 th Gen) Tri-core CPU with shared memory GPU consisting of 48 cores PlayStation 3 (2006) (7 th Gen) Cell microprocessor using a "Power Processing Element" (PPE) and 6 available “Synergistic Processing Elements” (SPEs) First commercial use of the cell microprocessor architecture in any system, not consoles exclusively GPU consisting of 32 cores (Some graphics tasks handled by Cell CPU)

17 History of Parallel Programming in Consoles Current Generation of Consoles (8 th ) Xbox One (2013) (8 th Gen) CPU consists of 2 quad-core processors, 8 cores total GPU consisting of 768 cores *** PlayStation 4 (2013) (8 th Gen) CPU consists of 2 quad-core processors, 8 cores total GPU consisting of 1,152 cores ***

18 Recent Parallelization Popularity (CPU) 2000-2015

19 Recent Parallelization Popularity (GPU) 2000-2015

20 Not all games require parallelization in order to be successful Parallelization provides benefits: Better graphics More accurate simulations Smarter artificial intelligence Etc. Some games, most notably Independent or Indie games, succeed through captivating gameplay and story Parallelization is a tool that expands a developers options in terms of game design Parallelization = Game Development Success?

21

22 Questions?


Download ppt "The Effects of Parallel Programming on Gaming Anthony Waterman."

Similar presentations


Ads by Google