Presentation is loading. Please wait.

Presentation is loading. Please wait.

Steve Teixeira Director of Program Management, Visual C++ Microsoft Corporation Visual C++ and the Native Renaissance.

Similar presentations


Presentation on theme: "Steve Teixeira Director of Program Management, Visual C++ Microsoft Corporation Visual C++ and the Native Renaissance."— Presentation transcript:

1 Steve Teixeira Director of Program Management, Visual C++ Microsoft Corporation Visual C++ and the Native Renaissance

2

3 renaissance (n.) 1.a movement or period of vigorous artistic and intellectual activity 2.rebirth, revival

4

5 The new relevance of cross-platform Experience expectation Hardware evolution New productivity gains Mobile devices Graphics, physics, touch, gesture GPU, vector, sensors C++11, modern tools, perf- orientation

6

7

8

9

10 The new relevance of cross-platform Mobile devices

11

12 The new relevance of cross-platform Mobile devices

13 The new relevance of cross-platform Mobile devices

14 demo Mixing C++ and C++/CX

15 Experience expectation Graphics, physics, touch, gesture

16 Experience expectation Graphics, physics, touch, gesture

17 Experience expectation Graphics, physics, touch, gesture

18 Experience expectation Graphics, physics, touch, gesture

19 Experience expectation Graphics, physics, touch, gesture

20 demo Journal: Immersive experiences with C++

21 1975-2005 Put a computer on every desk, in every home, in every pocket. 2005-2011 Put a parallel supercomputer on every desk, in every home, in every pocket. 2011-201x heterogeneous local & distributed parallel supercomputer Put a heterogeneous local & distributed parallel supercomputer on every desk, in every home, in every pocket. Welcome to the jungle The free lunch is so over Hardware evolution GPU, vector, sensors

22 Hardware evolution GPU, vector, sensors

23 + r1 r2 r3 add r3, r1, r2 SCALAR (1 operation) v1 v2 v3 + vector length vadd v3, v1, v2 VECTOR (N operations) Hardware evolution GPU, vector, sensors

24 B[0] B[1] B[2] B[3] A[0] A[1] A[2] A[3] A[0] + B[0] A[1] + B[1] A[2] + B[2] A[3] + B[3] + xmm1 xmm0 “addps xmm1, xmm0 “ xmm1 Hardware evolution GPU, vector, sensors for (i = 0; i < 1000; i++) { C[i] = A[i]+B[i] } for (i = 0; i < 1000; i+=4) { C[i:i+3] = A[i:i+3]+B[i:i+3] }

25 Hardware evolution GPU, vector, sensors

26 Hardware evolution GPU, vector, sensors

27 // composing with order dependencies task a([=]() {DoSomething();}); a.then([=]() {DoSomethingElse();)); // choice & join auto t = t1 || t2; // same as when_any auto t = t1 && t2; // same as when_all

28 demo Task graphs

29 performance portability productivity Hardware evolution GPU, vector, sensors

30 void AddArrays(int n, int * pA, int * pB, int * pC) { array_view a(n, pA); array_view b(n, pB); array_view sum(n, pC); parallel_for_each( sum.extent, [=](index idx) restrict(amp) { sum[idx] = a[idx] + b[idx]; } ); } array_view variables captured and associated data copied to accelerator (on demand) restrict(amp): tells the compiler to check that this code can execute on Direct3D hardware (aka accelerator) parallel_for_each: execute the lambda on the accelerator once per thread extent: the number and shape of threads to execute the lambda index: the thread ID that is running the lambda, used to index into data array_view: wraps the data to operate on the accelerator Hardware evolution GPU, vector, sensors

31 012345 0 1 2 3 4 5 6 7 012345 0 1 2 3 4 5 6 7 g.tile () array_view data(8, 6, p_my_data); parallel_for_each( data.grid.tile (), [=] (tiled_index t_idx)… { … }); Hardware evolution GPU, vector, sensors

32 demo C++ AMP

33 New productivity gains C++11, modern tools, perf- orientation “The going word at Facebook is that ‘ reasonably written C++ code just runs fast,’ which underscores the enormous effort spent at optimizing PHP and Java code. Paradoxically, C++ code is more difficult to write than in other languages, but efficient code is a lot easier.” – Andrei Alexandrescu

34 auto p = make_shared ( 42 ); vector > vw = load_shapes(); for(auto s: vw) if( s && *s == *p ) cout << *s << “ is a match\n”; } ); circle* p = new circle( 42 ); vector vw = load_shapes(); for( vector ::iterator i = vw.begin(); i != vw.end(); ++i ) { if( *i && **i == *p ) cout << **i << “ is a match\n”; } for( vector ::iterator i = vw.begin(); i != vw.end(); ++i ) { delete *i; } delete p; Then Now T*  shared_ptr new  make_shared no need for “delete” automatic lifetime management exception-safe for/while/do  range-based for loops auto type deduction not exception-safe missing try/catch, __try/__finally New productivity gains C++11, modern tools, perf- orientation

35 New productivity gains C++11, modern tools, perf- orientation

36 New productivity gains C++11, modern tools, perf- orientation

37 New productivity gains C++11, modern tools, perf- orientation

38 What’s next? Continuing the Renaissance

39

40 demo Project Casablanca: C++ and the Cloud

41 Async File I/O Timers Binary Serializers JSON Parser & Writer Azure / IIS HostWindows Host Windows 7 / 8 IOCP PPLWinHTTP HTTP Client & Listener TCP Client & Listener Web Sockets Client & Listener UDP Client & Listener Apps & Libraries Azure Storage Windows Live Xbox Live C++ Actors Bing Maps Foundation Casablanca Lib Service Host Possible 3 rd Party

42

43 The new relevance of cross-platform Experience expectation Hardware evolution New productivity gains Mobile devices Graphics, physics, touch, gesture GPU, vector, sensors C++11, modern tools, perf- orientation

44 Q&A

45 DEV316: Application Lifecycle Management Tools for C++ in VS 2012 DEV334: C++ Accelerated Massive Parallelism in Visual C++ 2012 DEV367: Building Windows 8 Metro-style Apps with C++ PRC08: C++ in Visual Studio 2012: Modern, Readable, Safe, Fast

46 Visual Studio Home Page :: http://www.microsoft.com/visualstudio/en-ushttp://www.microsoft.com/visualstudio/en-us Jason Zander’s Blog :: http://blogs.msdn.com/b/jasonz/http://blogs.msdn.com/b/jasonz/ Facebook :: http://www.facebook.com/visualstudiohttp://www.facebook.com/visualstudio Twitter :: http://twitter.com/#!/visualstudiohttp://twitter.com/#!/visualstudio Somasegar’s Blog :: http://blogs.msdn.com/b/somasegar/http://blogs.msdn.com/b/somasegar/ VC++ Team Blog :: http://blogs.msdn.com/b/vcblog/http://blogs.msdn.com/b/vcblog/

47 Connect. Share. Discuss. http://europe.msteched.com Learning Microsoft Certification & Training Resources www.microsoft.com/learning TechNet Resources for IT Professionals http://microsoft.com/technet Resources for Developers http://microsoft.com/msdn

48 Evaluations http://europe.msteched.com/sessions Submit your evals online

49


Download ppt "Steve Teixeira Director of Program Management, Visual C++ Microsoft Corporation Visual C++ and the Native Renaissance."

Similar presentations


Ads by Google