Parallel Web Programming

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Parallel Web Programming"

Transcription

1 Parallel Web Programming Tobias Groß, Björn Meier Hardware/Software Co-Design, University of Erlangen-Nuremberg May 23, 2013

2 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development Design A portable javascript thread library for Ajax applications Ajax Multithread library Web Workers Motivation Programing with Web Workers Load distribution by using Web Workers for a real-time web aaplication May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 2

3 WebGL cross-browser and cross-platform API to create 2D/3D graphics based on OpenGL ES 2.0 uses OpenGL shading language GLSL runs in HTML5 canvas elements low-level API can be simplified by WebGL libraries (three.js, GLGE,...) Matrix libraries May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 3

4 Figure: OpenGL ES 2.0 rendering pipeline[1] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 4

5 Rendering Pipeline 1. Vertex Shader 2. Triangle assembly 3. Rasterization 4. Fragment Shader Figure: Example for rendering an object. May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 5

6 Shader Vertex Shader receives a single vertex composed of a series of Vertex Attributes produces an output vertex 1:1 mapping from input vertices to output vertices Fragment Shader processes a Fragment from the rasterization process into a set of colors and a single depth value < s c r i p t i d ="2d vertex shader " type ="x shader / x vertex " > a t t r i b u t e vec2 a _ p o s i t i o n ; void main ( ) { g l _ P o s i t i o n = vec4 ( a_position, 0, 1) ; } </ s c r i p t > Figure: vertex shader < s c r i p t i d ="2d fragment shader " type ="x shader / x fragment " > void main ( ) { gl_fragcolor = vec4 ( 0, 1, 0, 1 ) ; / / green } </ s c r i p t > Figure: fragment shader May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 6

7 WebGL is gather system fast for a special purpose lack of flexibility gather read The program will write to a fixed position (like the target fragment position of a fragment shader), but has fast access to arbitrary data sources (textures, uniforms, etc.). scatter write The program receives a stream of input data which it cannot arbitarily address, but can do fast writes to arbitrary memory locations. May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 7

8 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development Design A portable javascript thread library for Ajax applications Ajax Multithread library Web Workers Motivation Programing with Web Workers Load distribution by using Web Workers for a real-time web aaplication May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 8

9 Motivation for WebCL increasing number of compute intensive browser applications complex image and audio processing scientific simulations games augmented reality... JavaScript is insufficient use of heterogeneous resources OpenCL kernel vs GLSL shader OpenCL has functionality not available in GLSL shaders Scattered writes Local memory Thread synchronization Atomic memory operations May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 9

10 Development Specification of an JavaScript binding to the Khronos OpenCL standard is still in progress by the Khronos Group. Implementation prototypes Nokia (Firefox extension) Samsung (WebKit) Motorola (NodeJS) May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 10

11 Design for Samsung implementation[2] (Nokia and Motorola are similar) interface above OpenCL (drivers with OpenCL support are required) single WebCL object Error handling: JavaScript-like exception handling mechanism Interoperability with HTML Canvas, Image and Video Elements kernel source code must be part of web page WebGL interoperability May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 11

12 < s c r i p t i d =" square " type ="x k e r nel " > kernel void square ( global f l o a t input, global f l o a t output, const unsigned i n t count ) { i n t i = g e t _ g l o b a l _ i d ( 0 ) ; i f ( i < count ) output [ i ] = i n p u t [ i ] i n p u t [ i ] ; } </ s c r i p t > < s c r i p t > f u n c t i o n getkernel ( i d ) { var k e r n e l S c r i p t = document. getelementbyid ( i d ) ; i f ( k e r n e l S c r i p t === n u l l k e r n e l S c r i p t. type!== " x kernel " ) r e t u r n n u l l ; r e t u r n k e r n e l S c r i p t. f i r s t C h i l d. textcontent ; } </ s c r i p t > < s c r i p t >... var kernelsource = getkernel ( " square " ) ;... program = context. createprogram ( kernelsource ) ; / / B u i l d the program executable program. b u i l d ( device ) ; / / Create the compute k e r n e l i n the program we wish to run kernel = program. createkernel ( " square " ) ;... / / Set the arguments to our compute kernel kernel. setarg ( 0, i n p u t ) ;... queue. enqueuendrangekernel ( kernel, n u l l, globalworksize, localworksize ) ;... </ s c r i p t > May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 12

13 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development Design A portable javascript thread library for Ajax applications Ajax Multithread library Web Workers Motivation Programing with Web Workers Load distribution by using Web Workers for a real-time web aaplication May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 13

14 Ajax (Asynchronous JavaScript and XML) asynchronous web applications dynamicly changing web pages Figure: classic web application[7] Figure: Ajax web application[7] Problem: event driven asynchronous programs on a single thread May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 14

15 Multithread library[4][3] Features: JavaScript library concurrent programming with threads preemptive scheduler object-oriented API portability May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 15

