intel ultrabook applab - all slides
DESCRIPTION
Intel Ultrabook AppLab - ALL Slides - presented by Paul, Sulamita, Xavier and UliTRANSCRIPT
Intel Ultrabook™ AppLab
Intel® Corporation
Berlin, September 3rd
Overview of the Entire Day
2Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
1. Welcome & Opening Monika
2. Introduction into Ultrabook™ Development Paul
3. New Windows UI Design Oliver
4. Technical Presentation: Touch Sulamita
5. Lunch & Networking: Check out also the Demos!
6. Technical Presentation: Sensors Xavier
7. Break & Networking: Check out also the Demos!
8. Intel Tools Uli
9. Ultrabook Developer Resources Paul
10. Wrap Up and Closing Monika
11. SDP (Software Development Platform) Distribution
12. Hacking Session at the c-base
Who am I?
3
Monika LischkeMonika LischkeMonika LischkeMonika LischkeTeam Lead Community Management EMEATeam Lead Community Management EMEATeam Lead Community Management EMEATeam Lead Community Management EMEA
Wannabe Geek
Late Early Adopter
@MonikaLischke
#IntelAppLab
Introduction to Developing
Ultrabook™ Applications
Intel® Corporation
Legal Disclaimer• INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH
PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL IS CLAIMS 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. Intel products are not intended for use in medical, life-saving, life sustaining, critical control or safety systems,
or in nuclear facility applications.
• Intel products 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.
• Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice.
• This document may contain information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a
design with this information.
• 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.
• Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject
matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such
patents, trademarks, copyrights, or other intellectual property rights.
• Wireless connectivity and some features may require you to purchase additional software, services or external hardware.
• Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured
by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of
information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the
performance of Intel products, visit Intel Performance Benchmark Limitations
• Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Copyright © 2011 Intel Corporation. All rights reserved.
Intel Confidential - Customer NDA Use Only
* Other Names and Brands maybe claimed as the property of others. All dates, plans and features are preliminary and subject to change without notice.
5Copyright© 2012, Intel Corporation. All rights reserved. *Other brands
and names are the property of their respective owners
Who am I?
6
Paul FarquharEMEA AppUp Technical Lead
What do I like to do?
7
@TheGlenPaul
What do we eat – Haggis!
8
You need the proper tools!
9
WHAT DOES ULTRABOOKTM / WINDOWS*
8 MEAN FOR CURRENT DEVELOPERS?
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 10
Worried about the Windows* 8
transition?
What’s the
difference
between an
Ultrabook and a
notebook?
New
Windows*8
UI?
Desktop?
Do I have to re-write
all of my Win32 apps
from scratch?
WinRT?
Do my applications
need to support
touch?
How does
HTML5* fit
into this?
How do I use an
Ultrabook’s
sensors?
11Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
The world of Windows* 8
Source: Microsoft
12Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
• New Windows*8 appshave a single, full-screen window with multiple views
– Must follow the New Windows*8 user experience
– Require a new developer ecosystem
• Desktop Applications– Windows* 8 supports Native Win7
Applications
– Run in a desktop UI, with full device and driver compatibility
– Can take advantage of UltrabookTM &Windows* 8 features
New Windows*8 Style Desktop Style
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names
are the property of their respective owners 13
How Windows*8 and the DesktopWork Together
Desktop Application Launched from New Windows*8 Start Screen
13
Click tile for iTunes* iTunes Desktop app launches
Legacy Compatibility for IA:
• Windows* 8 supports Native Win7 Applications (in Desktop UI, with full device and driver compatibility)
• Desktop Applications run as is, no changes required, in the Desktop UI mode of Windows* 8
• 4 million+ “legacy” Applications supported by IA.
New New Windows*8 apps:
• Requires a NEW developer ecosystem
• WinRT* (i.e. New Windows*8*) apps to be compatible with both x86- and ARM-based systems
• HTML5/JavaScript and .NET desktop applications expected to be compatible with both x86 and ARM
x86 + ARM*
x86 Only
Source: Microsoft
14Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
New Windows*8 Apps Desktop applicaitons
Windows* 8 Compatibility
Expectations
ULTRABOOK™ / WINDOWS* 8 FEATURES
(HARDWARE, OS, APPLICATION LEVELS)
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 15
Ultrabook
HardwareSecurity
Rapid StartBattery Life
Thunderbolt Turbo Boost
Graphics
UltrabookTM Built to Set Applications Apart
OS
UX Desktop New Windows*8
Touch/Gestures Context Aware Sensors
Near Field Communication Geolocation
16Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Ivy Bridge Processor Graphics
17
• Integration of graphic and media processing onto the same CPU die
• Dedicated hardwired media processing functions
• Maximum media performance at lowest possible power consumption
• Highly sophisticated graphic execution units (EU) for high quality graphics
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Intel® Turbo Boost Technology 2.0
18Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
• Performance when you need it
• Dynamic overclocking
• Don’t need to drain power constantly for all processes
• Helps reduce temperature and extends battery power.
OS Differentiators
• Touch- and gesture-based UI
• Context aware sensors
• Near field communication
• Geolocation
OS
Touch/GesturesContext Aware
Sensors
Near Field
CommunicationGeolocation
Intel Confidential
19Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Application Differentiators
Intel Confidential
20Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
New Windows*8
Desktop Style
• New Windows*8 apps have a single, full-screen window with multiple views
• Clean typography and animations• Fast, fluid touch first experience
• Retains the flexibility of the traditional Windows* Desktop • Full access to familiar x86 applications and tools• Provides finer-grained control
• Touch and Sensors can be enabled for all three styles of applications
New Windows*8 Style
Desktop Style
HTML5 Style
• HTML5* apps can run as New Windows*8 apps or as Desktop in Internet Explorer 9 & 10
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names
are the property of their respective owners 21
Digital Storefronts for Windows* 8
Windows Store* for New Windows*8 apps
Intel AppUp® for Desktop
Applications
NEW WINDOWS*8 API FOR
DESKTOP DEVELOPERS
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 22
Application Environment
23Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Model
View
Systems Services
New Windows*8 apps Desktop Applications
HTMLJavaScript
CC++
C#VB
InternetExplorer
Win32 .NET
HTML CSS
JavaScript(Chakra)
C#, VBC/C++
XAML
WinRT APIs
App Model
Network& Data
Graphics &
Media
Devices &
Printing
Kernel Windows Kernel Services
XAML
WinRT
• API to access to the system (display, file
system, sensors, media devices, etc)
– Everything needed for a New Windows*8 app
– Desktop applications can use a sub-set of WinRT
• Combine with Win Native or .NET
• Languages: C++, C#, JavaScript and VB
– WinRT HTML or XAML elements are restricted to
New Windows*8 apps
Intel Confidential
24Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Desktop apps and Windows
Native
• Primarily the same as Win32 on Windows 7– Computer System Hardware Classes
– Installed Application Classes
– Operating System Classes
– Performance Counter Classes
– Security Descriptor Helper Classes
– WMI Service Management Classes
• Access to the hardware– Better performance
– Less abstraction
• Access to sensors via COM interfaces
• Code is unmanaged– No automated free memory management
25Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT API Areas
• Core
• Controls
• Data and content
• Devices
• Files and folders
• Globalization
• Graphics
• Helpers
• Media
• Networking
• Printing
• Presentation
• Remote Desktop
• Security
• Social
• UI Automation
• User Interaction
Underlined items have classes available to desktop applications
26Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 27
Microsoft Presentation by Oliver
APPLICATION DEVELOPMENT WITH
TOUCH AND SENSORS ON
ULTRABOOKTM / WINDOWS 8
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 28
Sulamita Garcia – [email protected]
Technical Marketing Engineer
Twitter @sulagarcia
/me
MAHJONG DEMO HERE
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 30
Using touch in a desktop application
• Touch and gestures
• Do’s and Don’t of gesture interfaces
• Demo: Use touch and gestures to select, move
and manipulate three images
• The Windows Touch API
• Using touch with XMAL
31Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Adding touch to a desktop application
• Touch is not a mouse
• Make touch targets large enough
• Support standard gestures and behaviors
• Portrait vs. Landscape
• Do not use touch just for touch’s sake
• Touch should be forgiving
• Microsoft User Experience Guidelines– msdn.microsoft.com/en-
us/library/windows/desktop/cc872774.aspx
– blogs.msdn.com/b/ie/archive/2012/04/20/guidelines-for-building-touch-friendly-sites.aspx
32Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Designing for Touch User Experience
• Design UI to include traditional laptop style and tablet mode usages
• Space and size controls to register fuzzy touch input– Common Controls: 23X23 pixels
– Command Controls: 40X40 pixels
• Use multiple form tabs for touch efficiency
• Consider the target size while designing your application UI
• Use natural and intuitive controls
• Ultrabook Optimal Resolution: 1366X768
Source: MSDN
http://msdn.microsoft.com/en-us/library/windows/desktop/cc872774.aspx#guidelines
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 33
Designing for Touch User Experience
• Use common controls as much as possible
• Choose custom controls that support touch
• Prefer constrained controls to unconstrained controls
• Provide default values and auto text-completion
• Use check boxes instead of multiple selection lists
Source: MSDN
http://msdn.microsoft.com/en-us/library/windows/desktop/cc872774.aspx#guidelines
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 34
Designing for Touch User Experience
• Place controls in areas better utilized for touch
• Command controls should be more easily
accessible
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 35
WINDOWS TOUCH API
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 36
Using Windows Touch API• Touch and gesture events are delivered via Windows Touch
messages– Windows must register for Windows Touch input:
RegisterTouchWindow
• WM_TOUCH reports action, position and identifier
• WM_GESTURE describes the gesture via GESTUREINFO structure
• Special interfaces to help process gesture messages – IManipulationProcessor
– IInertiaProcessor
• API reference at msdn.microsoft.com/en-us/library/windows/desktop/dd371406%28v=vs.85%29.aspx
37Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
WinNative: Receive gesture message
LRESULT CALLBACK WndProc(…)
{…switch (message){
case WM_GESTURE: // Call code to// interpret the// gesturereturn
DecodeGesture(…);…
}
38Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
(Source: Microsoft)
• Check for
WM_GESTURE message
in WndProc
WinNative: Process gesture
LRESULT DecodeGesture(…){
…BOOL bResult = GetGestureInfo(…);
BOOL bHandled = FALSE;
if (bResult){
// now interpret the gestureswitch (gi.dwID){
case GID_ZOOM : // Code for zooming goes herebHandled = TRUE;break;
case GID_PAN : …
case GID_ROTATE : …
case GID_TWOFINGERTAP: …
case GID_PRESSANDTAP: …
default:// A gesture was not recognizedbreak;
} …
39Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Retrieve the additionalgesture information from the GESTUREINFO structure
• Handle each of the possible gestures
(Source: Microsoft)
Recognized gestures
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 40
– Tap/Double tap
– Panning with inertia
– Selection/Drag
– Press and tap
– Press and hold
– Zoom
– Rotate
– Two-finger tap
– Flicks
WINDOWS TOUCH API / XAML /
.NET
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 41
Using touch and XAML/.NET
• XAML provides access to WPF touch-enabled
UI components– WPF touchs event are available in both Windows* 7 and
Windows* 8.
• Typical gesture events:– ManipulationStarting
– ManipulationDelta
– ManipulationInertiaStarting
42Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
XAML: TouchControl.xaml
<UserControl x:Class="Win8Demo.TouchControl" …>
<Grid x:Name="cont" ClipToBounds="True" ><!-- Set the IsManipulationEnabled totrue -->
<Image x:Name="photo_1"Source="/Assets/ultrabook1.png“IsManipulationEnabled="True"Width="500" />
<Image x:Name="photo_2“Source="/Assets/ultrabook2.png“IsManipulationEnabled="True“Width="500" Margin="125,-79,25,79"/>
<Image x:Name="photo_3“Source="/Assets/ultrabook3.png“IsManipulationEnabled="True“Width="500" Margin="0,-59,150,59" />
</Grid></UserControl>
43Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Three images placed in
a Grid inside of a
TouchControl
• Each image has IsManipulationEnabledset to true
Touch Event State Diagram
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 44
Manipulation
Starting
Manipulation
Delta
Manipulation
Inertia Starting
Manipulation
Delta
w/ Inertia
Manipulation
Completed
Events begin with User
Touching the Image
User finger is
touching the
screen
User finger is lifted from the
screen
XAML: TouchControl.xaml.cs
public TouchControl(){
…
//Register for manipulation eventsphoto_1.ManipulationStarting +=
m_rect_ManipulationStarting;photo_1.ManipulationDelta +=
m_rect_ManipulationDelta;photo_1.ManipulationInertiaStarting +=
m_rect_ManipulationInertiaStarting;
photo_2.ManipulationStarting += …
photo_3.ManipulationStarting += … }
45Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Add event handlers to
each image for:•ManipulationStarting
•ManipulationDelta
•ManipulationInertiaStarting
Touch Event State Diagram
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 46
Manipulation
Starting
Manipulation
Delta
Manipulation
Inertia Starting
Manipulation
Delta
w/ Inertia
Manipulation
Completed
Events begin with User
Touching the Image
User finger is
touching the
screen
User finger is lifted from the
screen
XAML: Manipulation starting event
handlervoid
m_rect_ManipulationStarting
(…)
{
…
e.ManipulationContainer = this;
}
47Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• ManipulationStarting event handler is called at start of touch event
• By setting Manipulation-Container to the touched image all subsequent manipulation events will be relative to that element
Touch Event State Diagram
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 48
Manipulation
Starting
Manipulation
Delta
Manipulation
Inertia Starting
Manipulation
Delta
w/ Inertia
Manipulation
Completed
Events begin with User
Touching the Image
User finger is
touching the
screen
User finger is lifted from the
screen
XAML: Manipulation delta event
handlervoid m_rect_ManipulationDelta(…){
…//Get the manipulation’s deltavar delta = e.DeltaManipulation;
//Compute the transformed center pointPoint rectCenter = new Point(rect.ActualWidth *
0.5, rect.ActualHeight * 0.5);rectCenter = matrix.Transform(rectCenter);
//Adjust the element’s scale, rotation and translation
matrix.ScaleAt(delta.Scale.X, delta.Scale.Y,rectCenter.X, rectCenter.Y);
matrix.RotateAt(delta.Rotation, rectCenter.X, rectCenter.Y);
matrix.Translate(delta.Translation.X, delta.Translation.Y);
//Update the element’s render transformationrect.RenderTransform =
new MatrixTransform(matrix);e.Handled = true;
49Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• ManipulationDeltaevent happens as user moves fingers
• Compute new image center point, scale, and rotation using event data
• Set Handled to true so other handlers don’t process same event
Touch Event State Diagram
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 50
Manipulation
Starting
Manipulation
Delta
Manipulation
Inertia Starting
Manipulation
Delta
w/ Inertia
Manipulation
Completed
Events begin with User
Touching the Image
User finger is
touching the
screen
User finger is lifted from the
screen
XAML: Inertia starting event handler
void m_rect_ManipulationInertiaStarting(…){
//Set the manipulations inertia valuese.TranslationBehavior = new
InertiaTranslationBehavior(){
InitialVelocity =e.InitialVelocities.LinearVelocity,DesiredDeceleration =…
};e.ExpansionBehavior = new
InertiaExpansionBehavior(){
InitialVelocity =e.InitialVelocities.ExpansionVelocity,DesiredDeceleration = …
};e.RotationBehavior = new
InertiaRotationBehavior(){
InitialVelocity =e.InitialVelocities.AngularVelocity,DesiredDeceleration = …
};e.Handled = true; …
51Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Inertia actions are handled by the ManipulationInertiaStarting event handler
• Define the behavior of the inertia by specifying • Linear velocity• Deceleration• Expansion velocity (used in
pinch or spread)• Angular velocity (used in
rotation)
• Again, set Handled to true so other handlers don’t process same event
Touch Event State Diagram
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 52
Manipulation
Starting
Manipulation
Delta
Manipulation
Inertia Starting
Manipulation
Delta
w/ Inertia
Manipulation
Completed
Events begin with User
Touching the Image
User finger is
touching the
screen
User finger is lifted from the
screen
XAML: Handle inertia manipulation
if (e.IsInertial){
//Get the containing element’s sizeRect containingRect = …
(e.ManipulationContainer).RenderSize);//Get the transformed element’s new//boundsRect shapeBounds =
rect.RenderTransform.TransformBounds(…);
//If element falls out of boundsif(!containingRect.Contains(shapeBounds)){
//Report boundary feedbacke.ReportBoundaryFeedback(…);//Stop any after inertiae.Complete();
}}
…
53Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Check if inertia is moving the
image across the grid
• If so, make sure image does not
travel outside of the grid by
calling the Complete method to
end the inertia
Summary
• Your application is already touch enabled, consider making touch oriented
• User Experience is the perception, not just execution – delight the user!
• Windows native API provides WM_GESTURE by default, RegisterTouchWindow for WM_GESTIRE
• XAML enables easy design and can be used with C# or VB for Desktop applications
– Consider Inertia and Bounderies when Manipulating objects
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners 54
References
• Intel Ultrabook™ Community
• Intel® Software Network
– software.intel.com
• Windows Development Reference
– msdn.microsoft.com/en-us/library/windows/desktop/hh447209%28v=vs.85%29.aspx
• WinRT API Reference
– msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx
55Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Q & A
56Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Sulamita Garcia – [email protected]
Technical Marketing Engineer
Twitter @sulagarcia
LUNCH!!!!
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective ownersIntel Confidential
57
Source: Microsoft
Application Development using
Sensors
Intel® Corporation
Legal Disclaimer
• INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH
PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL IS CLAIMS 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. Intel products are not intended for use in medical, life-saving, life sustaining, critical control or safety systems,
or in nuclear facility applications.
• Intel products 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.
• Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice.
• This document may contain information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a
design with this information.
• 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.
• Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the presented subject
matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppel or otherwise, to any such
patents, trademarks, copyrights, or other intellectual property rights.
• Wireless connectivity and some features may require you to purchase additional software, services or external hardware.
• Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured
by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of
information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the
performance of Intel products, visit Intel Performance Benchmark Limitations
• Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Copyright © 2011 Intel Corporation. All rights reserved.
Intel Confidential - Customer NDA Use Only
* Other Names and Brands maybe claimed as the property of others. All dates, plans and features are preliminary and subject to change without notice. 59Copyright© 2012, Intel Corporation. All rights reserved. *Other brands
and names are the property of their respective owners
Agenda
• Overview of available sensors
• Using sensors in a Windows 8* application
- In C++ desktop applications, using COM interface
- In C++ or C#/.NET Windows 8* store and desktop
applications, using WinRT APIs
• Considerations on Efficiency
60Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Who am I ?
Xavier Hallade (@ph0b)
Technical Marketing Engineer at Intel
61Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
OVERVIEW OF AVAILABLE SENSORS
Sensors
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 62
Available Sensors
• Sensor Fusion : virtual sensors created by combining data from compass, accelerometer and gyroscope
• Ambient Light, GPS, 3D Motion and orientation sensors are all mandatory on Windows 8* Tablets and Convertibles
• Applications can subscribe to sensor events, set callbacks or directly poll their current state.
Accelerometer Gyroscope GPS Ambient LightCompass NFC
+ with Sensor Fusion: Inclinometer, Orientation, SimpleOrientation
Orientation and Motion
• Gyrometer returns yaw, pitch and roll velocities
• Accelerometer returns acceleration along x, y and z, and optionally a Shake event
• Simple Orientation : returns device orientation into one of four quadrants, face-up, or face-down
• Orientation Sensor and inclinometer both returns the complete device orientation
– Inclinometer returns yaw, pitch, and roll angles
– Orientation Sensor returns a quaternion as well as a 3x3 orientation matrix
Orientation and Motion detection
same convention as on Android
and in the HTML5 specification
0.0° ≤ Yaw < 360.0°
-180.0° ≤ Pitch < 180.0°
-90.0° ≤ Roll < 90.0°
Ambient Light
• Can be used to adapt application interface
depending on light conditions : contrast,
font size
• Screen brightness control should be handled
by the operating system.
Lighting condition Iuminance (lux)
Pitch black 1
Very dark 10
Dark indoors 50
Dim indoors 100
Normal indoors 300
Bright indoors 1,000
Dim outdoors 5,000
Cloudy outdoors 30,000
Direct sunlight 100,000
Location
Returns latitude, longitude:
- using Wi-Fi if available
- using IP Address otherwise
- using GPS if available and desired accuracy is set on High- then it can also return Altitude, Speed and Heading
Depending on user’s choice, its use can be denied.
A Windows 8* store app has to declare the “location” capability in its manifest.
Near Field Communication
• Short range (<4cm)
• Contactless
• Used between active and/or passive devices
– Active: Smartphone, Tablet, Ultrabook™…
– Passive: Tags, Smart cards…
• Small amount of data, low data transfer rate
• Easy to use, feels instantaneous (<1/10s)
-> Great user experience !
Near Field Communication
• Pairing
– with Bluetooth* peripherals, at the OS level
– with another running application, by establishing
a BT or Wi-Fi direct socket, at the application level
• Short data read/write on NFC tags
• Short data exchange with active devices
– Sharing URIs, contacts, positions
– Secure transactions
NFC messagesProtocol Pub. Sub. Message contents
Windows X X binary data.
WindowsUri X X UTF-16LE encoded string that is a URI.
use PublishUriMessage
WindowsMime X X message data of a specific mime type.
For example, "WindowsMime.image/jpeg".
You can subscribe to "WindowsMime" message
without specifying the mime type. If so, the first 256
bytes received is the ASCII mime type string.
Windows:WriteTag X Windows message to be written to a static tag.
WindowsUri:WriteTag X WindowsUri message to be written to a static tag.
WindowsMime:Write
Tag
X WindowsMime message to be written to a static tag.
Example, “WindowsMime:WriteTag.image/jpeg”
LaunchApp:WriteTag X Write a tag that can be used to launch a specific app.
more information on msdn.
WriteableTag X if a writeable tag is brought in to proximity, a
proximity message is received that contains an
int32 indicating the maximum writeable size.
NFC messages
Protocol Pub. Sub. Message contents
NDEF X X properly formatted NDEF records.
NDEF:ext X application defined NDEF records (TNF field value of 0x04).
NDEF:MIME X properly formatted NDEF mime message (TNF field value
of 0x02). For example, "NDEF:MIME.image/jpeg".
NDEF:URI X properly formatted NDEF message of a type defined by a
URI namespace (TNF field value of 0x03). For example,
"NDEF:URI.http://contoso.com/sometype".
NDEF:wkt X properly formatted NDEF message of a type defined by the
NFC forum (TNF field value of 0x01).An example of this
type is "NDEF:wkt.U" for the well known type of URI.
NDEF:WriteTag X message data that should be written to an NFC forum
standard static tag.
NDEF:Unknown X untyped NDEF message (TNF field value of 0x05).
Windows messages are fully compatible with NDEF messages,
but you can also directly manipulate them :
LET’S DIVE INTO SOME CODE !
Sensors
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 72
FROM C++
Sensors and Location Platform using COM interface
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 73
Sensors and Location Platform
• Same interface as on Windows 7– Sensor fusion available through new GUIDs
• Sensor manager controls sensors– Use sensor manager to get to sensors
– Notifies when a sensor connects
• Sensors report data, changes in state and disconnection
• Access both via COM interfaces– Use API to communicate to sensors
– Sensor events handled using callbacks
– API reference at msdn.microsoft.com/en-us/library/windows/desktop/dd318953%28v=vs.85%29.aspx
74Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
COM: Connect to sensor manager
// Create the sensor manager
ISensorManager pSensorManager;
hr = CoCreateInstance (CLSID_SensorManager,NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(& pSensorManager ));
if(hr == HRESULT_FROM_WIN32
( ERROR_ACCESS_DISABLED_BY_POLICY))
{
// Unable to retrieve sensor manager due
// to group policy settings.
// Alert the user.
}
75Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
(Source: Microsoft)
• Access to sensors is through the
sensor manager
• Group policy settings may deny
access to the system sensors
COM: Retrieve a sensor object
// Get the sensor collectionhr = pSensorManager->GetSensorsByCategory(
SENSOR_CATEGORY_ALL,&pSensorColl);
if(SUCCEEDED(hr)){
ULONG ulCount = 0;// Verify that the collection contains at// least one sensorhr = pSensorColl->GetCount(&ulCount);if(SUCCEEDED(hr)){
if(ulCount < 1){
wprintf_s(L"\nNo sensors of therequested category.\n");
hr = E_UNEXPECTED;} else{
// Request permissions for all sensors// in the collectionhr = pSensorManager->
RequestPermissions(0, pSensorColl,FALSE);
}…
76Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Request sensors by category, type
or ID
• Request permission to use the
sensor(s)
• Windows 8 will open a dialog
box to ask the user
• Granting permission triggers
the OnStateChanged event
(Source: Microsoft)
COM: Sensor event callback
class CMyEvents : public ISensorEvents
{
public:
STDMETHODIMP QueryInterface (…) {…}
STDMETHODIMP_(ULONG) AddRef () {…}
STDMETHODIMP_(ULONG) Release () {…}
// ISensorEvents methods. //
STDMETHODIMP OnEvent (…) {…}
STDMETHODIMP OnDataUpdated (…) {…}
STDMETHODIMP OnLeave (…) {…}
STDMETHODIMP OnStateChanged (…) {…}
…
77Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
(Source: Microsoft)
• Receive event notifications by
implementing required COM
interfaces
• Sensor events require
ISensorEvents
• Sensor Manager events require
ISensorManagerEvents
COM: Start receiving events
// Create an instance of the event// classpEventClass = new CMyEvents();
if(SUCCEEDED(hr)){
// Retrieve the pointer to the// callback interfacehr = pEventClass->QueryInterface(
IID_PPV_ARGS(&pMyEvents));}if(SUCCEEDED(hr)){
// Start receiving eventshr = pSensor->
SetEventSink(pMyEvents);}
78Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
(Source: Microsoft)
• To start receiving events provide
the sensor with a pointer to your
callback
• To stop receiving events call
SetEventSink with a parameter of
NULL
Ambient Light Sensor
DEMO
Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 79
FROM C# AND C++/CX
Using WinRT Sensors and Location API
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 80
WinRT API
• Windows.Sensors.
• Accelerometer
• Gyrometer
• Inclinometer
• OrientationSensor
• SimpleOrientationSensor
• Compass
• LightSensor
• Windows.Networking.Proximity.ProximityDevice (NFC)
• Windows.Device.Geolocation (GPS)
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
Using the WinRT API
WinRT Sensors and Location APIs are available to
Windows 8* Desktop applications
You need to use WinRT Windows MetaData files :
• Platform.winmd: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\Microsoft.VCLi
bs\11.0\References\CommonConfiguration\neutral
• Windows.winmd: C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
How ?
WinRT From Desktop (C#)
Unload your C# Project
Manually edit the .csproj file to add :
<PropertyGroup>
<TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
Reload the project
Add Windows.winmd and Platform.winmd as references from their respective locations
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT From Desktop (C++)
In your project properties, in C/C++->General:
• Set “Consume Windows Runtime Extension” on Yes
(/ZW)
• Add Windows.winmd and Platform.winmd paths to
“Additional #using Directories”
In your source code, add :
#using <Windows.winmd>
#using <Platform.winmd>
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT Sensor API
No need for a sensor manager:
1 – Retrieve the default sensor/device using GetDefault()
2 – Set the ReportInterval
3 – Add a delegate to ReadingChanged event
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
WinRT Sensor API
Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
_accelero = Accelerometer.GetDefault();
if (_accelero != null)
{
_accelero.ReportInterval = 50 <= _accelero.MinimumReportInterval ?
_accelerometer.MinimumReportInterval : 50;
//Register for reading changed events
_accelero.ReadingChanged += (Accelerometer s, AccelerometerReadingChangedEventArgs
args) =>
{
//use e.Data.AccelerationX/Y/Z
};
}
Accelerometer ^accelero = Accelerometer::GetDefault();
if(accelero!=nullptr)
{
accelero->ReportInterval = 50 <= accelero->MinimumReportInterval ? accelero-
>MinimumReportInterval : 50;
accelero->ReadingChanged += ref new TypedEventHandler<Accelerometer^,
AccelerometerReadingChangedEventArgs^>(
[](Object^ sender, AccelerometerReadingChangedEventArgs^ e)
{
//read e->Data->AccelerationX/Y/Z
});
}
C#
C++
C#/WPF Accelerometer Demo
• Ellipse (ball) drawn on a canvas
• Accelerometer data is used to update X/Y/Z
display and location of ball
87Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
• Data is read using
accelerometer events in
conjunction with a
timer to move the ball
C#/WPF NFC DEMO
• Subscribe to incoming WindowsURI messages
• Publish a WindowsURI message to any active
device
• Write that
message to any
writable tag
88Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
USING SENSORS EFFICIENTLY
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 89
General Considerations
• The effects of applications on power use
• Both idle workloads and active workloads
• The rules of power management
– Computational efficiency
– Maximize idle
– Data efficiency
– Power-aware behavior
• Align, coalesce or batch activity whenever possible
90Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Regarding Sensors
• Do not set a small ReportInterval if your application doesn’t need it
• Avoid periodic registry or disk accesses in order to let the hard disk spin down
• Avoid status polling, statistics & background bookkeeping
• Avoid using sensors when application is not active
• Consider using accelerometer or gyroscope alone if full orientation is not needed.
91Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Sensors objects in Sensors API: At least one client connected
Hardware: Accelerometer Gyroscope Inclinometer Compass Device Orientation
Accelerometer On Off On On On
Gyro Off On On On On
Magnetometer Off Off On On On
Advanced : Context/power-aware
behavior• Handling sleep transitions seamlessly
– Saving an restoring state
– Stopping ongoing activity prior to sleeping
– Closing open resources & disconnecting communications
• Respond/adapt to system power events– Switching from AC to battery; low battery status
• Scale behavior based on power state
• Context awareness toolkits– software.intel.com/en-us/mobility
– softwarecommunity.intel.com/articles/eng/1070.htm
– softwarecommunity.intel.com/articles/eng/1026.htm
92Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Intel Software Development Products
Intel Power Tools
• Intel® Power Checker
– Reveals how much power your application is using
– software.intel.com/partner/app/software-
assessment/?cid=sw:ubpower004
• Energy-Efficient Software Checklist
– software.intel.com/en-us/articles/energy-
efficient-software-checklist/
93Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
References• Intel® Software Network
– software.intel.com
• COM Sensor API– msdn.microsoft.com/en-us/library/windows/desktop/dd318953(v=vs.85).aspx
• COM Location API– msdn.microsoft.com/en-us/library/dd464636(v=VS.85).aspx
• WinRT Sensors API– msdn.microsoft.com/en-us/library/windows/apps/br206408.aspx
• WinRT Geolocation API– msdn.microsoft.com/en-us/library/windows/apps/windows.devices.geolocation.aspx
• WinRT ProximityAPI– msdn.microsoft.com/en-us/library/windows/apps/windows.networking.proximity.aspx
• Detecting Ultrabook Sensors– software.intel.com/en-us/blogs/2012/07/26/detecting-ultrabook-sensors
• Ultrabook and Tablet Windows 8* Sensors Development Guide– software.intel.com/en-us/articles/ultrabook-and-tablet-windows-8-sensors-development-guide/
• Intel® Energy Efficient Software Guidelines– software.intel.com/partner/assets/pdf/misc/Energy_Efficient_Software_Guidelines_v3_4_10_11.pdf
94Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Summary
– Sensors are a natural way to interact with end
users
– Desktop apps can utilize them through WinRT as
well as Windows 8* Store Apps
– Utilize efficient designs and coding practices to
save battery life
95Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Q & A
96Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners.
Tools Presentation by Uli
Copyright© 2012, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners
Intel Confidential
97
Source: Microsoft
Intel® Software Development Tools
for Advanced Performance
Boost Performance. Scale Forward. Ensure Confidence.
9/4/2012 99
Who Am I…
• Uli Dumschat ([email protected])
• Computer Science Degree
• Mobile Tools Product Marketing @ Intel
• Since 1998 in SW Tools business, Intel since 2001
DL2BAT
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 100
Intel® SSG/Developer Products Division
Premium Class Tools For Intel® Architecture
http://www.intel.com/software/products
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 101
OS/Environment DevelopmentRequirements
Intel® Software Development Tools
Windows* 8 Compatibility
Let‘s talk aboutLet‘s talk aboutLet‘s talk aboutLet‘s talk aboutIntel ToolsIntel ToolsIntel ToolsIntel ToolsFor Windows* For Windows* For Windows* For Windows* Desktop AppsDesktop AppsDesktop AppsDesktop Apps
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 102
Libraries Bundled Suites Compilers Analysis/Profiling Tools
Let‘s have aLet‘s have aLet‘s have aLet‘s have acloser look! closer look! closer look! closer look! ☺☺☺☺
Intel® Software Development Tools Overview
Thriving in a Multicore World
with
Intel® Parallel Studio XE
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 104
Intel® Parallel Studio XE
What’s What’s What’s What’s Included?Included?Included?Included?
What
Why
Windows and Linux
Leading Software Development Tools forOptimized Application Performance, Scalable Parallelism, and
Confidence
Value Proposition
• Performance - Intel tools are key to utilizing processor performance
• Scale forward - Your application investment extends to tomorrow’s platforms
• Confidence - Trusted software tools you can count on for best results
How
• Leading C++ and Fortran performance optimizing compilers libraries, performance libraries, and analysis tools
• Advanced parallel programming models to develop code for Intel® Xeon® Processors today, easily extends to Intel® MIC architecture
• Trusted software correctness tools for application quality and ensured confidence
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 105
Intel® Parallel Studio XE 2011A Complete SW Tools Solution Covering All Phases Of SW Development
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 106
Phase Productivity Tool Feature Benefit
Design
Intel® Parallel Advisor for C++ Windows
Threading design assistant
• Simplifies, demystifies, and speeds parallel application design
• Available for Intel® Parallel Studio XE Windows and Intel® C++ Studio Windows (ESD)
Build & Debug
Intel®
Composer XE
C/C++ and Fortran compilers and performance libraries• Intel® Parallel Building Blocks• Intel® Integrated Performance
Primitives• Intel® Math Kernel Library
• Enabling solution to achieve the application performance and scalability benefits of multicore and forward scale to manycore
VerifyIntel®
Inspector XE
Memory & threading dynamicanalysis for code quality
Static Security Analysis for codequality (Studio products only)
• Increased productivity, code quality, and lowers cost
• Finds memory, threading , and security defects before they happen
TuneIntel® VTune™Amplifier XE
Performance Profiler for optimizing application performance and scalability
• Remove guesswork, saves time, makes it easier to find performance and scalability bottlenecks
Intel® Parallel Studio XEPowerful Tools Provide Comprehensive Coverage
Optimized Performance, Scalable Parallelism, Confidence
Intel® Parallel Studio XE
Product Details
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 108
Intel®
Parallel Advisor - OverviewThreading Assistant for Windows*
Simplifies and Speeds Threading Design
Best Results with Parallelism Design Insight and Analysis
Evaluate return on investment Performance benefit vs. the cost of transitioning to parallelism
Simplifies adding ParallelismShorter learning curve for parallelism by helping to identify and experiment with parallel opportunities
Step-by-step threading guidanceFrom surveying code, finding the best implementation, to checking correctness.
Design Phase
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 109
Intel® Parallel Advisor – Overview
Discover, Analyze, Check, Add Parallelism
Analyzes the executing serial program as developers work through the methodology
Check SuitabilityEvaluates performance impact and implication of the parallel experiments
Survey TargetFocuses effort where it will pay off and targets coarse-grain parallelism
Annotate SourcesInserts annotations to sources to describe parallel experiments
Check CorrectnessFinds and resolves conflicts before parallelism is applied. Reduces debugging problems by defining safe and solid paths to parallelism
Design Phase
Models Intel® Threading Building Blocks, Intel® Cilk™ Plus, Microsoft*PPL, Windows* Threads, OpenMP*
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 1109/4/2012
Intel® C++ Composer XE
• Intel® C++ Compiler XE 12.1• Intel® Parallel Building Blocks
- Intel® Threading Building Blocks- Intel® Cilk™ Plus
• Intel® Math Kernel Library• Intel® Integrated Performance
Primitives
Intel® Fortran Composer XE
• Intel® Fortran Compiler XE 12.1• Intel® Math Kernel Library • Intel® Integrated Performance
Primitives
Intel Composer XE - OverviewCompilers, Performance Libraries, Debugging Tools
• Leading Performance Optimizing Compilers
- Intel C++ and Fortran Compilers
- Intel® Integrated Performance Primitives, Intel® Math Kernel Library libraries
- Profile-Guided Optimization (PGO)
- Interprocedural Optimization (IPO)
- Guided-auto parallelism (GAP)
- High-Performance Parallel Optimizer (HPO)
- SIMD Pragma
- C++ Array Notations
• Standard Support
- OpenMP*
- C++0x
- Support for key parts of the latest Fortran and C++ standards, Visual Studio* 2010 Shell for Visual Fortran*
• Compatibility – Mix and Match- Binary and source compatible with
Microsoft* Visual Studio* C++ and GCC*
Windows*, Linux*, Mac OS*
32-bit & 64-bit multicore processor supportIntel® AVX support
Supported EnvironmentsMicrosoft Visual Studio* 2005, 2008, 2010 Eclipse CDT and Mac XCode*
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 111
Updated Compilers and LibrariesProduce Industry Leading Performance
• Intel v12.1 compilers improve performance compared with:
– Competitive compilers
– Previous version Intel compilers
Notes:
1 C/C++ performance measured using SPECint®_base2006 estimated RATE benchmark running on a 64 bit operating system
2 Fortran performance measured using Polyhedron* benchmark running on a 64 bit operating system. In this performance measurement, “faster” refers to percent reduction in time-to-completion.
Intel v12.1 Intel v12.1 Intel v12.1 Intel v12.1 Compiler on Compiler on Compiler on Compiler on
Windows* Windows* Windows* Windows* vs.vs.vs.vs.nearest nearest nearest nearest
competitorcompetitorcompetitorcompetitor
Intel v12.1 Intel v12.1 Intel v12.1 Intel v12.1 Compiler on Compiler on Compiler on Compiler on Linux* Linux* Linux* Linux* vs.vs.vs.vs.nearest nearest nearest nearest
competitorcompetitorcompetitorcompetitor
Intel v12.1 Intel v12.1 Intel v12.1 Intel v12.1 Compiler on Compiler on Compiler on Compiler on Windows Windows Windows Windows vs.vs.vs.vs.
v12.0v12.0v12.0v12.0
Intel v12.1 Intel v12.1 Intel v12.1 Intel v12.1 Compiler on Compiler on Compiler on Compiler on
LinuxLinuxLinuxLinux vs. vs. vs. vs. v12.0v12.0v12.0v12.0
C/C++C/C++C/C++C/C++IntegerIntegerIntegerInteger1111 47% faster47% faster47% faster47% faster 12% faster12% faster12% faster12% faster 11% faster11% faster11% faster11% faster 6% faster6% faster6% faster6% faster
C/C++C/C++C/C++C/C++Floating Floating Floating Floating PointPointPointPoint1111
21%21%21%21% fasterfasterfasterfaster 9% faster9% faster9% faster9% faster 3% faster3% faster3% faster3% faster 1% faster1% faster1% faster1% faster
FortranFortranFortranFortran2222 24%24%24%24% fasterfasterfasterfaster 17% faster17% faster17% faster17% faster 22% faster22% faster22% faster22% faster 27% faster27% faster27% faster27% faster
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
A Family of Parallel Programming ModelsDeveloper Choice
Intel® Cilk™ PlusIntel® Cilk™ PlusIntel® Cilk™ PlusIntel® Cilk™ Plus
C/C++ language extensions to simplify parallelism
Open sourced
Also an Intel product
Intel® Threading Intel® Threading Intel® Threading Intel® Threading Building BlocksBuilding BlocksBuilding BlocksBuilding Blocks
Widely used C++ template library for parallelism
Open sourced
Also an Intel product
DomainDomainDomainDomain----Specific Specific Specific Specific LibrariesLibrariesLibrariesLibraries
Intel® Integrated Performance Primitives
Intel® Math Kernel Library
Established Established Established Established StandardsStandardsStandardsStandards
Message Passing Interface (MPI)
OpenMP*
Coarray Fortran
OpenCL*
Research andResearch andResearch andResearch andDevelopmentDevelopmentDevelopmentDevelopment
Intel® Concurrent Collections
Offload Extensions
Intel® Array Building Blocks
Intel® SPMD Parallel Compiler
Choice of high-performance parallel programming models• Libraries for pre-optimized and parallelized functionality
• Intel® Cilk™ Plus and Intel® Threading Building Blocks supports composable parallelization of a wide variety of applications.
• OpenCL* addresses the needs of customers in specific segments, and provides developers an additional choice to maximize their app performance
• MPI supports distributed computation, combines with other models on nodes
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 113
Advanced Tools to Develop Code for Intel® Xeon® Processors Today, Easily Extends to Intel® MIC
Architecture
“By just utilizing standard programming on both Intel® Xeon processor and Intel® MIC architecture based platforms, the performance met multi-threading scalability expectations and we observed near-theoretical linear performance scaling with the number of threads.” – Hongsuk Yi,
Heterogeneous Computing Team
Leader, KISTI Supercomputing Center
“SGI understands the significance of inter-processor communications, power, density and usability when architecting for exascale. Intel has made the leap towards exaflop computing with the introduction of Intel® Many Integrated Core (MIC) architecture. Future Intel® MIC products will satisfy all four of these priorities, especially with their expected ten times increase in compute density coupled with their familiar X86 programming environment.” –Dr. Eng Lim Goh, SGI CTO
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 114
What’s New: Intel® Cilk™ Plus v1.1 Implemented with Commercial Support; Simplifies Going Parallel
• Enhanced performance and utilization of future Intel CPU features
• SIMD pragma loops, vector length, and elemental functions support
• Mac OS* support
cilk_for (int i=0; i<n; ++i) {Foo(a[i]);
}
Open spec at: cilkplus.org
}int fib (int n){
if (n <= 2)return n;
else {int x,y;x = fib(n-1);y = fib(n-2);return x+y;
}}
}int fib (int n){
if (n <= 2)return n;
else {int x,y;
x = _cilk_spawn fib(n-1);y = fib(n-2);_cilk_sync;return x+y;
}}Turn serial code Into parallel code
Parallel loops made easy
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 115
Intel® Inspector XE - Dynamic AnalysisDetects memory and threading errors
• Memory errors• Invalid Memory Accesses• Memory Leaks• Uninitialized Memory Accesses• Improper usage of Memory API(s)• Resource Leaks (Windows only)
•Threading Errors• Data Races• Deadlock/Lock Hierarchy Violation• Cross Stack Memory Accesses
� No special compiles(dynamic binary instrumentation)
� Analyze DLLs (source optional)
� Runs threaded� 32 and 64-bit OSs
(e.g., Windows 7, RHEL 6)
� Easy user interface
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 116
Intel® Parallel Studio XE - Static AnalysisDetects over 250 different kinds of errors & security risks
Coding Errors (partial list)
• Memory and resource leaks• Incorrect OpenMP* and Cilk directives• Pointer and array errors
Security Errors (partial list)
• Buffer overflows and underflows• Uninitialized variables and objects• Incorrect pointer usage• Misuse of string, memory formatting
library routines
� No compiler change required−Existing compiler for code generation−Intel compiler front end for static
analysis
� No workload required� Fast ~1.5X time of an optimizing
compile†
� Easy user interface
† Estimate. Your results may vary.
Static Analysis is included in all Studio XE products.It is not sold separately.
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 117
Where is my application…
Spending Time? Wasting Time? Waiting Too Long?
• Focus tuning on functions taking time
• See call stacks• See time on source
• See cache misses on your source
• See functions sorted by # of cache misses
• See locks by wait time
• Red/Green for CPU utilization during wait
Intel® VTune™ Amplifier XE Performance Profiler
• Windows & Linux• Low overhead• No special recompiles
Advanced Profiling For Scalable Multicore Performance
Claire CatesPrincipal Developer, SAS Institute Inc.
We improved the performance of the latest run 3 fold. We wouldn't have found the problem without something like Intel® VTune™ Amplifier XE.
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 118
Intel® VTune™ Amplifier XE Tune Applications for Scalable Multicore Performance
• Fast, Accurate Performance Profiles– Hotspot (Statistical call tree)– Hardware-Event Based Sampling
• Thread Profiling– Visualize thread interactions on timeline– Balance workloads
• Easy set-up– Pre-defined performance profiles– Use a normal production build
• Compatible– Microsoft, GCC, Intel compilers– C/C++, Fortran, Assembly, .NET– Latest Intel® processors
and compatible processors1
• Find Answers Fast– Filter extraneous data– View results on the source / assembly– Event multiplexing
• Windows or Linux– Visual Studio Integration (Windows)– Standalone user i/f and command line– 32 and 64-bit
1 IA32 and Intel® 64 architectures. Many features work with compatible processors. Event based sampling requires a genuine Intel® Processor.
Intel® Parallel Studio XE
Summary
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 120
Intel® Parallel Studio XE Performance, Quality, and Scalable Parallelism Solutions
software.intel.com
• Performance - Intel tools are key to utilizing processor performance
• Scale forward - Your application investment extends to tomorrow’s platforms
• Confidence - Trusted software tools you can count on
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 121
Intel®
Parallel Studio XE
Intel®
C++ Studio XE
Intel®
FortranStudio XE
Analy
sis
Intel® Inspector XEMemory and Thread Checker
���� ���� ����
Intel® Static Security Analysis ���� ���� ����
Intel® VTune™ Amplifier XEPerformance Profiler
���� ���� ����
Com
pilers Intel® C++ Compiler ���� ���� x
Intel® Fortran Compiler ���� x ����
Lib
rari
es
Intel® Integrated Performance Primitives ���� ���� x
Intel®
Threading Building Blocks���� ���� x
Intel® Math Kernel Library ���� ���� ����
Tool
Intel® Parallel Advisor C++ Windows available (separate download)
���� ����x
Windows MSRP $1,899 $1,499 $1,599
Windows SSR $759 $599 $639
Linux MSRP $2,249 $1,499 $1,799
Linux SSR $899 $599 $719
Intel® Parallel Studio XE Family Suites
Intel Confidential - Internal Use Only
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Optimization Notice
9/4/2012
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 SSSE3 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 #20110804
Software & Services Group
Developer Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
Legal Disclaimer
9/4/2012
INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO THIS INFORMATION INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the performance of Intel products, reference www.intel.com/software/products.
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Atom, Centrino Atom Inside, Centrino Inside, Centrino logo, Cilk, Core Inside, FlashFile, i960, InstantIP, Intel, the Intel logo, Intel386, Intel486, IntelDX2, IntelDX4, IntelSX2, Intel Atom, Intel Atom Inside, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, Viiv Inside, vPro Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.*Other names and brands may be claimed as the property of others.
Copyright © 2011. Intel Corporation.
http://intel.com/software/products
Ultrabook™ Developer Resources
Intel® Corporation
126Copyright(C) 2012 Intel Corporation. All rights reserved. *Other
brands and names are properties of their respective owners.
Agenda
Intel AppUp® Center
Intel® Ultrabook™ Community
Summary
For Internal Use Only * Other names and brands may be claimed as the property of others.
Intel AppUp®Intel AppUp®
127
Intel AppUp® CenterThousands of Apps, Aggregated and Curated for Easy Discoverability
• Digital storefront for existing and new PC
software, apps, content, and
entertainment
• Simplified submission process to support
existing software applications and
content
• Purchases supported in >45 countries, via
25 unique partners, and in 5 languages*
• Security testing performed prior to
publication
• Distribution mechanism for all digital
content
Intel Confidential 128
Intel AppUp®is a trusted and aggregated source to get digital content
for Ultrabooks™, notebooks, and PCs – hundreds of millions of platforms!
www.AppUp.com
*English, French, German, Spanish, Italian (coming Q2’12)
Other names and brands may be claimed as the property of others.
Intel Confidential 129
Why Distribute through Intel AppUp®Expanded Reach with Intel AppUp®
• Every 56 seconds a new user joins AppUp®
• Every 16 seconds an application is downloaded via AppUp®
• Potential to reach >2.6B installed PCs worldwide1
• Participate in a ~$10B PC App Store Market2
• Single submission, single validation, single security process that
distributes across many digital storefronts, worldwide
• Opportunities to differentiate products by utilizing Intel hardware
features
1Source: IDC Windows Client OS Installed Base, WinXP and Win72 Source: IDC, Bain, displaysearch, Intel analysis
Easy to submit existing content + a potential reach of 2.6B installed PCs
= High ROI
Connecting Creators with Millions of Consumers
130
Drive consumer adoption by solving consumer problems
� AppUp® makes DISCOVERABILITY easy by AGGREGATING and CURATING
content in a single repository, accessible by many partners worldwide and
hundreds of millions of PCs
Reduce the risk of malware and threats delivered via downloads
� AppUp® SCANS every submission prior to publishing to help ensure a safe
and trusted environment for consumers
Deliver content focused around categories users care about � Games, Entertainment, Creativity, Education, Productivity, Lifestyle, etc
Available today and easily accessible� AppUp® supports Windows7 and Windows XP today – with an opportunity
to reach 2.6B PCs
� AppUp® will be available with Win8
Intel AppUp® provides consumers with a breadth
of popular and relevant content, AGGREGATED and easily DISCOVERABLE,
VALIDATED and SCANNED to help prevent malware,
making PCs more fun and useful.
Opportunity To Grow With Us: 2.6B PCsMarketing initiatives targeted towards the installed base
131*source: IDC PC Shipments by Operating System
Part of the Largest Intel Marketing Campaign
since Intel® Centrino®!
Direct to
Consumer
Social
Networking
Partner
MarketingProduct
Placement
Global Distribution of Apps
132*All logos on this slide are the property of 3rd parties
Intel® Ultrabook™ Community
• http://software.intel.com/en-us/ultrabook/Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners.
Ultrabook™ Community Resources
• Forums: Ask and Find Answers
• Black Belt Program: Earn Points
• Technical Video Tutorials
• Development Opportunities
134
Earn recognition and rewards
Software.intel.com/en-us/ultrabook
Publishing Apps in Intel AppUp®
• Join AppUp® Developer Center
• Start App Submission
• Validation
• App Published
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 135
• 100% Free enrollment
• Access to SDK, Community,
Developer Tools, content, etc
• Submit apps to sell on the Intel
AppUp® Center
• appdeveloper.intel.com
AppUp® Developer Center
136
• Access all apps and
validation process
• Finance
• Messages
• Crash Reporting
• Organization Members
• Black belt program
Your Dashboard
Validation Process
App Publication
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 139
www.appup.com
Get Engaged!
• Enroll in AppUp® Developer:
appdeveloper.intel.com/join
• Talk with us on Twitter:
– @Develop4AppUpEU - AppUp®
– Facebook.com/intelappupdeveloper
– Monika Lischke: @MonikaLischke
• Ultrabook Resources:
– Software.intel.com/en-us/ultrabook
140
Call to Action
• DOWNLOAD the Intel AppUp®
center and test drive an app
today at appup.com
• ENROLL in Intel AppUp®
developer
• ENGAGE in the Ultrabook™
Community
• BUILD new apps & experiences
that integrate Ultrabook touch,
sensors, GPS, etc
• SUBMIT apps to be sold globally
through Intel AppUp® center &
affiliate stores
SDP Specs
• Hard Drive: 180GB SSD - Intel® 520 series
• Processor: Intel® Core™ i7-3667U processor (4M Cache, 2.00 GHZ)
• RAM: 4GB DDR3L 1333MHz
• Screen Resolution: 1600 X 900
• Inputs and Sensors:
– 5-finger Multi-Touch display
– Gyroscope: Sensor Hub
– Accelerometer: Sensor Hub
– GPS: Fastrax GPS IT430
– NFC: SEMCO* module and Cirque* track pad
– Trackpad
– Keyboard
– Front Facing WebCam
• Ports:
– 2 USB
– HDMI: Mini HDMI
– 1 SD Slot
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 142
How to get to the cbase
Copyright(C) 2012 Intel Corporation. All rights reserved.
*Other brands and names are properties of their respective owners. 143
1. Subway Station Kaiserdamm
2. U2 into direction of Pankow
3. Change at Zoologischer Garten
4. take the S-Bahn train in direction of Strausberg (S5) or Wartenberg (S75)
5. Get off Jannowitzbrücke, cross the river Spree and then left into Runge Strasse
Wrap Up and Closing
144Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
• SDP (Software Development Platform) Distribution
• Join Intel® Premier Support - https://premier.intel.com/
– Locate Serial Number on back of SDP
– Submit Issues
– Download SoftwareUpdates
– Device Announcements
• Hacking Session at the c-base
• Book a TME: contact us for a technical follow up session
• Blog, tweet, facebook, G+ and instagram
develop, develop, develop, develop, develop, develop!
Intel Ultrabook™ AppLab
THANK YOU!