Intel Ultrabook AppLab - ALL Slides
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Intel Ultrabook AppLab - ALL Slides

  • 1,159 views
Uploaded on

Intel Ultrabook AppLab - ALL Slides - presented by Paul, Sulamita, Xavier and Uli

Intel Ultrabook AppLab - ALL Slides - presented by Paul, Sulamita, Xavier and Uli

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,159
On Slideshare
1,159
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
29
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Intel Ultrabook™ AppLab Intel® Corporation Berlin, September 3rd
  • 2. Overview of the Entire Day1. Welcome & Opening Monika2. Introduction into Ultrabook™ Development Paul3. New Windows UI Design Oliver4. Technical Presentation: Touch Sulamita5. Lunch & Networking: Check out also the Demos!6. Technical Presentation: Sensors Xavier7. Break & Networking: Check out also the Demos!8. Intel Tools Uli9. Ultrabook Developer Resources Paul10. Wrap Up and Closing Monika11. SDP (Software Development Platform) Distribution12. Hacking Session at the c-base Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 2
  • 3. Who am I? Wannabe Geek Late Early Adopter @MonikaLischke #IntelAppLab Monika LischkeTeam Lead Community Management EMEA 3
  • 4. Introduction to Developing Ultrabook™ Applications Intel® Corporation
  • 5. 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. Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 5
  • 6. Who am I? Paul FarquharEMEA AppUp Technical Lead 6
  • 7. What do I like to do? @TheGlenPaul 7
  • 8. What do we eat – Haggis! 8
  • 9. You need the proper tools! 9
  • 10. WHAT DOES ULTRABOOK / WINDOWS* TM8 MEAN FOR CURRENT DEVELOPERS? Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 10
  • 11. Worried about the Windows* 8 transition? New Windows*8Do I have to re-write UI?all of my Win32 apps Do my applications from scratch? need to support touch? What’s the difference WinRT? between an Ultrabook and a notebook? How do I use an How does Ultrabook’s HTML5* fit Desktop? sensors? into this? Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 11
  • 12. The world of Windows* 8• New Windows*8 apps New Windows*8 Style Desktop Style have 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 Source: Microsoft Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 12
  • 13. How Windows*8 and the Desktop Work Together Desktop Application Launched from New Windows*8 Start Screen Click tile for iTunes* iTunes Desktop app launches Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 13 13
  • 14. Windows* 8 Compatibility Expectations x86 Only New Windows*8 Apps Desktop applicaitons x86 + ARM* Source: MicrosoftLegacy 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 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 14
  • 15. 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
  • 16. Ultrabook Built to Set Applications Apart TM UX Desktop New Windows*8 Touch/Gestures Context Aware Sensors OS Near Field Communication Geolocation Graphics Battery Life Rapid Start Ultrabook Hardware Security Thunderbolt Turbo Boost Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 16
  • 17. Ivy Bridge Processor Graphics• 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 17
  • 18. Intel® Turbo Boost Technology 2.0• Performance when you need it• Dynamic overclocking• Don’t need to drain power constantly for all processes• Helps reduce temperature and extends battery power. Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 18
  • 19. OS Differentiators• Touch- and gesture-based UI• Context aware sensors• Near field communication• Geolocation Context Aware Touch/Gestures SensorsOS Near Field Geolocation Communication Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 19
  • 20. Application Differentiators New Windows*8 Desktop Style• Touch and Sensors can be enabled for all Style three styles of applications • New Windows*8 apps have a single, full-screen New window with multiple views Windows*8 • Clean typography and animations • Fast, fluid touch first experience • Retains the flexibility of the traditional Windows* Desktop Desktop Style • Full access to familiar x86 applications and tools • Provides finer-grained control • HTML5* apps can run as New Windows*8 apps or as Desktop in Internet Explorer 9 & 10 HTML5 Style Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 20
  • 21. Digital Storefronts for Windows* 8Intel AppUp® for Desktop Windows Store* for NewApplications Windows*8 apps Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 21
  • 22. 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
  • 23. Application Environment New Windows*8 apps Desktop Applications XAMLView XAML HTML CSS HTML C# C/C++ C#, VB JavaScript C JavaScriptModel (Chakra) C++ VB WinRT APIs Graphics DevicesSystems Network & InternetServices & Win32 .NET & Data Media Explorer Printing App ModelKernel Windows Kernel Services Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 23
  • 24. 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 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 24
  • 25. 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 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 25
  • 26. WinRT API Areas• Core • Networking• Controls • Printing• Data and content • Presentation• Devices • Remote Desktop• Files and folders • Security• Globalization • Social• Graphics • UI Automation• Helpers • User Interaction• MediaUnderlined items have classes available to desktop applications Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 26
  • 27. Microsoft Presentation by Oliver Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 27
  • 28. APPLICATION DEVELOPMENT WITH TOUCH AND SENSORS ON ULTRABOOKTM / WINDOWS 8 Sulamita Garcia – sulamita.garcia@intel.com Technical Marketing Engineer Twitter @sulagarcia Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 28
  • 29. /me
  • 30. MAHJONG DEMO HERE Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 30
  • 31. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 31
  • 32. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 32
  • 33. 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: 1366X768Source: MSDNhttp://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
  • 34. 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 listsSource: MSDNhttp://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
  • 35. 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
  • 36. WINDOWS TOUCH API Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 36
  • 37. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 37
  • 38. WinNative: Receive gesture message LRESULT CALLBACK WndProc(…) { … switch (message) {• Check for case WM_GESTURE: // Call code to WM_GESTURE message // interpret the in WndProc // gesture return DecodeGesture(…); … } (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 38
  • 39. WinNative: Process gesture LRESULT DecodeGesture(…) {• Retrieve the additional … BOOL bResult = GetGestureInfo(…); gesture information from BOOL bHandled = FALSE; the GESTUREINFO if (bResult) structure { // now interpret the gesture switch (gi.dwID){ case GID_ZOOM : // Code for zooming goes here bHandled = TRUE;• Handle each of the break; case GID_PAN : possible gestures … case GID_ROTATE : … case GID_TWOFINGERTAP: … case GID_PRESSANDTAP: … default: // A gesture was not recognized break; } … (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 39
  • 40. Recognized gestures– Tap/Double tap– Panning with inertia– Selection/Drag– Press and tap– Press and hold– Zoom– Rotate– Two-finger tap– Flicks Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 40
  • 41. WINDOWS TOUCH API / XAML /.NET Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 41
  • 42. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 42
  • 43. XAML: TouchControl.xaml <UserControl x:Class="Win8Demo.TouchControl"• Three images placed in …> a Grid inside of a <Grid x:Name="cont" ClipToBounds="True" > <!-- Set the IsManipulationEnabled to TouchControl true --> <Image x:Name="photo_1" Source="/Assets/ultrabook1.png“ IsManipulationEnabled="True" Width="500" />• Each image has <Image x:Name="photo_2“ Source="/Assets/ultrabook2.png“ IsManipulationEnabled IsManipulationEnabled="True“ Width="500" Margin="125,-79,25,79"/> <Image x:Name="photo_3“ set to true Source="/Assets/ultrabook3.png“ IsManipulationEnabled="True“ Width="500" Margin="0,-59,150,59" /> </Grid> </UserControl> Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 43
  • 44. Touch Event State Diagram Events begin with UserManipulation Touching the Image Starting Manipulation Manipulation DeltaManipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 44
  • 45. XAML: TouchControl.xaml.cs public TouchControl() { … //Register for manipulation events• Add event handlers to photo_1.ManipulationStarting += m_rect_ManipulationStarting; photo_1.ManipulationDelta += each image for: m_rect_ManipulationDelta; photo_1.ManipulationInertiaStarting += •ManipulationStarting m_rect_ManipulationInertiaStarting; •ManipulationDelta photo_2.ManipulationStarting += … •ManipulationInertiaStarting photo_3.ManipulationStarting += … } Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 45
  • 46. Touch Event State Diagram Events begin with UserManipulation Touching the Image Starting Manipulation Manipulation DeltaManipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 46
  • 47. XAML: Manipulation starting event handler• ManipulationStarting event void handler is called at start of m_rect_ManipulationStarting touch event (…) { …• By setting Manipulation- e.ManipulationContainer = Container to the touched this; image all subsequent manipulation events will be } relative to that element Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 47
  • 48. Touch Event State Diagram Events begin with UserManipulation Touching the Image Starting Manipulation Manipulation DeltaManipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 48
  • 49. XAML: Manipulation delta event handler• ManipulationDelta void m_rect_ManipulationDelta(…) { event happens as user … //Get the manipulation’s delta moves fingers var delta = e.DeltaManipulation; //Compute the transformed center point Point rectCenter = new Point(rect.ActualWidth * 0.5, rect.ActualHeight * 0.5);• Compute new image rectCenter = matrix.Transform(rectCenter); center point, scale, and //Adjust the element’s scale, rotation and translation rotation using event matrix.ScaleAt(delta.Scale.X, delta.Scale.Y, rectCenter.X, rectCenter.Y); data matrix.RotateAt(delta.Rotation, rectCenter.X, rectCenter.Y); matrix.Translate(delta.Translation.X, delta.Translation.Y);• Set Handled to true so //Update the element’s render transformation other handlers don’t rect.RenderTransform = new MatrixTransform(matrix); process same event e.Handled = true; Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 49
  • 50. Touch Event State Diagram Events begin with UserManipulation Touching the Image Starting Manipulation Manipulation DeltaManipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 50
  • 51. XAML: Inertia starting event handler• Inertia actions are handled by the void m_rect_ManipulationInertiaStarting(…) { ManipulationInertiaStarting event //Set the manipulations inertia values handler e.TranslationBehavior = new InertiaTranslationBehavior()• Define the behavior of the inertia { by specifying InitialVelocity = e.InitialVelocities.LinearVelocity, • Linear velocity DesiredDeceleration =… • Deceleration }; • Expansion velocity (used in e.ExpansionBehavior = new InertiaExpansionBehavior() pinch or spread) { • Angular velocity (used in InitialVelocity = e.InitialVelocities.ExpansionVelocity, rotation) DesiredDeceleration = … }; e.RotationBehavior = new InertiaRotationBehavior() { InitialVelocity =• Again, set Handled to true so other e.InitialVelocities.AngularVelocity, handlers don’t process same event }; DesiredDeceleration = … e.Handled = true;… Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 51
  • 52. Touch Event State Diagram Events begin with UserManipulation Touching the Image Starting Manipulation Manipulation DeltaManipulation Inertia Starting w/ Inertia Delta User finger is lifted from the screen User finger is touching the screen Manipulation Completed Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 52
  • 53. XAML: Handle inertia manipulation if (e.IsInertial)• Check if inertia is moving the { image across the grid //Get the containing element’s size Rect containingRect = … (e.ManipulationContainer).RenderSize); //Get the transformed element’s new //bounds Rect shapeBounds = rect.RenderTransform.TransformBounds (…); //If element falls out of bounds• If so, make sure image does not if (!containingRect.Contains(shapeBounds)) travel outside of the grid by { calling the Complete method to //Report boundary feedback e.ReportBoundaryFeedback(…); end the inertia //Stop any after inertia e.Complete(); } } … Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 53
  • 54. 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
  • 55. 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%2 9.aspx• WinRT API Reference – msdn.microsoft.com/en- us/library/windows/apps/br211377.aspx Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 55
  • 56. Q&ASulamita Garcia – sulamita.garcia@intel.com Technical Marketing Engineer Twitter @sulagarcia Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 56
  • 57. LUNCH!!!! Source: Microsoft Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners Intel Confidential 57
  • 58. Application Development using Sensors Intel® Corporation
  • 59. 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 Copyright© 2012, Intel Corporation. All rights reserved. *Other brands* Other Names and Brands maybe claimed as the property of others. All dates, plans of their respective owners and names are the property and features are preliminary and subject to change without notice. 59
  • 60. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 60
  • 61. Who am I ?Xavier Hallade (@ph0b)Technical Marketing Engineer at Intel Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 61
  • 62. SensorsOVERVIEW OF AVAILABLE SENSORS Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 62
  • 63. Available Sensors Compass Accelerometer Gyroscope GPS Ambient Light NFC+ with Sensor Fusion: Inclinometer, Orientation, SimpleOrientation• 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.
  • 64. 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
  • 65. 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°
  • 66. 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
  • 67. LocationReturns 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 HeadingDepending on user’s choice, its use can be denied.A Windows 8* store app has to declare the“location” capability in its manifest.
  • 68. 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 !
  • 69. 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
  • 70. NFC messagesProtocol Pub. Sub. Message contentsWindows X X binary data.WindowsUri X X UTF-16LE encoded string that is a URI. use PublishUriMessageWindowsMime 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 X WindowsMime message to be written to a static tag.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.
  • 71. NFC messages Windows messages are fully compatible with NDEF messages, but you can also directly manipulate them :Protocol Pub. Sub. Message contentsNDEF 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).
  • 72. SensorsLET’S DIVE INTO SOME CODE ! Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 72
  • 73. Sensors and Location Platformusing COM interfaceFROM C++ Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 73
  • 74. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 74
  • 75. COM: Connect to sensor manager // Create the sensor manager• Access to sensors is through the sensor manager ISensorManager pSensorManager; hr = CoCreateInstance(CLSID_SensorManager,• Group policy settings may deny NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pSensorManager)); access to the system sensors if(hr == HRESULT_FROM_WIN32 (ERROR_ACCESS_DISABLED_BY_POLICY)) { // Unable to retrieve sensor manager due // to group policy settings. // Alert the user. } (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 75
  • 76. COM: Retrieve a sensor object // Get the sensor collection• Request sensors by category, type hr = pSensorManager->GetSensorsByCategory( SENSOR_CATEGORY_ALL, or ID &pSensorColl); if(SUCCEEDED(hr)) { ULONG ulCount = 0; // Verify that the collection contains at // least one sensor hr = pSensorColl->GetCount(&ulCount); if(SUCCEEDED(hr)) { if(ulCount < 1) {• Request permission to use the wprintf_s(L"nNo sensors of the requested category.n"); hr = E_UNEXPECTED; sensor(s) } else { • Windows 8 will open a dialog // Request permissions for all sensors // in the collection box to ask the user hr = pSensorManager-> RequestPermissions(0, pSensorColl, • Granting permission triggers } FALSE); … the OnStateChanged event (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 76
  • 77. COM: Sensor event callback class CMyEvents : public ISensorEvents• Receive event notifications by { implementing required COM public: interfaces STDMETHODIMP QueryInterface(…) {…} STDMETHODIMP_(ULONG) AddRef() {…}• Sensor events require STDMETHODIMP_(ULONG) Release() {…} ISensorEvents // ISensorEvents methods. // STDMETHODIMP OnEvent(…) {…}• Sensor Manager events require STDMETHODIMP OnDataUpdated(…) {…} STDMETHODIMP OnLeave(…) {…} ISensorManagerEvents STDMETHODIMP OnStateChanged(…) {…} … (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 77
  • 78. COM: Start receiving events // Create an instance of the event• To start receiving events provide // class the sensor with a pointer to your pEventClass = new CMyEvents(); callback if(SUCCEEDED(hr)) {• To stop receiving events call // Retrieve the pointer to the // callback interface SetEventSink with a parameter of hr = pEventClass->QueryInterface( NULL IID_PPV_ARGS(&pMyEvents)); } if(SUCCEEDED(hr)) { // Start receiving events hr = pSensor-> SetEventSink(pMyEvents); } (Source: Microsoft) Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 78
  • 79. Ambient Light SensorDEMO Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 79
  • 80. Using WinRT Sensors andLocation APIFROM C# AND C++/CX Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 80
  • 81. 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
  • 82. Using the WinRT APIWinRT Sensors and Location APIs are available toWindows 8* Desktop applicationsYou need to use WinRT Windows MetaData files :• Platform.winmd: C:Program Files (x86)Microsoft SDKsWindowsv8.0ExtensionSDKsMicrosoft.VCLi bs11.0ReferencesCommonConfigurationneutral• Windows.winmd: C:Program Files (x86)Windows Kits8.0ReferencesCommonConfigurationNeutral How ? Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 83. WinRT From Desktop (C#)Unload your C# ProjectManually edit the .csproj file to add :<PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup>Reload the projectAdd Windows.winmd and Platform.winmd as referencesfrom their respective locations Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 84. 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
  • 85. WinRT Sensor APINo need for a sensor manager:1 – Retrieve the default sensor/device using GetDefault()2 – Set the ReportInterval3 – Add a delegate to ReadingChanged event Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners
  • 86. WinRT Sensor API_accelero = Accelerometer.GetDefault();if (_accelero != null){ _accelero.ReportInterval = 50 <= _accelero.MinimumReportInterval ?_accelerometer.MinimumReportInterval : 50; //Register for reading changed events _accelero.ReadingChanged += (Accelerometer s, AccelerometerReadingChangedEventArgsargs) => { //use e.Data.AccelerationX/Y/Z };} C#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 });} Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners C++
  • 87. C#/WPF Accelerometer Demo• Ellipse (ball) drawn on a canvas• Accelerometer data is used to update X/Y/Z display and location of ball• Data is read using accelerometer events in conjunction with a timer to move the ball Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 87
  • 88. C#/WPF NFC DEMO• Subscribe to incoming WindowsURI messages• Publish a WindowsURI message to any active device• Write that message to any writable tag Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 88
  • 89. USING SENSORS EFFICIENTLY Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 89
  • 90. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 90
  • 91. 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. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 91
  • 92. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 92
  • 93. 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/ Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 93
  • 94. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 94
  • 95. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 95
  • 96. Q&ACopyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 96
  • 97. Tools Presentation by Uli Source: Microsoft Copyright© 2012, Intel Corporation. All rights reserved. Intel Confidential *Other brands and names are the property of their respective owners 97
  • 98. Intel® Software Development Tools for Advanced Performance Boost Performance. Scale Forward. Ensure Confidence.
  • 99. Who Am I…• Uli Dumschat (ulrich.dumschat@intel.com)• Computer Science Degree• Mobile Tools Product Marketing @ Intel• Since 1998 in SW Tools business, Intel since 2001 DL2BAT 9/4/2012 99
  • 100. Intel® SSG/Developer Products DivisionPremium 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 100
  • 101. Windows* 8 CompatibilityOS/Environment Development Intel® Software Requirements Development Tools Let‘s talk about Intel Tools For Windows* Desktop 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 101
  • 102. Intel® Software Development Tools OverviewLibraries Bundled Suites Compilers Analysis/ Profiling Tools Let‘s have a closer look! ☺ 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
  • 103. Thriving in a Multicore World withIntel® Parallel Studio XE
  • 104. Intel® Parallel Studio XEWindows and Linux Value Proposition Leading Software Development Tools for What Optimized Application Performance, Scalable Parallelism, and Confidence What’sIncluded? • Performance - Intel tools are key to utilizing processor performance Why • Scale forward - Your application investment extends to tomorrow’s platforms • Confidence - Trusted software tools you can count on for best results • Leading C++ and Fortran performance optimizing compilers libraries, performance libraries, and analysis tools • Advanced parallel programming models to develop code for Intel® Xeon® How 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 104
  • 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 105
  • 106. Intel® Parallel Studio XEPowerful Tools Provide Comprehensive CoveragePhase Productivity Tool Feature Benefit Intel® Parallel • Simplifies, demystifies, and speeds parallel application design AdvisorDesign Threading design assistant • Available for Intel® Parallel Studio XE for C++ Windows and Intel® C++ Studio Windows Windows (ESD) C/C++ and Fortran compilers and performance libraries • Enabling solution to achieve theBuild & Intel® • Intel® Parallel Building Blocks application performance andDebug Composer XE • Intel® Integrated Performance scalability benefits of multicore and Primitives forward scale to manycore • Intel® Math Kernel Library Memory & threading dynamic • Increased productivity, code quality, Intel® analysis for code quality and lowers costVerify • Finds memory, threading , and security Inspector XE Static Security Analysis for code quality (Studio products only) defects before they happen Performance Profiler for • Remove guesswork, saves time, makes Intel® VTune™ Tune optimizing application it easier to find performance and Amplifier XE performance and scalability scalability bottlenecks Optimized Performance, Scalable Parallelism, 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 106
  • 107. Intel® Parallel Studio XE Product Details
  • 108. ® Intel Parallel Advisor - Overview Threading Assistant for Windows*Design Phase Simplifies and Speeds Threading Design Best Results with Parallelism Design Insight and Analysis Simplifies adding Parallelism Shorter learning curve for parallelism by helping to identify and experiment with parallel opportunities Step-by-step threading guidance From surveying code, finding the best implementation, to checking correctness. Evaluate return on investment Performance benefit vs. the cost of transitioning to parallelism 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
  • 109. Intel® Parallel Advisor – OverviewDesign Phase Discover, Analyze, Check, Add Parallelism Analyzes the executing serial program as developers work through the methodology Survey Target Focuses effort where it will pay off and targets coarse-grain parallelism Annotate Sources Inserts annotations to sources to describe parallel experiments Check Suitability Evaluates performance impact and implication of the parallel experiments Check Correctness Finds and resolves conflicts before parallelism is applied. Reduces debugging problems by defining safe and solid paths to parallelism 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. 9/4/2012 109
  • 110. Intel Composer XE - Overview Compilers, Performance Libraries, Debugging Tools • Leading Performance Optimizing Compilers Intel® C++ - Intel C++ and Fortran Compilers Composer XE - Intel® Integrated Performance Primitives, Intel® • Intel® C++ Compiler XE 12.1 • Intel® Parallel Building Blocks Math Kernel Library libraries - Intel® Threading Building Blocks - Profile-Guided Optimization (PGO) - Intel® Cilk™ Plus • Intel® Math Kernel Library - Interprocedural Optimization (IPO) • Intel® Integrated Performance - Guided-auto parallelism (GAP) Primitives - High-Performance Parallel Optimizer (HPO) - SIMD Pragma Intel® Fortran - C++ Array Notations Composer XE • Standard Support • Intel® Fortran Compiler XE 12.1 - OpenMP* • Intel® Math Kernel Library - C++0x • Intel® Integrated Performance Primitives - Support for key parts of the latest Fortran and C++ standards, Visual Studio* 2010 Shell for Visual Fortran* • Compatibility – Mix and Match Windows*, Linux*, Mac OS* - Binary and source compatible with Microsoft* Visual Studio* C++ and GCC*32-bit & 64-bit multicore processor support Supported Environments Intel® AVX support Microsoft 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 110
  • 111. Updated Compilers and LibrariesProduce Industry Leading Performance • Intel v12.1 compilers improve performance compared with: – Competitive compilers – Previous version Intel compilers Intel v12.1 Intel v12.1 Intel v12.1 Intel v12.1 Compiler on Compiler on Compiler on Compiler on Windows* vs. Linux* vs. Windows vs. Linux vs. nearest nearest v12.0 v12.0 competitor competitor C/C++ 47% faster 12% faster 11% faster 6% faster Integer1 C/C++ Floating 21% faster 9% faster 3% faster 1% faster Point1 Fortran2 24% faster 17% faster 22% faster 27% fasterNotes:1C/C++ performance measured using SPECint®_base2006 estimatedRATE benchmark running on a 64 bit operating system2 Fortran performance measured using Polyhedron* benchmark runningon a 64 bit operating system. In this performance measurement,“faster” refers to percent reduction in time-to-completion. 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
  • 112. A Family of Parallel Programming Models Developer Choice Intel® Cilk™ Plus Intel® Threading Domain- Domain-Specific Established Research and Building Blocks Libraries Standards Development C/C++ language Widely used C++ Intel® Integrated Message Passing Intel® Concurrent extensions to simplify template library for Performance Interface (MPI) Collections parallelism parallelism Primitives OpenMP* Offload Extensions Intel® Math Kernel Library Intel® Array Building Coarray Fortran Blocks Open sourced Open sourced Intel® SPMD Parallel OpenCL* Also an Intel product Also an Intel product CompilerChoice 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.
  • 113. Advanced Tools to Develop Code for Intel® Xeon® Processors Today, Easily Extends to Intel® MIC Architecture “SGI understands the significance of inter- “By just utilizing standard programming processor communications, power, density and on both Intel® Xeon processor and Intel® usability when architecting for exascale. Intel MIC architecture based platforms, the has made the leap towards exaflop computing performance met multi-threading with the introduction of Intel® Many Integrated scalability expectations and we Core (MIC) architecture. Future Intel® MIC observed near-theoretical linear products will satisfy all four of these priorities, performance scaling with the number especially with their expected ten times of threads.” – Hongsuk Yi, increase in compute density coupled with their Heterogeneous Computing Team familiar X86 programming environment.” – Leader, KISTI Supercomputing Center Dr. Eng Lim Goh, SGI CTOSoftware & Services GroupDeveloper Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012 113
  • 114. What’s New: Intel® Cilk™ Plus v1.1Implemented with Commercial Support; Simplifies GoingParallel• Enhanced performance and utilization of future Intel CPU cilk_for (int i=0; i<n; ++i) { Foo(a[i]); features }• SIMD pragma loops, vector length, Parallel loops made easy and elemental functions support• Mac OS* support }int fib (int n) }int fib (int n) { { if (n <= 2) if (n <= 2) return n; return n; else { else { int x,y; int x,y; x = fib(n-1); x = _cilk_spawn fib(n-1); y = fib(n-2); y = fib(n-2); return x+y; _cilk_sync; } return x+y; } } Turn serial code } Into parallel code Open spec at: cilkplus.org 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
  • 115. Intel® Inspector XE - Dynamic Analysis Detects 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 115
  • 116. Intel® Parallel Studio XE - Static Analysis Detects over 250 different kinds of errors & security risksCoding Errors (partial list) • Memory and resource leaks • Incorrect OpenMP* and Cilk directives • Pointer and array errorsSecurity 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 Static Analysis is included in all Studio XE products. It is not sold separately.† Estimate. Your results may vary. 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
  • 117. Intel® VTune™ Amplifier XE Performance Profiler Where is my application… Spending Time? Wasting Time? Waiting Too Long?• Focus tuning on • See cache misses on • See locks by wait time functions taking time your source • Red/Green for CPU• See call stacks • See functions sorted by utilization during wait• See time on source # of cache misses• Windows & Linux We improved the performance of the latest run 3 fold. We wouldnt have• Low overhead found the problem without something• No special recompiles like Intel® VTune™ Amplifier XE. Claire Cates Principal Developer, SAS Institute Inc. Advanced Profiling For Scalable Multicore Performance 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
  • 118. Intel® VTune™ Amplifier XETune 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 1 IA32 and Intel® 64 architectures. – 32 and 64-bit Many features work with compatible processors. Event based sampling requires a genuine Intel® Processor. 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
  • 119. Intel® Parallel Studio XE Summary
  • 120. Intel® Parallel Studio XEPerformance, Quality, and Scalable Parallelism Solutions • 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.intel.com 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
  • 121. Intel® Parallel Studio XE Intel® Parallel Intel® C++ Intel® Fortran Family Suites Studio XE Studio XE Studio XE Intel® Inspector XE Memory and Thread Checker Analysis Intel® Static Security Analysis Intel® VTune™ Amplifier XE Performance Profiler Compilers Intel® C++ Compiler x Intel® Fortran Compiler x Intel® Integrated Performance Primitives x Libraries Intel® x Threading Building Blocks Intel® Math Kernel Library Tool Intel® Parallel Advisor C++ Windows available x (separate download) 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 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 121
  • 122. Software & Services GroupDeveloper Products Division Copyright© 2011, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. 9/4/2012
  • 123. Optimization Notice 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. 9/4/2012
  • 124. Legal DisclaimerINFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED,BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THISDOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESSOR IMPLIED WARRANTY, RELATING TO THIS INFORMATION INCLUDING LIABILITY ORWARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, ORINFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.Performance tests and ratings are measured using specific computer systems and/or componentsand reflect the approximate performance of Intel products as measured by those tests. Anydifference 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 orcomponents they are considering purchasing. For more information on performance tests and onthe performance of Intel products, reference www.intel.com/software/products.BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino Atom, Centrino Atom Inside, CentrinoInside, 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, IntelNetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, IntelXScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, PentiumInside, skoool, Sound Mark, The Journey Inside, Viiv Inside, vPro Inside, VTune, Xeon, and XeonInside 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 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
  • 125. Ultrabook™ Developer Resources Intel® Corporation
  • 126. AgendaIntel AppUp® CenterIntel® Ultrabook™ CommunitySummary Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 126
  • 127. Intel AppUp®For Internal Use Only * Other names and brands may be claimed as the property of others. 127
  • 128. Intel AppUp® Center Thousands of Apps, Aggregated and Curated for Easy Discoverability www.AppUp.com• 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 AppUp®is a trusted and aggregated source to get digital content for Ultrabooks™, notebooks, and PCs – hundreds of millions of platforms! Intel Confidential 128 *English, French, German, Spanish, Italian (coming Q2’12) Other names and brands may be claimed as the property of others.
  • 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 worldwide 1• Participate in a ~$10B PC App Store Market 2• Single submission, single validation, single security process that distributes across many digital storefronts, worldwide• Opportunities to differentiate products by utilizing Intel hardware features Easy to submit existing content + a potential reach of 2.6B installed PCs = High ROI Intel Confidential 1Source: 129 IDC Windows Client OS Installed Base, WinXP and Win7 2 Source: IDC, Bain, displaysearch, Intel analysis
  • 130. Connecting Creators with Millions of ConsumersDrive 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 PCsReduce 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 consumersDeliver content focused around categories users care about Games, Entertainment, Creativity, Education, Productivity, Lifestyle, etcAvailable 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. 130
  • 131. Opportunity To Grow With Us: 2.6B PCs Marketing initiatives targeted towards the installed baseDirect to Social Product PartnerConsumer Networking Placement Marketing Part of the Largest Intel Marketing Campaign since Intel® Centrino®! 131 *source: IDC PC Shipments by Operating System
  • 132. Global Distribution of Apps *All logos on this slide are the property of 3rd parties 132
  • 133. 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.
  • 134. Ultrabook™ Community Resources• Forums: Ask and Find Answers• Black Belt Program: Earn Points• Technical Video Tutorials• Development Opportunities Software.intel.com/en-us/ultrabook Earn recognition and rewards 134
  • 135. 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
  • 136. AppUp® Developer Center• 100% Free enrollment• Access to SDK, Community, Developer Tools, content, etc• Submit apps to sell on the Intel AppUp® Center• appdeveloper.intel.com 136
  • 137. Your Dashboard• Access all apps and validation process• Finance• Messages• Crash Reporting• Organization Members• Black belt program
  • 138. Validation Process
  • 139. App Publicationwww.appup.com Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 139
  • 140. 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
  • 141. 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
  • 142. 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
  • 143. How to get to the cbase1. Subway Station Kaiserdamm2. U2 into direction of Pankow3. Change at Zoologischer Garten4. 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 Copyright(C) 2012 Intel Corporation. All rights reserved. *Other brands and names are properties of their respective owners. 143
  • 144. Wrap Up and Closing• 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! Copyright© 2012, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners 144
  • 145. Intel Ultrabook™ AppLab THANK YOU!