16 API Public methods: create stop sleep yield kill Http.get Http.post... f u n c t i o n load ( u r l ) { var th = Thread. create ( nowloading ) ; t r y { var res = Thread. Http. get ( u r l ) ; document. w r i t e ( res. responsetext ) ; } catch ( e ) { document. w r i t e ( "ERROR: " + e ) ; } th. k i l l ( ) ; } f u n c t i o n nowloading ( ) { var bar = [ " ", " / ", " ", " \ " ] ; var i = 0; while ( t r u e ) { window. s t a t u s = "Now loading... " + bar [ i =( i +1) %4]; Thread. sleep (125) ; } } Thread. create ( load, " h t t p : / /... " ) ; Figure: example for the multithread library[3] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 16

17 Design timesharing the UI-thread for pseudo multithreading program break-up into basic blocks continuation-based multithreading f u n c t i o n f ( ) { var c = getc ( ) ; / / ( ) document. w r i t e ( c, " \ n " ) ; } f u n c t i o n f ( ) { var c = getc ( ) ; f u n c t i o n r e s t ( ) { document. w r i t e ( c, " \ n " ) ; } r e s t ( ) ; } Figure: Original program[7] Figure: Rewriting result[7] trampolined style do { t r y { context = context. c o n t i n u a t i o n. procedure. c a l l ( context. c o n t i n u a t i o n. t h i s _ v a l, context. r e t _ v a l ) ; } catch ( e ) { exception handling } } while ( context. timeout == undefined && time s l i c e remains ) ; Figure: trampoline[7] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 17

18 Outline WebGL OpenGL Rendering Pipeline Shader WebCL Motivation Development Design A portable javascript thread library for Ajax applications Ajax Multithread library Web Workers Motivation Programing with Web Workers Load distribution by using Web Workers for a real-time web aaplication May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 18

19 Motivation What are Web Workers? extension for JavaScript available in all modern browsers allows to run scripts in the background are relatively heavy-weight high start-up performance cost high per-instance memory cost Why using Web Workers? they allow to write client-side code, that utilize threads, which run in background this threads don t block the frontend (keeps the webpage responsive) you can relocate computing power from server-side to client-side May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 19

20 Example using Web Workers < s c r i p t > var worker = new Worker ( worker. js ) ; worker. onmessage = f u n c t i o n ( event ) { document. getelementbyid ( r e s u l t ). textcontent = event. data ; } ; </ s c r i p t > Figure: compute prime numbers 1 [6] var n = 1; search : while ( t r u e ) { n += 1; f o r ( var i = 2; i <= Math. s q r t ( n ) ; i += 1) i f ( n % i == 0) continue search ; / / found a prime! postmessage ( n ) ; } Figure: compute prime numbers 2 [6] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 20

21 Web Workers API (extract) Constructors Worker( script.js ) Communication main thread uses postmessage method to communicate with the worker worker handle messages with a onmessage function, which must be implemented communication in other direction uses function postmessage and a messagehandler as well May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 21

22 The web application Initial situation it s a web-based multiplayer online role-playing game every user operates an avatar the avatars interact with other avatars or NPCs to interact, avatars have to move arround the movement is computed depending on forces which affect the avatar Problem Server has to compute forces of all avatars and NPCs the latency has to be smaller than 500 ms this limits the number of avatars a server can handle at once Solution Load distribution from server to client using Web Workers May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 22

23 Program flow with Web Worker Figure: System with Web Worker[5] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 23

24 Evaluation Figure: Web Worker performance based on browser implementation[5] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 24

25 Evaluation Figure: CPU Usage of server[5] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 25

26 Evaluation Figure: Data transfer rate[5] May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 26

27 References I [1] Khronos Group. The standard for embedded accelerated 3d graphics, [Online; accessed 23-Mai-2013]. [2] Won Jeon, Tasneem Brutch, and Simon Gibbs. Webcl for hardware-accelerated web applications [3] Daisuke Maki and Hideya Iwasaki. Javascript multithread framework for asynchronous processing. IPSJ Transactions on Programming, 48:1 18. [4] Daisuke Maki and Hideya Iwasaki. A portable javascript thread library for ajax applications. In Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion, OOPSLA 07, pages , New York, NY, USA, ACM. May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 27

28 References II [5] Shusuke Okamoto and Masaki Kohana. Load distribution by using web workers for a real-time web application. In International Journal of Web Information Systems, pages , [6] W3C. Web workers, [Online; accessed 20-Mai-2013]. [7] Wikipedia. Ajax (programmierung), [Online; accessed 20-Mai-2013]. May 23, 2013 Tobias Groß, Björn Meier Hardware/Software Co-Design Parallel Web Programming 28

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Performance Optimization and Debug Tools for mobile games with PlayCanvas Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with

More information

WebCL for Hardware-Accelerated Web Applications. Won Jeon, Tasneem Brutch, and Simon Gibbs

WebCL for Hardware-Accelerated Web Applications. Won Jeon, Tasneem Brutch, and Simon Gibbs WebCL for Hardware-Accelerated Web Applications Won Jeon, Tasneem Brutch, and Simon Gibbs What is WebCL? WebCL is a JavaScript binding to OpenCL. WebCL enables significant acceleration of compute-intensive

More information

Press Briefing. GDC, March 2014. Neil Trevett Vice President Mobile Ecosystem, NVIDIA President Khronos. Copyright Khronos Group 2014 - Page 1

