The Effects of Parallel Programming on Gaming Anthony Waterman.

Slides:



Advertisements
Similar presentations
DATA PROCESSING SYSTEMS
Advertisements

Parallel Computing Glib Dmytriiev
Multi-user Extensible Virtual Worlds Increasing complexity of objects and interactions with increasing world size, users, numbers of objects and types.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
SE263 Video Analytics Course Project Initial Report Presented by M. Aravind Krishnan, SERC, IISc X. Mei and H. Ling, ICCV’09.
Click Here to Begin. Objectives Purchasing a PC can be a difficult process full of complex questions. This Computer Based Training Module will walk you.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
Soul Envoy Final Year Project 22nd April 2006 By Zhu Jinhao.
Multi Agent Simulation and its optimization over parallel architecture using CUDA™ Abdur Rahman and Bilal Khan NEDUET(Department Of Computer and Information.
Control Flow Virtualization for General-Purpose Computation on Graphics Hardware Ghulam Lashari Ondrej Lhotak University of Waterloo.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
Network coding on the GPU Péter Vingelmann Supervisor: Frank H.P. Fitzek.
Games at Bolton Programming multiple cores Andrew Williams
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
CHAPTER 17 Creating an Interactive 3D Environment © 2008 Cengage Learning EMEA.
Router Architectures An overview of router architectures.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Router Architectures An overview of router architectures.
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
Ping-O-TronicColor TV GameTelstar (game console) The players controlled their paddles with dials attached directly to the machine. Additionally, as an.
Client/Server Architectures
Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich.
UCT (Upper Confidence based Tree Search) An efficient game tree search algorithm for the game of Go by Levente Kocsis and Csaba Szepesvari [1]. The UCB1.
Sony PlayStation Company From: “PlayStation” By: Gabrielle Williams From: “PlayStation” By: Gabrielle Williams.
Modern Consumer Video Card Cheng-Han Du. What Is Video Card? A separated card to generate and output image to display. Not the integrated graphic processor.
Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of Computer Science and Engineering The Ohio State University.
Havok. ©Copyright 2006 Havok.com (or its licensors). All Rights Reserved. HavokFX Next Gen Physics on ATI GPUs Andrew Bowell – Senior Engineer Peter Kipfer.
Computer Graphics Graphics Hardware
Classification of Computers
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
Y. Kotani · F. Ino · K. Hagihara Springer Science + Business Media B.V Reporter: 李長霖.
Dragged, Kicking and Screaming: Multicore Architecture and Video Games.
GPU in HPC Scott A. Friedman ATS Research Computing Technologies.
1 © 2012 The MathWorks, Inc. Parallel computing with MATLAB.
Emergence of GPU systems and clusters for general purpose high performance computing ITCS 4145/5145 April 3, 2012 © Barry Wilkinson.
Computational Biology 2008 Advisor: Dr. Alon Korngreen Eitan Hasid Assaf Ben-Zaken.
6/4/ Key components of the computer Classification of computers based on Purposes Classification of computers based on Signals Classification of.
PARALLEL COMPUTING overview What is Parallel Computing? Traditionally, software has been written for serial computation: To be run on a single computer.
Vector/Array ProcessorsCSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Vector/Array Processors Reading: Stallings, Section.
CENTRALISED AND CLIENT / SERVER DBMS. Topics To Be Discussed………………………. (A) Centralized DBMS (i) IntroductionIntroduction (ii) AdvantagesAdvantages (ii)
University of Washington What is parallel processing? Spring 2014 Wrap-up When can we execute things in parallel? Parallelism: Use extra resources to solve.
The fetch-execute cycle. 2 VCN – ICT Department 2013 A2 Computing RegisterMeaningPurpose PCProgram Counter keeps track of where to find the next instruction.
CS 4396 Computer Networks Lab Router Architectures.
What is gaming console & platform? A game console is a device which outputs video signal into TV screen to display the video game. A platform is in which.
The Octoplier: A New Software Device Affecting Hardware Group 4 Austin Beam Brittany Dearien Brittany Dearien Warren Irwin Amanda Medlin Amanda Medlin.
The Effects of Parallel Programming on Gaming Anthony Waterman.
MULTICORE PROCESSOR TECHNOLOGY.  Introduction  history  Why multi-core ?  What do you mean by multicore?  Multi core architecture  Comparison of.
GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.
Playstation2 Architecture Architecture Hardware Design.
Fateme Hajikarami Spring  What is GPGPU ? ◦ General-Purpose computing on a Graphics Processing Unit ◦ Using graphic hardware for non-graphic computations.
Parallel processing
Copyright © Curt Hill SIMD Single Instruction Multiple Data.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Hybrid Parallel Implementation of The DG Method Advanced Computing Department/ CAAM 03/03/2016 N. Chaabane, B. Riviere, H. Calandra, M. Sekachev, S. Hamlaoui.
Accelerating K-Means Clustering with Parallel Implementations and GPU Computing Janki Bhimani Miriam Leeser Ningfang Mi
Applications and Rendering pipeline
Computer Graphics Graphics Hardware
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
GPU Architecture and Its Application
Generalized and Hybrid Fast-ICA Implementation using GPU
Graphics Processor Graphics Processing Unit
High Performance Computing on an IBM Cell Processor --- Bioinformatics
CS 147 – Parallel Processing
Lecture 2: Intro to the simd lifestyle and GPU internals
Multithreaded Programming
Computer Graphics Graphics Hardware
Chapter 4 Multiprocessors
Presentation transcript:

The Effects of Parallel Programming on Gaming Anthony Waterman

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?

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 ServerClient AClient BClient C Both the clients and the server contribute to as well as make up the overall state of the game

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

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

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) Vertex Shaders – process 3D data in order to display it on a 2D screen Pixel Shaders – determine the color and attributes of a pixel The number of shaders vary by GPU, but the most recent console GPUs have 768 (Xbox One) and 1152 (PS4)

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

Possible Implementation for a Rocket Engineering Game Basic Algorithm for Physics Simulations Setup Each component and connection has structural strengths, attributes, current velocity, etc. Each processor is responsible for modeling 1 or more components/connections Algorithm Force analysis on each component/connection Computation intensive, requires some communication to solve for forces from other components Strength computations to determine if any component/connection will fail Highly computation intensive and parallelizable*** Update components/connections if failures have occurred Summation of forces on each set of connected components to determine acceleration Apply acceleration to update each component’s current velocity and position Move forward one time step and repeat

Possible Implementation for a Rocket Engineering Game Analyze Force Vectors Check Forces Versus Component/ Connection Strengths Check Forces Versus Component/ Connection Strengths Update Components/ Connections Force Summation for Each Set of Connected Components to Determine Acceleration Apply Accelerations to Update Component Velocities and Positions Advance Time Step … … … … … … … … … … … … … … … … … … … …

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

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.

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

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

General-purpose computing on graphics processing units (GPGPU)

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

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

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)

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 ***

Recent Parallelization Popularity (CPU)

Recent Parallelization Popularity (GPU)

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?

Questions?