Using Web Workers to Improve the Performance of Metro HTML5- JavaScript* Apps
|
|
- Alexandra Wheeler
- 6 years ago
- Views:
Transcription
1 Using Web Workers to Improve the Performance of Metro HTML5- JavaScript* Apps Objective This article provides an introduction on how to use web workers inside HTML5-JavaScript* Metro apps. We will discuss what web workers are, why we need them, and how to use them. A sample app will be used as a case study to discuss these topics. We will mainly address two areas where web workers can be of tremendous help: heavy computation and background server interaction or downloading content in the background. We will use the sample app to showcase the expected performance benefit of using web workers.
2 Table of Contents 1. Introduction and Sample App 2. Web Workers Overview 3. Using Web Workers in Metro Apps 4. Performance Benefits of Web Workers 5. Summary Introduction and Sample App HTML5/JavaScript apps are single threaded at the core. We need to interleave enough time between computations/processing, to let the HTML DOM (Document Object Model) update the UI elements and handle different events. Without these non-blocking interleaves for appropriate durations, the apps UI and user interaction becomes either blocked or too slow. Users usually perceive the app as being stuck or crashed. One highly recommended way to mitigate some of these problems is to adopt Metro asynchronous programming patterns. More details on asynchronous programming in JavaScript can be found here: Though asynchronous programming can help resolve some of these responsiveness problems of being single threaded, the performance could still be lacking. Also, the app might have additional use cases where it might require continued computation, monitoring, or background processing. Being single threaded severely undercuts performance in these use cases. Web workers were introduced to address these problems. They allow apps to instantiate additional threads as needed. Web workers do not have access to the DOM, they are strictly used for non-dom related work. They can be very useful in use cases where the apps might need to do some heavy computation, that could potentially be blocking otherwise, and also in use cases where the app needs to interact with server or download data continuously from the server in the background. In this article we will use a sample app, Feed Analyzer, to demonstrate these concepts. The objective of this app is to download several RSS feeds from the Internet, and analyze the feed for several keywords, search for the number of occurrences, and categorize posts from all feeds according to keywords. We will also simulate heavy computation by blocking for a few milliseconds. The app will implement both with and without web worker use cases. Users will have a choice to select a number of web workers, up to 4. The user can choose 0 web workers for the non-webworker use case.
3 The app s final UI is shown below: Users can compare performance using a time-elapsed metric, shown in the upper left of the app s UI. Clicking any of the keywords will filter all the posts and show them in Feed Posts view, or users can click Show All to display all posts. Clicking Start Feed Analysis will (re)start new feed analysis using the specified number of web workers (0 being the non-web-worker use case). The app will also show log messages from each web worker or the main thread for non-web-worker use cases. Users can click any feed post to view the full feed article in a flyout (example shown below).
4 Web Workers Overview Web workers (or just workers ) let HTML apps instantiate additional thread instances for doing work in parallel. Though they enable a kind of multi-thread programming, they do not use any shared data which makes the programming model simpler. All communication between workers and the main thread is through message passing ( They are relatively heavyweight and take significant time to instantiate. Depending on app requirements we might instantiate them during app initialization itself and continue (re)using them, instead of instantiating and closing them on demand. The web workers standard ( specifies two kinds of web workers dedicated and shared. Dedicated workers have a single connection and can only communicate with the parent (single page), while shared workers can have multiple connections to/from any script of the same origin. Metro apps only support dedicated web workers, which we will focus on in this article. Web workers do not have access to the full DOM. They can access a few APIs like XHR, location, and navigator along with the standard JavaScript library. For more information on differences between web page and web worker, please refer to this blog post: Web workers communicate with the main thread (the parent) through the postmessage method, and message event (onmessage event handler). For detailed web worker methods, properties, and events, refer to this link: Web workers can also import other scripts using the importscripts function call. This allows for breaking down app logic into multiple scripts, and then importing common functions or logic into the workers as needed. Following is a web worker code snippet from our sample app. importscripts("//microsoft.winjs.1.0.rc/js/base.js", "/js/feedcommon.js"); Using Web Workers in Metro Apps
5 Web workers in Metro Apps have access to the native Metro framework API. They can access the Windows* WinRT API just like the main thread in the app, and the same restrictions and security rules apply. Creating a new web worker is straightforward. Visual Studio* provides a default worker template that we can use to quickly create a new dedicated worker, as shown below. This template will create a new JavaScript file with an onmessage event handler stub for the worker, and add the file to our app project folder. We need to write down the filename of this script ( feedworker.js in our example) because we must specify it in the worker constructor function call. We can implement all of worker s code inside this worker source file or import code from other scripts. In our sample app, we implement common functionality inside a single JavaScript file feedcommon.js. We can import this file into the worker using the importscripts function, and also import into our non-web-worker code path via the regular page import method (script tag). Below is the full source code for the web worker (feedworker.js) in the sample app. importscripts("//microsoft.winjs.1.0.rc/js/base.js", "/js/feedcommon.js"); onmessage = function (ev) { } feedanalyzeasync(ev.data.url, ev.data.tags, ev.data.source).then(function (ev) { postmessage("end"); }, function (ev) { postmessage(ev); postmessage("end"); }, function (ev) { postmessage(ev); }); We import both WinJS base API, as well as our app s common functionality (feedcommon.js). Please note the onmessage event handler simply calls the common function, and then passes the results back to the main thread via the postmessage function. The default scope of this script is worker global script ( self ), hence we can directly invoke methods like postmessage and onmessage declarations without qualifying.
6 The sample app s main functionality retrieving multiple feeds (background downloads) and searching/analyzing them (heavy blocking computation) is implemented as a single function feedanalyzeasync in the common script (feedcommon.js). Since the common script uses both WinRT API and WinJS API, the web workers in our sample app will be exercising both these APIs as well (this demonstrates accessing WinRT and WinJS from web workers). It also allows us to compare web worker performance as they use the same underlying code path. Instantiating new web workers from the app s main thread is also straightforward. We specify the filename of the web worker script inside the worker constructor as shown below ( new Worker ). for (var wwi = 0; wwi < parseint(id("wwbtn").max) ; wwi++) { wworkers[wwi] = new Worker('/js/feedworker.js'); wworkers[wwi].onmessage = function (ev) { if (ev.data === 'end') enablefabtn(); else facallback(ev.data); } } Please note, we are instantiating several workers at once and configuring the message handler (onmessage) for each worker. Web workers are relatively heavy weight, and they could take significant time to instantiate. In our sample app, we instantiate all workers when the app starts up, during the initialization phase. Once instantiated, the worker can start receiving messages via the onmessage event handler and communicate with main thread via the postmessage method call. Likewise, our main app thread can communicate with workers via the postmessage method call and receive messages via the onmessage event handler on worker objects. The data passed between the main thread and worker using postmessage can be of any type supported by the message passing standard ( JSON format is widely supported, which is used in our sample app. Performance Benefits of Web Workers Web workers can be useful in a variety of different use cases. They can be used to handle a long monitoring task in the background, or do compute heavy processing, or handle all non-ui logic and leave the DOM UI logic to the main thread, or even help simulate non-user actions inside games. All of these use cases benefit from web workers either by improving responsiveness or performance.
7 Our sample app FeedAnalyzer covers two main use cases: background downloads and heavy computation/processing. To compare performance with and without web workers, we use the same underlying code path for with-web-worker and without-web-worker cases. We use the asynchronous programming pattern (WinJS promises) for both cases. The following code is from a common function for background downloads (partial listing): function feedanalyzeasync(url, tags, source) { return new WinJS.Promise(function (completed, failed, progress) { try { var uri = new Windows.Foundation.Uri(url); var synd = new Windows.Web.Syndication.SyndicationClient(); synd.bypasscacheonretrieve = true; progress({ 'id': source, 'type': 'log', 'data': "Downloading Feed..." }); synd.retrievefeedasync(uri).done(function (f) { var ftitle = f.title? f.title.text : "(no title)" progress({ 'id': source, 'type': 'log', 'data': 'Download Complete! Analyzing feed "' + ftitle + '"' }); We wrap our common function inside a WinJS promise as it could block for a long duration. As seen above, we use WinRT syndication APIs to download feeds asynchronously in the background. Once the feed is fully downloaded, we analyze all the posts inside the feed for keyword occurrences, and simulate some compute heavy processing by blocking for a significant time. Below is the code snippet for this use case (partial listing). // some heavy computation - search for all keywords in each post var tagfound; tagfound = 0; tags.foreach(function (tag) { var m = content.match(new RegExp(tag, 'gi')); if (m) { result['tags'][tag] = m.length; logmsg += ' (' + m.length + " " + tag + ')'; tagfound = 1; } }); if (tagfound === 0) logmsg += ' ( none )'; // simulate even more heavy computation - block, then delay processing using promise timeout var time = new Date(); while ((new Date() - time) < 100); WinJS.Promise.timeout(200 * (i+1)).then(function (source, logmsg, result, test) { return function () { progress({ 'id': source, 'type': 'log', 'data': logmsg + ' in "' + result['title'] + '"' });
8 When the user clicks the Start Feed Analysis button, the app will start downloading several feeds, and analyzing all posts in each feed in the background. In the non-web-worker case, it uses an asynchronous pattern so the UI can be updated after each post analysis. The app will report time elapsed for completing both of these use cases. Below is a screenshot of non-web-worker case. Please note, it took msec on our test system. It could be a different result on your test system. For the web-worker case, the user-configured number of workers are started and feeds are distributed to these workers in round-robin. Each worker will then kick off the feed download and analyze all posts inside the feed, similar to non-worker case. Time elapsed is reported when all workers complete their tasks. Below is snapshot of a 4 web-worker scenario.
9 As seen above, the web worker scenario completed in msec, a significant improvement in performance. Please note these performance numbers are on our test system, and your results will vary. In general, web workers can show significant performance improvement only when the underlying system has more than one CPU thread. Summary HTML5/JavaScript apps are single threaded and can be unresponsive or degrade performance if the app has code that blocks for a long duration. Web workers help solve these problems and enable new usage models. We provide an introduction to web workers, why we need them, and how to use them. We also show how to use web workers in Metro HTML5/JavaScript apps, and showcase the performance difference compared to a non-web-worker scenario. We demonstrated two main uses where web workers can make a significant performance difference: compute heavy processing and downloading/analyzing in the background.
10 Optimization Notice Intel's compilers may or may not optimize to the same degree for non-intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision # Notices INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this
11 document, or other Intel literature, may be obtained by calling , or go to: Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations, and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms of that license. Intel and the Intel logo are trademarks of Intel Corporation in the US and/or other countries. Copyright 2012 Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others. This sample source code is released under the Intel Sample Source Code License Agreement
Sample for OpenCL* and DirectX* Video Acceleration Surface Sharing
Sample for OpenCL* and DirectX* Video Acceleration Surface Sharing User s Guide Intel SDK for OpenCL* Applications Sample Documentation Copyright 2010 2013 Intel Corporation All Rights Reserved Document
More informationINTEL PERCEPTUAL COMPUTING SDK. How To Use the Privacy Notification Tool
INTEL PERCEPTUAL COMPUTING SDK How To Use the Privacy Notification Tool LEGAL DISCLAIMER THIS DOCUMENT CONTAINS INFORMATION ON PRODUCTS IN THE DESIGN PHASE OF DEVELOPMENT. INFORMATION IN THIS DOCUMENT
More informationIntel Stereo 3D SDK Developer s Guide. Alpha Release
Intel Stereo 3D SDK Developer s Guide Alpha Release Contents Why Intel Stereo 3D SDK?... 3 HW and SW requirements... 3 Intel Stereo 3D SDK samples... 3 Developing Intel Stereo 3D SDK Applications... 4
More informationIntroduction. How it works
Introduction Connected Standby is a new feature introduced by Microsoft in Windows 8* for SOC-based platforms. The use case on the tablet/mobile systems is similar to that on phones like Instant ON and
More informationOpenCL* and Microsoft DirectX* Video Acceleration Surface Sharing
OpenCL* and Microsoft DirectX* Video Acceleration Surface Sharing Intel SDK for OpenCL* Applications Sample Documentation Copyright 2010 2012 Intel Corporation All Rights Reserved Document Number: 327281-001US
More informationLED Manager for Intel NUC
LED Manager for Intel NUC User Guide Version 1.0.0 March 14, 2018 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO
More informationIntel Cache Acceleration Software for Windows* Workstation
Intel Cache Acceleration Software for Windows* Workstation Release 3.1 Release Notes July 8, 2016 Revision 1.3 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS
More informationBitonic Sorting Intel OpenCL SDK Sample Documentation
Intel OpenCL SDK Sample Documentation Document Number: 325262-002US Legal Information INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL
More informationSoftware Evaluation Guide for WinZip* esources-performance-documents.html
Software Evaluation Guide for WinZip* 14 http://www.intel.com/content/www/us/en/benchmarks/r esources-performance-documents.html INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS.
More informationBitonic Sorting. Intel SDK for OpenCL* Applications Sample Documentation. Copyright Intel Corporation. All Rights Reserved
Intel SDK for OpenCL* Applications Sample Documentation Copyright 2010 2012 Intel Corporation All Rights Reserved Document Number: 325262-002US Revision: 1.3 World Wide Web: http://www.intel.com Document
More informationInstallation Guide and Release Notes
Intel C++ Studio XE 2013 for Windows* Installation Guide and Release Notes Document number: 323805-003US 26 June 2013 Table of Contents 1 Introduction... 1 1.1 What s New... 2 1.1.1 Changes since Intel
More informationHow to Create a.cibd File from Mentor Xpedition for HLDRC
How to Create a.cibd File from Mentor Xpedition for HLDRC White Paper May 2015 Document Number: 052889-1.0 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS
More informationCollecting OpenCL*-related Metrics with Intel Graphics Performance Analyzers
Collecting OpenCL*-related Metrics with Intel Graphics Performance Analyzers Collecting Important OpenCL*-related Metrics with Intel GPA System Analyzer Introduction Intel SDK for OpenCL* Applications
More informationIntel vpro Technology Virtual Seminar 2010
Intel Software Network Connecting Developers. Building Community. Intel vpro Technology Virtual Seminar 2010 Getting to know Intel Active Management Technology 6.0 Intel Active Management Technology (AMT)
More informationInstallation Guide and Release Notes
Installation Guide and Release Notes Document number: 321604-001US 19 October 2009 Table of Contents 1 Introduction... 1 1.1 Product Contents... 1 1.2 System Requirements... 2 1.3 Documentation... 3 1.4
More informationIntel Atom Processor D2000 Series and N2000 Series Embedded Application Power Guideline Addendum January 2012
Intel Atom Processor D2000 Series and N2000 Series Embedded Application Power Guideline Addendum January 2012 Document Number: 326673-001 Background INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION
More informationIntel Parallel Studio XE 2011 for Windows* Installation Guide and Release Notes
Intel Parallel Studio XE 2011 for Windows* Installation Guide and Release Notes Document number: 323803-001US 4 May 2011 Table of Contents 1 Introduction... 1 1.1 What s New... 2 1.2 Product Contents...
More informationIntel Atom Processor E6xx Series Embedded Application Power Guideline Addendum January 2012
Intel Atom Processor E6xx Series Embedded Application Power Guideline Addendum January 2012 Document Number: 324956-003 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,
More informationHow to Create a.cibd/.cce File from Mentor Xpedition for HLDRC
How to Create a.cibd/.cce File from Mentor Xpedition for HLDRC White Paper August 2017 Document Number: 052889-1.2 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,
More informationDrive Recovery Panel
Drive Recovery Panel Don Verner Senior Application Engineer David Blunden Channel Application Engineering Mgr. Intel Corporation 1 Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION
More informationIntel Desktop Board DZ68DB
Intel Desktop Board DZ68DB Specification Update April 2011 Part Number: G31558-001 The Intel Desktop Board DZ68DB may contain design defects or errors known as errata, which may cause the product to deviate
More informationIntel Integrated Native Developer Experience 2015 Build Edition for OS X* Installation Guide and Release Notes
Intel Integrated Native Developer Experience 2015 Build Edition for OS X* Installation Guide and Release Notes 24 July 2014 Table of Contents 1 Introduction... 2 1.1 Product Contents... 2 1.2 System Requirements...
More informationCase Study: Optimizing King of Soldier* with Intel Graphics Performance Analyzers on Intel HD Graphics 4000
Case Study: Optimizing King of Soldier* with Intel Graphics Performance Analyzers on Intel HD Graphics 4000 Intel Corporation: Cage Lu, Kiefer Kuah Giant Interactive Group, Inc.: Yu Nana Abstract The performance
More informationIntel vpro Technology Virtual Seminar 2010
Intel Software Network Connecting Developers. Building Community. Intel vpro Technology Virtual Seminar 2010 Getting to know Intel Active Management Technology 6.0 Fast and Free Software Assessment Tools
More informationSoftware Evaluation Guide for ImTOO* YouTube* to ipod* Converter Downloading YouTube videos to your ipod
Software Evaluation Guide for ImTOO* YouTube* to ipod* Converter Downloading YouTube videos to your ipod http://www.intel.com/performance/resources Version 2008-09 Rev. 1.0 Information in this document
More informationIntel Core TM Processor i C Embedded Application Power Guideline Addendum
Intel Core TM Processor i3-2115 C Embedded Application Power Guideline Addendum August 2012 Document Number: 327874-001US INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO
More informationSolid-State Drive System Optimizations In Data Center Applications
Solid-State Drive System Optimizations In Data Center Applications Tahmid Rahman Senior Technical Marketing Engineer Non Volatile Memory Solutions Group Intel Corporation Flash Memory Summit 2011 Santa
More informationIntel RealSense Depth Module D400 Series Software Calibration Tool
Intel RealSense Depth Module D400 Series Software Calibration Tool Release Notes January 29, 2018 Version 2.5.2.0 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,
More informationIntel Core TM i7-4702ec Processor for Communications Infrastructure
Intel Core TM i7-4702ec Processor for Communications Infrastructure Application Power Guidelines Addendum May 2014 Document Number: 330009-001US Introduction INFORMATION IN THIS DOCUMENT IS PROVIDED IN
More informationEvolving Small Cells. Udayan Mukherjee Senior Principal Engineer and Director (Wireless Infrastructure)
Evolving Small Cells Udayan Mukherjee Senior Principal Engineer and Director (Wireless Infrastructure) Intelligent Heterogeneous Network Optimum User Experience Fibre-optic Connected Macro Base stations
More informationSoftware Occlusion Culling
Software Occlusion Culling Abstract This article details an algorithm and associated sample code for software occlusion culling which is available for download. The technique divides scene objects into
More informationTheory and Practice of the Low-Power SATA Spec DevSleep
Theory and Practice of the Low-Power SATA Spec DevSleep Steven Wells Principal Engineer NVM Solutions Group, Intel August 2013 1 Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION
More informationIntel Xeon Phi Coprocessor. Technical Resources. Intel Xeon Phi Coprocessor Workshop Pawsey Centre & CSIRO, Aug Intel Xeon Phi Coprocessor
Technical Resources Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPETY RIGHTS
More informationPorting Advanced User Interfaces From ios* To Windows 8*
Porting Advanced User Interfaces From ios* To Windows 8* Abstract This article discusses porting advanced user interface features from an ios app to a Windows Store app. We use an electronic medical record
More informationIntel SDK for OpenCL* - Sample for OpenCL* and Intel Media SDK Interoperability
Intel SDK for OpenCL* - Sample for OpenCL* and Intel Media SDK Interoperability User s Guide Copyright 2010 2012 Intel Corporation All Rights Reserved Document Number: 327283-001US Revision: 1.0 World
More informationIntel RealSense D400 Series Calibration Tools and API Release Notes
Intel RealSense D400 Series Calibration Tools and API Release Notes July 9, 2018 Version 2.6.4.0 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED,
More informationIntel Atom Processor E3800 Product Family Development Kit Based on Intel Intelligent System Extended (ISX) Form Factor Reference Design
Intel Atom Processor E3800 Product Family Development Kit Based on Intel Intelligent System Extended (ISX) Form Factor Reference Design Quick Start Guide March 2014 Document Number: 330217-002 Legal Lines
More informationIntel Parallel Studio XE 2011 SP1 for Linux* Installation Guide and Release Notes
Intel Parallel Studio XE 2011 SP1 for Linux* Installation Guide and Release Notes Document number: 323804-002US 21 June 2012 Table of Contents 1 Introduction... 1 1.1 What s New... 1 1.2 Product Contents...
More informationIntel Cache Acceleration Software - Workstation
Intel Cache Acceleration Software - Workstation Version 2.7.0 Order Number: x-009 Contents INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY
More informationErnesto Su, Hideki Saito, Xinmin Tian Intel Corporation. OpenMPCon 2017 September 18, 2017
Ernesto Su, Hideki Saito, Xinmin Tian Intel Corporation OpenMPCon 2017 September 18, 2017 Legal Notice and Disclaimers By using this document, in addition to any agreements you have with Intel, you accept
More informationSDK API Reference Manual for VP8. API Version 1.12
SDK API Reference Manual for VP8 API Version 1.12 LEGAL DISCLAIMER INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE,
More informationDesktop 4th Generation Intel Core, Intel Pentium, and Intel Celeron Processor Families and Intel Xeon Processor E3-1268L v3
Desktop 4th Generation Intel Core, Intel Pentium, and Intel Celeron Processor Families and Intel Xeon Processor E3-1268L v3 Addendum May 2014 Document Number: 329174-004US Introduction INFORMATION IN THIS
More informationThe Intel Processor Diagnostic Tool Release Notes
The Intel Processor Diagnostic Tool Release Notes Page 1 of 7 LEGAL INFORMATION INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
More information6th Generation Intel Core Processor Series
6th Generation Intel Core Processor Series Application Power Guidelines Addendum Supporting the 6th Generation Intel Core Processor Series Based on the S-Processor Lines August 2015 Document Number: 332854-001US
More informationIntel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes
Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes 23 October 2014 Table of Contents 1 Introduction... 1 1.1 Product Contents... 2 1.2 Intel Debugger (IDB) is
More informationIntel RealSense SDK Gesture Sequences Implemented in Unity* 3D
Intel RealSense SDK Gesture Sequences Implemented in Unity* 3D By Lynn Thompson When configuring gestures to control assets in a scene, it s important to minimize the complexity of the gestures and the
More informationInstallation Guide and Release Notes
Installation Guide and Release Notes Document number: 321604-002US 9 July 2010 Table of Contents 1 Introduction... 1 1.1 Product Contents... 2 1.2 What s New... 2 1.3 System Requirements... 2 1.4 Documentation...
More informationMaximize Performance and Scalability of RADIOSS* Structural Analysis Software on Intel Xeon Processor E7 v2 Family-Based Platforms
Maximize Performance and Scalability of RADIOSS* Structural Analysis Software on Family-Based Platforms Executive Summary Complex simulations of structural and systems performance, such as car crash simulations,
More informationHPCG on Intel Xeon Phi 2 nd Generation, Knights Landing. Alexander Kleymenov and Jongsoo Park Intel Corporation SC16, HPCG BoF
HPCG on Intel Xeon Phi 2 nd Generation, Knights Landing Alexander Kleymenov and Jongsoo Park Intel Corporation SC16, HPCG BoF 1 Outline KNL results Our other work related to HPCG 2 ~47 GF/s per KNL ~10
More informationSoftware Evaluation Guide for Photodex* ProShow Gold* 3.2
Software Evaluation Guide for Photodex* ProShow Gold* 3.2 http://www.intel.com/performance/resources Version 2007-12 Rev. 1.0 Information in this document is provided in connection with Intel products.
More informationIntel Desktop Board D975XBX2
Intel Desktop Board D975XBX2 Specification Update July 2008 Order Number: D74278-003US The Intel Desktop Board D975XBX2 may contain design defects or errors known as errata, which may cause the product
More informationIntel Desktop Board D945GCLF2
Intel Desktop Board D945GCLF2 Specification Update July 2010 Order Number: E54886-006US The Intel Desktop Board D945GCLF2 may contain design defects or errors known as errata, which may cause the product
More informationUltrabook Convertible Application Design Considerations
Ultrabook Convertible Application Design Considerations Introduction With the introduction of Windows 8* and touch-enabled computers, like Intel Ultrabook devices, where touch is an additional input method,
More informationAircraft Smooth Motion Controls with Intel Perceptual Computing SDK. Cédric Andreolli - Intel
Aircraft Smooth Motion Controls with Intel Perceptual Computing SDK Cédric Andreolli - Intel 1 Contents 1 Introduction... 3 2 Playing with the aircraft orientation... 4 2.1 The forces in our game... 4
More informationIntel Integrated Native Developer Experience 2015 Build Edition for OS X* Installation Guide and Release Notes
Intel Integrated Native Developer Experience 2015 Build Edition for OS X* Installation Guide and Release Notes 22 January 2015 Table of Contents 1 Introduction... 2 1.1 Change History... 2 1.1.1 Changes
More informationIntel Parallel Studio XE 2011 for Linux* Installation Guide and Release Notes
Intel Parallel Studio XE 2011 for Linux* Installation Guide and Release Notes Document number: 323804-001US 8 October 2010 Table of Contents 1 Introduction... 1 1.1 Product Contents... 1 1.2 What s New...
More informationIntel Media Server Studio 2017 R3 Essentials Edition for Linux* Release Notes
Overview What's New Intel Media Server Studio 2017 R3 Essentials Edition for Linux* Release Notes System Requirements Package Contents Installation Installation Folders Known Limitations Legal Information
More informationMICHAL MROZEK ZBIGNIEW ZDANOWICZ
MICHAL MROZEK ZBIGNIEW ZDANOWICZ Legal Notices and Disclaimers INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY
More informationInstallation Guide and Release Notes
Intel Parallel Studio XE 2013 for Linux* Installation Guide and Release Notes Document number: 323804-003US 10 March 2013 Table of Contents 1 Introduction... 1 1.1 What s New... 1 1.1.1 Changes since Intel
More informationSoftware Evaluation Guide for Sony Vegas Pro 8.0b* Blu-ray Disc Image Creation Burning HD video to Blu-ray Disc
Software Evaluation Guide for Sony Vegas Pro 8.0b* Blu-ray Disc Image Creation Burning HD video to Blu-ray Disc http://www.intel.com/performance/resources Version 2008-09 Rev. 1.0 Information in this document
More informationIntel Desktop Board DP55SB
Intel Desktop Board DP55SB Specification Update July 2010 Order Number: E81107-003US The Intel Desktop Board DP55SB may contain design defects or errors known as errata, which may cause the product to
More informationSoftware Evaluation Guide for CyberLink MediaEspresso *
Software Evaluation Guide for CyberLink MediaEspresso 6.7.3521* Version 2013-04 Rev. 1.3 Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel
More informationIntel Desktop Board D946GZAB
Intel Desktop Board D946GZAB Specification Update Release Date: November 2007 Order Number: D65909-002US The Intel Desktop Board D946GZAB may contain design defects or errors known as errata, which may
More informationData Center Energy Efficiency Using Intel Intelligent Power Node Manager and Intel Data Center Manager
Data Center Energy Efficiency Using Intel Intelligent Power Node Manager and Intel Data Center Manager Deploying Intel Intelligent Power Node Manager and Intel Data Center Manager with a proper power policy
More informationIntel Desktop Board DG41CN
Intel Desktop Board DG41CN Specification Update December 2010 Order Number: E89822-003US The Intel Desktop Board DG41CN may contain design defects or errors known as errata, which may cause the product
More informationUsing the Intel VTune Amplifier 2013 on Embedded Platforms
Using the Intel VTune Amplifier 2013 on Embedded Platforms Introduction This guide explains the usage of the Intel VTune Amplifier for performance and power analysis on embedded devices. Overview VTune
More informationKrzysztof Laskowski, Intel Pavan K Lanka, Intel
Krzysztof Laskowski, Intel Pavan K Lanka, Intel Legal Notices and Disclaimers INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
More informationOptimizing the operations with sparse matrices on Intel architecture
Optimizing the operations with sparse matrices on Intel architecture Gladkikh V. S. victor.s.gladkikh@intel.com Intel Xeon, Intel Itanium are trademarks of Intel Corporation in the U.S. and other countries.
More informationIEEE1588 Frequently Asked Questions (FAQs)
IEEE1588 Frequently Asked Questions (FAQs) LAN Access Division December 2011 Revision 1.0 Legal INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED,
More informationIntel Desktop Board DG31PR
Intel Desktop Board DG31PR Specification Update May 2008 Order Number E30564-003US The Intel Desktop Board DG31PR may contain design defects or errors known as errata, which may cause the product to deviate
More informationCustomizing an Android* OS with Intel Build Tool Suite for Android* v1.1 Process Guide
Customizing an Android* OS with Intel Build Tool Suite for Android* v1.1 Process Guide May 2015, Revision 1.5 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS
More informationSoftware Evaluation Guide for WinZip 15.5*
Software Evaluation Guide for WinZip 15.5* http://www.intel.com/performance/resources Version 2011-06 Rev. 1.1 Information in this document is provided in connection with Intel products. No license, express
More informationIntel Parallel Amplifier Sample Code Guide
The analyzes the performance of your application and provides information on the performance bottlenecks in your code. It enables you to focus your tuning efforts on the most critical sections of your
More informationIntel Media Server Studio Professional Edition for Linux*
Intel Media Server Studio 2015 R4 Professional Edition for Linux* Release Notes Overview What's New System Requirements Package Contents Installation Installation Folders Known Limitations Legal Information
More informationIntel Desktop Board DG41RQ
Intel Desktop Board DG41RQ Specification Update July 2010 Order Number: E61979-004US The Intel Desktop Board DG41RQ may contain design defects or errors known as errata, which may cause the product to
More informationIntel Desktop Board D945GCCR
Intel Desktop Board D945GCCR Specification Update January 2008 Order Number: D87098-003 The Intel Desktop Board D945GCCR may contain design defects or errors known as errata, which may cause the product
More informationOpenCL* Device Fission for CPU Performance
OpenCL* Device Fission for CPU Performance Summary Device fission is an addition to the OpenCL* specification that gives more power and control to OpenCL programmers over managing which computational units
More informationDeveloping Desktop Apps for Ultrabook Devices in Windows* 8: Adapting Existing Apps By Paul Ferrill
Developing Desktop Apps for Ultrabook Devices in Windows* 8: Adapting Existing Apps By Paul Ferrill Microsoft introduced the Extensible Application Markup Language (XAML) in conjunction with the release
More informationIntel Desktop Board DH61SA
Intel Desktop Board DH61SA Specification Update December 2011 Part Number: G52483-001 The Intel Desktop Board DH61SA may contain design defects or errors known as errata, which may cause the product to
More informationIntel 848P Chipset. Specification Update. Intel 82848P Memory Controller Hub (MCH) August 2003
Intel 848P Chipset Specification Update Intel 82848P Memory Controller Hub (MCH) August 2003 Notice: The Intel 82848P MCH may contain design defects or errors known as errata which may cause the product
More informationVersion 1.0. Intel-powered classmate PC Arcsoft WebCam Companion 3* Training Foils. *Other names and brands may be claimed as the property of others.
Intel-powered classmate PC Arcsoft WebCam Companion 3* Training Foils Version 1.0 1 2010/5/11 *Other names and brands may be claimed as the property of others. Legal Information INFORMATION IN THIS DOCUMENT
More informationIntel USB 3.0 extensible Host Controller Driver
Intel USB 3.0 extensible Host Controller Driver Release Notes (5.0.4.43) Unified driver September 2018 Revision 1.2 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE,
More informationDevice Firmware Update (DFU) for Windows
Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY
More informationAlso a new Metro style sample application which showcases media files transcoding with parameter control using Metro design language is introduced.
Intel Media Software Development Kit 2012 R3 Release Notes (Version 3.5.915.45249) Overview New Features System Requirements Package Contents Installation Known Limitations Other Limitations Legal Information
More informationIntel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround
Intel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround White Paper June 2007 Order Number: 12608-002EN INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION
More informationIntel Desktop Board DP67DE
Intel Desktop Board DP67DE Specification Update December 2011 Part Number: G24290-003 The Intel Desktop Board DP67DE may contain design defects or errors known as errata, which may cause the product to
More informationSoftware Evaluation Guide Adobe Premiere Pro CS3 SEG
Software Evaluation Guide Adobe Premiere Pro CS3 SEG http://www.intel.com/performance/resources Version 2007-09 Rev 1.0 Performance tests and ratings are measured using specific computer systems and/or
More informationPARDISO - PARallel DIrect SOlver to solve SLAE on shared memory architectures
PARDISO - PARallel DIrect SOlver to solve SLAE on shared memory architectures Solovev S. A, Pudov S.G sergey.a.solovev@intel.com, sergey.g.pudov@intel.com Intel Xeon, Intel Core 2 Duo are trademarks of
More informationIntel Manycore Platform Software Stack (Intel MPSS)
Intel Manycore Platform Software Stack (Intel MPSS) README (Windows*) Copyright 2012 2014 Intel Corporation All Rights Reserved Document Number: 328510-001US Revision: 3.4 World Wide Web: http://www.intel.com
More informationIntel Desktop Board D945GCLF
Intel Desktop Board D945GCLF Specification Update July 2010 Order Number: E47517-008US The Intel Desktop Board D945GCLF may contain design defects or errors known as errata, which may cause the product
More informationIntel Media Server Studio 2018 R1 - HEVC Decoder and Encoder Release Notes (Version )
Intel Media Server Studio 2018 R1 - HEVC Decoder and Encoder Release Notes (Version 1.0.10) Overview New Features System Requirements Installation Installation Folders How To Use Supported Formats Known
More informationData Plane Development Kit
Data Plane Development Kit Quality of Service (QoS) Cristian Dumitrescu SW Architect - Intel Apr 21, 2015 1 Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS.
More informationIntel & Lustre: LUG Micah Bhakti
Intel & Lustre: LUG 2018 Micah Bhakti Exciting Information from Lawyers All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel product
More informationIntel Desktop Board DH61CR
Intel Desktop Board DH61CR Specification Update December 2011 Order Number: G27744-003 The Intel Desktop Board DH61CR may contain design defects or errors known as errata, which may cause the product to
More informationIntel Desktop Board D845PT Specification Update
Intel Desktop Board D845PT Specification Update Release Date: February 2002 Order Number: A83341-002 The Intel Desktop Board D845PT may contain design defects or errors known as errata which may cause
More informationIntel Desktop Board DQ57TM
Intel Desktop Board DQ57TM Specification Update December 2010 Order Number: E88215-006US The Intel Desktop Board DQ57TM may contain design defects or errors known as errata, which may cause the product
More informationIntel Desktop Board DH55TC
Intel Desktop Board DH55TC Specification Update December 2011 Order Number: E88213-006 The Intel Desktop Board DH55TC may contain design defects or errors known as errata, which may cause the product to
More information2013 Intel Corporation
2013 Intel Corporation Intel Open Source Graphics Programmer s Reference Manual (PRM) for the 2013 Intel Core Processor Family, including Intel HD Graphics, Intel Iris Graphics and Intel Iris Pro Graphics
More informationIntel Cache Acceleration Software (Intel CAS) for Linux* v2.9 (GA)
Intel Cache Acceleration Software (Intel CAS) for Linux* v2.9 (GA) Release Notes June 2015 Revision 010 Document Number: 328497-010 Notice: This document contains information on products in the design
More informationIntroduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI
Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED,
More information