Press Briefing. GDC, March 2014. Neil Trevett Vice President Mobile Ecosystem, NVIDIA President Khronos. Copyright Khronos Group 2014 - Page 1 Copyright Khronos Group 2014 - Page 1 Press Briefing GDC, March 2014 Neil Trevett Vice President Mobile Ecosystem, NVIDIA President Khronos Copyright Khronos Group 2014 - Page 2 Lots of Khronos News at

More information

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software

Introduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software GPU Computing Numerical Simulation - from Models to Software Andreas Barthels JASS 2009, Course 2, St. Petersburg, Russia Prof. Dr. Sergey Y. Slavyanov St. Petersburg State University Prof. Dr. Thomas

More information

WebGL and WebCL Beijing, March 2012 Neil Trevett President, The Khronos Group Vice President Mobile Content, NVIDIA

WebGL and WebCL Beijing, March 2012 Neil Trevett President, The Khronos Group Vice President Mobile Content, NVIDIA Copyright Khronos Group, 2012 - Page 1 WebGL and WebCL Beijing, March 2012 Neil Trevett President, The Khronos Group Vice President Mobile Content, NVIDIA Copyright Khronos Group, 2012 - Page 2 HTML5 Cross

More information

Enabling OpenCL Acceleration of Web Applications

Enabling OpenCL Acceleration of Web Applications Enabling OpenCL Acceleration of Web Applications Tasneem Brutch Samsung Electronics Khronos WebCL Working Group Chair LinuxCon Sept. 17, 2013, New Orleans, LA Outline WebCL tutorial, demos and coding examples

More information

OpenSL ES & OpenMAX Multimedia APIs

OpenSL ES & OpenMAX Multimedia APIs Copyright Khronos Group, 2011 - Page 1 OpenSL ES & OpenMAX Multimedia APIs Erik Noreke Chair of OpenSL ES Working Group Chair of OpenMAX AL Working Group Copyright Khronos Group, 2011 - Page 4 Why Create

More information

Introduction to WebGL

Introduction to WebGL Introduction to WebGL Alain Chesnais Chief Scientist, TrendSpottr ACM Past President chesnais@acm.org http://www.linkedin.com/in/alainchesnais http://facebook.com/alain.chesnais Housekeeping If you are

More information

Agenda. Rendering pipeline Boilerplate for minimal application Obtaining rendering context Uploading data to GPU Transformations Shaders Textures

Agenda. Rendering pipeline Boilerplate for minimal application Obtaining rendering context Uploading data to GPU Transformations Shaders Textures WebGL Agenda Rendering pipeline Boilerplate for minimal application Obtaining rendering context Uploading data to GPU Transformations Shaders Textures A bit of background! WebGL is a low-level, rendering

More information

PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)

PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon

More information

CS 248 Interactive Computer Graphics. Instructor: Ron Fedkiw Website: cs248.stanford.edu Meeting Times: Tuesday and Thursday, 12:00pm to 1:20pm

CS 248 Interactive Computer Graphics. Instructor: Ron Fedkiw Website: cs248.stanford.edu Meeting Times: Tuesday and Thursday, 12:00pm to 1:20pm CS 248 Interactive Computer Graphics Instructor: Ron Fedkiw Website: cs248.stanford.edu Meeting Times: Tuesday and Thursday, 12:00pm to 1:20pm CS 148 vs. CS 248 Rendering is an important part of creating

More information

Performance Analysis and Optimization

Performance Analysis and Optimization Performance Analysis and Optimization ARM Mali GPU Performance Counters in ARM DS-5 Streamline Performance Analyzer Lorenzo Dal Col Senior Software Engineer, ARM 1 Agenda Introduction to ARM DS-5 and Streamline

More information

Geo-Scale Data Visualization in a Web Browser. Patrick Cozzi pcozzi@agi.com

Geo-Scale Data Visualization in a Web Browser. Patrick Cozzi pcozzi@agi.com Geo-Scale Data Visualization in a Web Browser Patrick Cozzi pcozzi@agi.com About Me Developer Lecturer Author Editor http://www.seas.upenn.edu/~pcozzi/ About Cesium A WebGL virtual globe and map engine

More information

Web Based 3D Visualization for COMSOL Multiphysics

Web Based 3D Visualization for COMSOL Multiphysics Web Based 3D Visualization for COMSOL Multiphysics M. Jüttner* 1, S. Grabmaier 1, W. M. Rucker 1 1 University of Stuttgart Institute for Theory of Electrical Engineering *Corresponding author: Pfaffenwaldring

More information

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011 Graphics Cards and Graphics Processing Units Ben Johnstone Russ Martin November 15, 2011 Contents Graphics Processing Units (GPUs) Graphics Pipeline Architectures 8800-GTX200 Fermi Cayman Performance Analysis

More information

A Hybrid Visualization System for Molecular Models

A Hybrid Visualization System for Molecular Models A Hybrid Visualization System for Molecular Models Charles Marion, Joachim Pouderoux, Julien Jomier Kitware SAS, France Sébastien Jourdain, Marcus Hanwell & Utkarsh Ayachit Kitware Inc, USA Web3D Conference

More information

JavaFX Session Agenda

JavaFX Session Agenda JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user

