Presentation is loading. Please wait.

Presentation is loading. Please wait.

Phil Pennington Sr. Developer Evangelist Microsoft Corporation SESSION CODE: WSV325.

Similar presentations


Presentation on theme: "Phil Pennington Sr. Developer Evangelist Microsoft Corporation SESSION CODE: WSV325."— Presentation transcript:

1 Phil Pennington Sr. Developer Evangelist Microsoft Corporation SESSION CODE: WSV325

2

3 S = Area of square S = (2*r) * (2*r) = 4*r *r S = 4*r*r C = Area of Circle C = Pi*r*r Pi = 4 * (Area of Circle / Area of Square)

4 S = 4*r*r C = Pi*r*r Pi = 4*(C/S) For each Point (P), d(P) = SQRT((x * x) + (y * y)) if (d < r) then (x,y) in C

5

6 016 31 32-bit Idle Processor Mask Idle Busy

7 GROUP NUMA NODE SocketSocketSocketSocket Core LP NUMA = Non-Uniform Memory Access LP = Logical Processor

8 Group NUMA Node SocketSocket Core LP Core LP Core LP Core LP SocketSocket Core LP Core LP Core LP Core LP NUMA Node SocketSocket Core LP Core LP Core LP Core LP SocketSocket Core LP Core LP Core LP Core LP Group NUMA Node SocketSocket Core LP Core LP Core LP Core LP SocketSocket Core LP Core LP Core LP Core LP NUMA Node SocketSocket Core LP Core LP Core LP Core LP SocketSocket Core LP Core LP Core LP Core LP

9 CPU0CPU0CPU1CPU1CPU2CPU2CPU3CPU3 Dynamic scheduling improves performance by distributing work efficiently at runtime. CPU0CPU0CPU1CPU1CPU2CPU2CPU3CPU3

10 Your Scheduler Logic Wait Application Kernel S1S1 S1S1 S2S2 S2S2 Scheduler Threads CPU 1CPU 2 W1W1 W1W1 W2W2 W2W2 W3W3 W3W3 W4W4 W4W4 Blocked Worker Threads UMS Scheduler’s Ready List UMS Completion List

11

12

13 Visual C++ 10 (and many overloads for the above)

14 Tools Programming Models – Structured Parallelism.NET Parallel Extensions.NET Runtime Parallel LINQ (PLINQ) Parallel LINQ (PLINQ) Resource Manager Task Scheduler Managed Library Threads Pools Data Structures Tools Parallel Debugger Parallel Debugger Parallel Profiler Parallel Profiler Task Parallel Library

15 Tools Programming Models – Structured ParallelismC++ Concurrency Runtime Operating System Parallel Pattern Library Resource Manager Task Scheduler Native Library Key: Threads Data Structures Tools Parallel Debugger Parallel Profiler Agents Library Win7/R2: UMS Threads

16 Task Parallelism YYN+Y-NN Data Parallelism YYN+YYN Parallel Patterns YYNYN+N Fine-grained Parallelism (loops) YYYY-NN Work-Item Partitioning YYY-YN+N Dynamic Scheduling YYNYN+N

17 AffinityNNYNY-Y Concurrent Data Structures YYN+YNN Scalable Memory Allocator YYNYNN Optimized I/O Capability NNNNYY User-Mode Sync Primitives YYYYYN Automatically Collates Results NNNYNN

18

19

20 Control Parallelism Parallel.For (0, size, (i) => { Console.WriteLine(i); }); Data Parallelism IEnumerable numbers = Enumerable.Range(2, 100-3); var parallelQuery = from n in numbers.AsParallel() where Enumerable.Range(2, (int)Math.Sqrt(n)).All(i => n % i > 0) select n; int[] primes = parallelQuery.ToArray();

21

22

23

24

25

26

27 www.microsoft.com/teched www.microsoft.com/learning http://microsoft.com/technet http://microsoft.com/msdn

28

29 Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31 st http://northamerica.msteched.com/registration You can also register at the North America 2011 kiosk located at registration Join us in Atlanta next year

30

31


Download ppt "Phil Pennington Sr. Developer Evangelist Microsoft Corporation SESSION CODE: WSV325."

Similar presentations


Ads by Google