The Effects of Parallel Programming on Gaming

The Effects of Parallel Programming on Gaming The Effects of Parallel Programming on Gaming - Start

Added : 2016-12-01 Views :51K

Download Presentation

The Effects of Parallel Programming on Gaming




Download Presentation - The PPT/PDF document "The Effects of Parallel Programming on G..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.



Presentations text content in The Effects of Parallel Programming on Gaming

Slide1

The Effects of Parallel Programming on Gaming

Anthony Waterman

Slide2

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 ConsolesParallelization = Game Development Success?

Slide3

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 serverServer takes information from the clients, executes local server-side functions, and communicate necessary information back down to the clients

Both the

clients and the server contribute to as well as make up the overall state of the game

Slide4

Additional Similarities Between Client/Server & Classical Parallel Programming

Communication between processors/computers is time consumingCommunication time can create bottle necks in both applicationsBoth applications can use local sequential functions to compensate

Client/ServerGameClassical Parallel Application (Prime Number Sieve)Communication Bottleneck appears as:Game lagSluggish response timeSignificantly slower completion timeSolution:Local prediction of upcoming game stateLocally calculated starting values

Slide5

Slide6

What portions of a game benefit from parallelization?

GraphicsGraphics in video games are not accomplished in the same way movies/videos are doneIn a video game, what the player sees is created as the game is playedProcessors must decide what color each pixel needs to be in order to show the correct imageGraphics Processing Units (GPUs) are responsible for nearly all video game graphics

Slide7

What portions of a game benefit from parallelization?

PhysicsMany modern games have simulated physicsSimulation Games are generally built around a complex physics environmentWhat happens in the game is a direct result of a multitude physics equations and parameters

Slide8

What portions of a game benefit from parallelization?

Artificial Intelligence (AI)AI is an essential component to most video gamesAI programs generally involve large data sets and robust decision trees, making them prime candidates for parallel computationAnother parallelizable function closely linked to AI is pathfindingPathfinding uses decision tree algorithms to find the most direct/desired path by checking a vast number of possible paths

Slide9

What portions of a game benefit from parallelization

?

World GenerationExample: MinecraftOn 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.

Slide10

What portions of a game benefit from parallelization?

Character GenerationCustom created characters are common among RPGsUsing the same slider type architecture, characters could be created using parallel computingThis could be especially useful for generating multiple characters at onceMachine created characters should be created intelligently

Slide11

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 graphicsShaders are simplistic by design and are used to process large magnitudes of image data to create the desired pictureGenerally divided into two types (though others exist)Pixel Shaders – determine the color and attributes of a pixelVertex Shaders – process 3D data in order to display it on a 2D screenThe number of shaders vary by GPU, but the most recent console GPUs have 768 (Xbox One) and 1152 (PS4)

*The first GPUs were made for arcade cabinets in the 1970s

Slide12

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 calculationsGPGPU is used in the #2 ranked supercomputer in the world, the Titan which takes advantage of Nvidia GPUsIn gaming, GPGPU can help with some of the more computation intensive tasks such as AI and physics modelingPlayStation 4 is one console that is confirmed to use their GPU in physics simulation applicationsGPGPU applications are constrained by limited number of operations the GPU cores are able to process

Slide13

General-purpose computing on graphics processing units (GPGPU)

Slide14

History of Parallel Programming in Consoles

First use of multiple processors Non-parallel applications (Late 1980’s)4th Generation of gaming consolesSuper Nintendo Entertainment System (SNES)Sega Genesis/Mega Drive Used Central Processing Unit (CPU) + Graphics Processing Unit (GPU) + Sound ProcessorDistinct processors carried out specific tasks

Slide15

History of Parallel Programming in Consoles

Multiple Processors (Parallel applications) Sega Saturn (1994) (5th Gen)First console to use 2 CPUsGame developers lacked the ability to program parallel game componentsProcessors were primarily given separate tasks

Slide16

History of Parallel Programming in Consoles

Xbox 360 (2005) (7th Gen)Tri-core CPU with shared memoryGPU consisting of 48 coresPlayStation 3 (2006) (7th 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 exclusivelyGPU consisting of 32 cores (Some graphics tasks handled by Cell CPU)

Slide17

History of Parallel Programming in Consoles

Current Generation of Consoles (8th)Xbox One (2013) (8th Gen)CPU consists of 2 quad-core processors, 8 cores totalGPU consisting of 768 cores ***PlayStation 4 (2013) (8th Gen)CPU consists of 2 quad-core processors, 8 cores totalGPU consisting of 1,152 cores ***

Slide18

Recent Parallelization Popularity (CPU) 2000-2015

Slide19

Recent Parallelization Popularity (GPU) 2000-2015

Slide20

Not all games require parallelization in order to be successfulParallelization provides benefits:Better graphicsMore accurate simulationsSmarter artificial intelligenceEtc.Some games, most notably Independent or Indie games, succeed through captivating gameplay and storyParallelization is a tool that expands a developers options in terms of game design

Parallelization = Game Development Success?

Slide21

Slide22

Questions?


About DocSlides
DocSlides allows users to easily upload and share presentations, PDF documents, and images.Share your documents with the world , watch,share and upload any time you want. How can you benefit from using DocSlides? DocSlides consists documents from individuals and organizations on topics ranging from technology and business to travel, health, and education. Find and search for what interests you, and learn from people and more. You can also download DocSlides to read or reference later.
Youtube