More information

Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS

Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS Computer Graphics on Mobile Devices VL SS2010 3.0 ECTS Peter Rautek Rückblick Motivation Vorbesprechung Spiel VL Framework Ablauf Android Basics Android Specifics Activity, Layouts, Service, Intent, Permission,

More information

GPU Architecture Overview. John Owens UC Davis

GPU Architecture Overview. John Owens UC Davis GPU Architecture Overview John Owens UC Davis The Right-Hand Turn [H&P Figure 1.1] Why? [Architecture Reasons] ILP increasingly difficult to extract from instruction stream Control hardware dominates µprocessors

More information

Web-Based Enterprise Data Visualization a 3D Approach. Oleg Kachirski, Black and Veatch

Web-Based Enterprise Data Visualization a 3D Approach. Oleg Kachirski, Black and Veatch Web-Based Enterprise Data Visualization a 3D Approach Oleg Kachirski, Black and Veatch Contents - Introduction - Why 3D? - Applications of 3D - 3D Content Authoring - 3D/4D in GIS - Challenges of Presenting

More information

Crosswalk: build world class hybrid mobile apps

Crosswalk: build world class hybrid mobile apps Crosswalk: build world class hybrid mobile apps Ningxin Hu Intel Today s Hybrid Mobile Apps Application HTML CSS JS Extensions WebView of Operating System (Tizen, Android, etc.,) 2 State of Art HTML5 performance

More information

Programming with OpenGL Part 1: Background. Ed Angel Professor Emeritus of Computer Science University of New Mexico

Programming with OpenGL Part 1: Background. Ed Angel Professor Emeritus of Computer Science University of New Mexico Programming with OpenGL Part 1: Background Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 Objectives Development of the OpenGL API OpenGL Architecture - OpenGL as a state machine

More information

Topic 4 OpenGL 1: Background. CITS3003 Graphics & Animation. Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012

Topic 4 OpenGL 1: Background. CITS3003 Graphics & Animation. Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Programming with OpenGL Part 1: Background CITS3003 Graphics & Animation Slides: E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 1 Objectives Development of the OpenGL API

More information

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable

More information

Contents. Preface. 1.1 Computing Is a Natural Science Computer Science Software Engineering Computer Engineering 5

Contents. Preface. 1.1 Computing Is a Natural Science Computer Science Software Engineering Computer Engineering 5 PROGRAMMING WITH Contents Preface xv 1 The Field of Computing 1 1.1 Computing Is a Natural Science 2 1.2 The Five Disciplines of Computing 3 1.2.1 Computer Science 3 1.2.2 Software Engineering 4 1.2.3

More information

GPGPU Computing. Yong Cao

GPGPU Computing. Yong Cao GPGPU Computing Yong Cao Why Graphics Card? It s powerful! A quiet trend Copyright 2009 by Yong Cao Why Graphics Card? It s powerful! Processor Processing Units FLOPs per Unit Clock Speed Processing Power

More information

Introduction to. the open graphics library for embedded systems

Introduction to. the open graphics library for embedded systems Introduction to the open graphics library for embedded systems PRESENTATION TOPICS Introduction to OpenGL ES Spaces and Transformations Drawing Geometry Colors Textures Android Fragmentation OpenGL ES

More information

Outline. 1.! Development Platforms for Multimedia Programming!

Outline. 1.! Development Platforms for Multimedia Programming! Outline 1.! Development Platforms for Multimedia Programming! 1.1.! Classification of Development Platforms! 1.2.! A Quick Tour of Various Development Platforms! 2.! Multimedia Programming with Python

More information

Developing Open Standards for Safety Critical Technologies

Developing Open Standards for Safety Critical Technologies Developing Open Standards for Safety Critical Technologies Erik Noreke Independent Technology Consultant Khronos Chair Safety Critical Working Group 4th Scandinavian Conference - System and Software Safety

More information

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University GPU Generations CSE 564: Visualization GPU Programming (First Steps) Klaus Mueller Computer Science Department Stony Brook University For the labs, 4th generation is desirable Graphics Hardware Pipeline

More information

OpenGL pipeline Evolution and OpenGL Shading Language (GLSL)

OpenGL pipeline Evolution and OpenGL Shading Language (GLSL) OpenGL pipeline Evolution and OpenGL Shading Language (GLSL) Part 1/3 Prateek Shrivastava CS12S008 shrvstv@cse.iitm.ac.in 1 INTRODUCTION OpenGL Shading Language (GLSL) "mini-programs" written in GLSL are

More information

Evaluation of a Collaborative Networking Environment for Experimental Configurations. Liam Smith. Webster Schroeder High School.

Evaluation of a Collaborative Networking Environment for Experimental Configurations. Liam Smith. Webster Schroeder High School. Evaluation of a Collaborative Networking Environment for Experimental Configurations Liam Smith Webster Schroeder High School Webster, NY Advisor: Richard Kidder Laboratory for Laser Energetics University

More information

20480B: Programming in HTML5 with JavaScript and CSS3. Course Overview

20480B: Programming in HTML5 with JavaScript and CSS3. Course Overview 20480B: Programming in HTML5 with JavaScript and CSS3 Course Overview This course provides students with the knowledge and skills to create and style HTML pages, use JavaScript, create forms to collect

More information

Vulkan Launch Briefing February 2016 Neil Trevett Khronos President NVIDIA Vice President Developer Ecosystem

Vulkan Launch Briefing February 2016 Neil Trevett Khronos President NVIDIA Vice President Developer Ecosystem Vulkan Launch Briefing February 2016 Neil Trevett Khronos President NVIDIA Vice President Developer Ecosystem ntrevett@nvidia.com @neilt3d Copyright Khronos Group 2016 - Page 1 BOARD OF PROMOTERS Over

More information

Institutionen för systemteknik Department of Electrical Engineering

Institutionen för systemteknik Department of Electrical Engineering Institutionen för systemteknik Department of Electrical Engineering Examensarbete 3D Graphics Technologies for Web Applications An Evaluation from the Perspective of a Real World Application Master thesis

More information

Computer Graphics Hardware An Overview

Computer Graphics Hardware An Overview Computer Graphics Hardware An Overview Graphics System Monitor Input devices CPU/Memory GPU Raster Graphics System Raster: An array of picture elements Based on raster-scan TV technology The screen (and

More information

Mali Ecosystem. Right Tools to do the Right Things Anand Patel, Ecosystem Marketing

Mali Ecosystem. Right Tools to do the Right Things Anand Patel, Ecosystem Marketing Mali Ecosystem Right Tools to do the Right Things Anand Patel, Ecosystem Marketing Mali Ecosystem Mali Ecosystem Benefits UI : Demanding on the GPU User interfaces exploit the ARM Mali GPU Overlay and

More information

Programming in HTML5 with JavaScript and CSS3

Programming in HTML5 with JavaScript and CSS3 Course 20480B: Programming in HTML5 with JavaScript and CSS3 Course Details Course Outline Module 1: Overview of HTML and CSS This module provides an overview of HTML and CSS, and describes how to use

More information

Introduction to Computer Graphics with WebGL

Introduction to Computer Graphics with WebGL Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico 1 Programming

More information

Advisor Counsel. Computer basics and Programming. Introduction to Engineering Design. C Programming Project. Digital Engineering

Advisor Counsel. Computer basics and Programming. Introduction to Engineering Design. C Programming Project. Digital Engineering Course Description ( 전체개설교과목개요 ) Advisor Counsel Yr. : Sem. : Course Code: CD0001 Advisor in the department which programs engineering education guides certificate program educational objectives, learning

More information

Chapter 2 - Graphics Programming with JOGL

Chapter 2 - Graphics Programming with JOGL Chapter 2 - Graphics Programming with JOGL Graphics Software: Classification and History JOGL Hello World Program 2D Coordinate Systems in JOGL Dealing with Window Reshaping 3D Coordinate Systems in JOGL

More information

Beginning Mobile Application Development in the Cloud

Beginning Mobile Application Development in the Cloud Brochure More information from http://www.researchandmarkets.com/reports/2050480/ Beginning Mobile Application Development in the Cloud Description: Learn how to build apps for mobile devices on Cloud

More information

L20: GPU Architecture and Models

L20: GPU Architecture and Models L20: GPU Architecture and Models scribe(s): Abdul Khalifa 20.1 Overview GPUs (Graphics Processing Units) are large parallel structure of processing cores capable of rendering graphics efficiently on displays.

More information

Programming 3D Applications with HTML5 and WebGL

Programming 3D Applications with HTML5 and WebGL Programming 3D Applications with HTML5 and WebGL Tony Parisi Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface ix Part I. Foundations 1. Introduction 3 HTML5: A New Visual Medium

More information

Multiprocessor Graphic Rendering Kerey Howard

Multiprocessor Graphic Rendering Kerey Howard Multiprocessor Graphic Rendering Kerey Howard EEL 6897 Lecture Outline Real time Rendering Introduction Graphics API Pipeline Multiprocessing Parallel Processing Threading OpenGL with Java 2 Real time

More information

AMD GPU Tools for games development

AMD GPU Tools for games development AMD GPU Tools for games development Holger Gruen European Developer Relations AMD Graphics Products Group holger.gruen@amd.com Material for many slides was provided by J. Zarge and S. Sowerby from the

More information

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1 Selenium WebDriver Gianluca Carbone Selenium WebDriver 1 Contents What is Selenium? History WebDriver High-Level Architectures Architectural themes Non Functional quality Layers & Javascript Design issues

More information

Case studies. Two case studies

Case studies. Two case studies Case studies : Introduction to operating systems principles Abstraction Management of shared resources Indirection Concurrency Atomicity Protection Naming Security Reliability Scheduling Fairness Performance

More information

Visualizing Data: Scalable Interactivity

Visualizing Data: Scalable Interactivity Visualizing Data: Scalable Interactivity The best data visualizations illustrate hidden information and structure contained in a data set. As access to large data sets has grown, so has the need for interactive

More information

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA The Evolution of Computer Graphics Tony Tamasi SVP, Content & Technology, NVIDIA Graphics Make great images intricate shapes complex optical effects seamless motion Make them fast invent clever techniques

More information

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,

More information

Step into the Future: HTML5 and its Impact on SSL VPNs

Step into the Future: HTML5 and its Impact on SSL VPNs Step into the Future: HTML5 and its Impact on SSL VPNs Aidan Gogarty HOB, Inc. Session ID: SPO - 302 Session Classification: General Interest What this is all about. All about HTML5 3 useful components

More information

Computer Graphics. Lecture 1:

Computer Graphics. Lecture 1: Computer Graphics Thilo Kielmann Lecture 1: 1 Introduction (basic administrative information) Course Overview + Examples (a.o. Pixar, Blender, ) Graphics Systems Hands-on Session General Introduction http://www.cs.vu.nl/~graphics/

More information

Introduction to GPU Programming Languages

Introduction to GPU Programming Languages CSC 391/691: GPU Programming Fall 2011 Introduction to GPU Programming Languages Copyright 2011 Samuel S. Cho http://www.umiacs.umd.edu/ research/gpu/facilities.html Maryland CPU/GPU Cluster Infrastructure

More information

Lets3D: A Collaborative 3D Editing Tool Based On Cloud Storage

Lets3D: A Collaborative 3D Editing Tool Based On Cloud Storage , pp.189-198 http://dx.doi.org/10.14257/ijmue.2015.10.9.20 Lets3D: A Collaborative 3D Editing Tool Based On Cloud Storage Yeoun-Ui Ha 1, Jae-Hwan Jin 1 and Myung-Joon Lee 2* Department of Electrical/Electronic

More information

Streaming Media. Advanced Audio. Erik Noreke, Standardization Consultant Chair, OpenSL ES Copyright Khronos Group, Page 1

Streaming Media. Advanced Audio. Erik Noreke, Standardization Consultant Chair, OpenSL ES Copyright Khronos Group, Page 1 Streaming Media Advanced Erik Noreke, Standardization Consultant Chair, OpenSL ES erik@noreke.se Copyright Khronos Group, 2010 - Page 1 OpenMAX Streaming Media Media Infrastructure Portability Open, royalty-free

More information

Benjamin San Souci & Maude Lemaire

Benjamin San Souci & Maude Lemaire Benjamin San Souci & Maude Lemaire introduction What is Node.js anyway? a complete software platform for scalable server-side and networking applications open-source under the MIT license comes bundled

More information

Open Source Open Possibilities. Vellamo. System Level Benchmarking October 2012. Open Source Open Possibilities PAGE 1

Open Source Open Possibilities. Vellamo. System Level Benchmarking October 2012. Open Source Open Possibilities PAGE 1 Vellamo System Level Benchmarking October 2012 PAGE 1 Disclaimer Nothing in these materials is an offer to sell any of the components or devices referenced herein. Certain components for use in the U.S.

More information

WebSocket Server. To understand the Wakanda Server side WebSocket support, it is important to identify the different parts and how they interact:

WebSocket Server. To understand the Wakanda Server side WebSocket support, it is important to identify the different parts and how they interact: WebSocket Server Wakanda Server provides a WebSocket Server API, allowing you to handle client WebSocket connections on the server. WebSockets enable Web applications (clients) to use the WebSocket protocol

More information

CS445 Exam 2 Solutions

CS445 Exam 2 Solutions November 20, 2014 Name CS445 Exam 2 Solutions Fall 2014 1. (max = 15) 5. (max = 21) 2. (max = 8) 6. (max = 16) 3. (max = 10) 7. (max = 16) 4. (max = 14) Final Score: (max=100) Please try to write legibly.

More information

Rich Internet Applications

Rich Internet Applications Rich Internet Applications Prepared by: Husen Umer Supervisor: Kjell Osborn IT Department Uppsala University 8 Feb 2010 Agenda What is RIA? RIA vs traditional Internet applications. Why to use RIAs? Running

More information

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development 4 Understanding Web Applications IN THIS CHAPTER 4.1 Understand Web page development 4.2 Understand Microsoft ASP.NET Web application development 4.3 Understand Web hosting 4.4 Understand Web services

More information

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT COMP27112 Computer Graphics and Image Processing 2: Introducing image synthesis Toby.Howard@manchester.ac.uk 1 Introduction In these notes we ll cover: Some orientation how did we get here? Graphics system

More information

Research on HTML5 in Web Development

Research on HTML5 in Web Development Research on HTML5 in Web Development 1 Ch Rajesh, 2 K S V Krishna Srikanth 1 Department of IT, ANITS, Visakhapatnam 2 Department of IT, ANITS, Visakhapatnam Abstract HTML5 is everywhere these days. HTML5

More information

OpenGL ES 2.0 Lighting 2 Per-fragment Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D.

OpenGL ES 2.0 Lighting 2 Per-fragment Lighting. CS421 Advanced Computer Graphics Jay Urbain, Ph.D. OpenGL ES 2.0 Lighting 2 Per-fragment Lighting CS421 Advanced Computer Graphics Jay Urbain, Ph.D. 1 Objectives Per-fragment lighting Foundation for Phong Model, textures, etc. Shader implementation in

More information

High-Performance Software Rasterization on GPUs. NVIDIA Research

High-Performance Software Rasterization on GPUs. NVIDIA Research High-Performance Software Rasterization on GPUs Samuli Laine Tero Karras NVIDIA Research Graphics and Programmability Graphics pipeline (OpenGL/D3D) Driven by dedicated hardware Executes user code in shaders

More information

How to test OpenGL drivers with Free Software

How to test OpenGL drivers with Free Software glgenvertexarrays(1, &vao); glbindvertexarray(vao); /* Draw and record */ glbegintransformfeedback(gl_points); gldrawarrays(gl_points, 0, 1); for (i = 0; i < STREAMS; i++) { How to test OpenGL drivers

More information

USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER

USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER Lars Bergstrom Mozilla Research Mike Blumenkrantz Samsung R&D America Why a new web engine? Support new types of applications and new devices All modern

More information

Programming in HTML5 with JavaScript and CSS3

Programming in HTML5 with JavaScript and CSS3 Course M20480 5 Day(s) 30:00 Hours Programming in HTML5 with JavaScript and CSS3 Introduction This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic

More information

Trends in HTML5. Matt Spencer UI & Browser Marketing Manager

Trends in HTML5. Matt Spencer UI & Browser Marketing Manager Trends in HTML5 Matt Spencer UI & Browser Marketing Manager 6 Where to focus? Chrome is the worlds leading browser - by a large margin 7 Chrome or Chromium, what s the difference Chromium is an open source

More information

Some Issues on Ajax Invocation

Some Issues on Ajax Invocation Some Issues on Ajax Invocation I. Introduction AJAX is a set of technologies that together a website to be -or appear to be- highly responsive. This is achievable due to the following natures of AJAX[1]:

More information

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Rational Application Developer, Version 8.0, contains

More information

HTML5 & IVI. Ethan Coh

HTML5 & IVI. Ethan Coh HTML5 & IVI Ethan Coh ethan.coh@obigo.com Prologue 2 40 years 3 20 years 4 All of the technology required to transform industries through software finally works and can be delivered at global scale. 5

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP

More information

1 How to Monitor Performance

1 How to Monitor Performance 1 How to Monitor Performance Contents 1.1. Introduction... 1 1.2. Performance - some theory... 1 1.3. Performance - basic rules... 3 1.4. Recognizing some common performance problems... 3 1.5. Monitoring,

More information

Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure

Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure 1 Alessandro Alinone Agenda Introduction Push Technology: definition, typology, history, early failures Lightstreamer: 3rd Generation architecture, true-push Client-side push technology (Browser client,

More information

Shading with Shaders. Computer Graphics, VT 2015 Lecture 6

Shading with Shaders. Computer Graphics, VT 2015 Lecture 6 Shading with Shaders Computer Graphics, VT 2015 Lecture 6 Johan Nysjö Centre for Image analysis Swedish University of Agricultural Sciences Uppsala University Today's topics Shading in modern OpenGL Per-vertex

More information

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.

More information

Jenkins XML API and Mobile Devices

Jenkins XML API and Mobile Devices Jenkins XML API and Mobile Devices Simone Ardissone Luca Milanesio LMIT Software Ltd. http://www. jenkins-ci.mobi Who we are (1 st guy)! My name is Luca! Founder and Director of LMIT Ltd (UK) the ones

More information

Introduction to the PowerVR Graphics SDK. Paul Sobek Developer Technology Engineer, PowerVR Graphics

Introduction to the PowerVR Graphics SDK. Paul Sobek Developer Technology Engineer, PowerVR Graphics Introduction to the PowerVR Graphics SDK Paul Sobek Developer Technology Engineer, PowerVR Graphics www.powervrinsider.com 3 What is the PowerVR Graphics SDK? What is the PowerVR Graphics SDK? Assists

More information

Making the Most of Existing Public Web Development Frameworks WEB04

Making the Most of Existing Public Web Development Frameworks WEB04 Making the Most of Existing Public Web Development Frameworks WEB04 jquery Mobile Write less, do more 2 The jquery Suite UI Overhaul Look and Feel Transitions Interactions Touch, Mouse, Keyboard Don t

More information

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence Web Development Owen Sacco ICS2205/ICS2230 Web Intelligence Brief Course Overview An introduction to Web development Server-side Scripting Web Servers PHP Client-side Scripting HTML & CSS JavaScript &

More information

Adding Panoramas to Google Maps Using Ajax

Adding Panoramas to Google Maps Using Ajax Adding Panoramas to Google Maps Using Ajax Derek Bradley Department of Computer Science University of British Columbia Abstract This project is an implementation of an Ajax web application. AJAX is a new

More information

Color correction in 3D environments Nicholas Blackhawk

Color correction in 3D environments Nicholas Blackhawk Color correction in 3D environments Nicholas Blackhawk Abstract In 3D display technologies, as reviewers will say, color quality is often a factor. Depending on the type of display, either professional

More information

Introduction to Parallel and Heterogeneous Computing. Benedict R. Gaster October, 2010

Introduction to Parallel and Heterogeneous Computing. Benedict R. Gaster October, 2010 Introduction to Parallel and Heterogeneous Computing Benedict R. Gaster October, 2010 Agenda Motivation A little terminology Hardware in a heterogeneous world Software in a heterogeneous world 2 Introduction

More information

HTML5 the new. standard for Interactive Web

HTML5 the new. standard for Interactive Web WHITE PAPER HTML the new standard for Interactive Web by Gokul Seenivasan, Aspire Systems HTML is everywhere these days. Whether desktop or mobile, windows or Mac, or just about any other modern form factor

More information

Interactive Web-based Flood Simulation. System for Realistic Experiments of. Flooding and Flood Damage. Ibrahim Demir

Interactive Web-based Flood Simulation. System for Realistic Experiments of. Flooding and Flood Damage. Ibrahim Demir Interactive Web-based Flood Simulation System for Realistic Experiments of Flooding and Flood Damage Ibrahim Demir Big Data We are generating data on a petabyte scale through observations and modeling

More information

4. provide(s) an interface to the services provided by an operating system. A) Shared memory B) System calls C) Simulators D) Communication Ans: B

4. provide(s) an interface to the services provided by an operating system. A) Shared memory B) System calls C) Simulators D) Communication Ans: B 1. A(n) is the unit of work in a system. A) process B) operating system C) timer D) mode bit 2. A message-passing model is. A) easier to implement than a shared memory model for intercomputer communication

More information

Upgrade to Microsoft Web Applications

Upgrade to Microsoft Web Applications Upgrade to Microsoft Web Applications Description Customers demand beautiful, elegant apps that are alive with activity. Demonstrate your expertise at designing and developing the fast and fluid Store

More information

Zero Footprint Image Viewers For Mobile Devices

Zero Footprint Image Viewers For Mobile Devices Zero Footprint Image Viewers For Mobile Devices John Kingan Unrestricted Internal Use 2011, Carestream Health The good old days p.2 p.3 Emergence of Mobile Technology When Computers were Computers and

More information

Cross-Platform GP with Organic Vectory BV Project Services Consultancy Services Expertise Markets 3D Visualization Architecture/Design Computing Embedded Software GIS Finance George van Venrooij Organic

More information

Table of contents. HTML5 Data Bindings SEO DMXzone

Table of contents. HTML5 Data Bindings SEO DMXzone Table of contents Table of contents... 1 About HTML5 Data Bindings SEO... 2 Features in Detail... 3 The Basics: Insert HTML5 Data Bindings SEO on a Page and Test it... 7 Video: Insert HTML5 Data Bindings

More information

Abstractions from Multimedia Hardware. Libraries. Abstraction Levels

Abstractions from Multimedia Hardware. Libraries. Abstraction Levels Abstractions from Multimedia Hardware Chapter 2: Basics Chapter 3: Multimedia Systems Communication Aspects and Services Chapter 4: Multimedia Systems Storage Aspects Chapter 5: Multimedia Usage and Applications

More information

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Brains Eden, 28 th June 2013

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Brains Eden, 28 th June 2013 Optimizing Unity Games for Mobile Platforms Angelo Theodorou Software Engineer Brains Eden, 28 th June 2013 Agenda Introduction The author ARM Ltd. What do you need to have What do you need to know Identify

More information

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005 Recent Advances and Future Trends in Graphics Hardware Michael Doggett Architect November 23, 2005 Overview XBOX360 GPU : Xenos Rendering performance GPU architecture Unified shader Memory Export Texture/Vertex

More information

Tiers of Web Programming - case of weborigami - Tetsuo Ida Department of Computer Science University of Tsukuba Japan

Tiers of Web Programming - case of weborigami - Tetsuo Ida Department of Computer Science University of Tsukuba Japan Tiers of Web Programming - case of weborigami - Tetsuo Ida Department of Computer Science University of Tsukuba Japan Contributions from Bruno Buchberger Fadoua Ghourabi Assem Kasem Mircea Marin Judit

More information

How to Optimize Your Mobile Game with ARM Tools and Practical Examples. Lorenzo Dal Col Product Manager Development Solutions Group

How to Optimize Your Mobile Game with ARM Tools and Practical Examples. Lorenzo Dal Col Product Manager Development Solutions Group How to Optimize Your Mobile Game with ARM Tools and Practical Examples Lorenzo Dal Col Product Manager Development Solutions Group 1 Agenda 1. Introduction to ARM tools for developers 2. DS-5 Streamline

More information

Programming in HTML5 with JavaScript and CSS3

Programming in HTML5 with JavaScript and CSS3 Programming in HTML5 with JavaScript and CSS3 Course 20480B 5 Days Instructor-led, Hands-on Introduction This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students

More information

Shader Model 3.0, Best Practices. Phil Scott Technical Developer Relations, EMEA

Shader Model 3.0, Best Practices. Phil Scott Technical Developer Relations, EMEA Shader Model 3.0, Best Practices Phil Scott Technical Developer Relations, EMEA Overview Short Pipeline Overview CPU Bound new optimization opportunities Obscure bits of the pipeline that can trip you

More information

Computer Graphics (CS 543) Lecture 1 (Part 1): Introduction to Computer Graphics

Computer Graphics (CS 543) Lecture 1 (Part 1): Introduction to Computer Graphics Computer Graphics (CS 543) Lecture 1 (Part 1): Introduction to Computer Graphics Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) What is Computer Graphics (CG)? Computer

More information