Ade Miller Senior Development Manager Microsoft patterns & practices.

Slides:



Advertisements
Similar presentations
Parallel Programming Patterns Ralph Johnson. Why patterns? Patterns for Parallel Programming The road ahead.
Advertisements

Steve Smith Senior Architect The Code Project SESSION CODE: DPR304.
SQL 2005SQL 2008SQL 2008 R2 Chart Multiple areas NEW! Multiple areas Multiple axes NEW! Multiple axes Calculated series NEW! Calculated series Gauge.
Kai Axford MBA, CPP, CISSP, ACE Manager, IT Security Services Accretive Solutions SESSION CODE: SIA339 Allyn Lynd Special.
Death of Security: Breached Hosts/Stolen Data/IP Espionage
Ron Jacobs Technical Evangelist Microsoft Corporation SESSION CODE: DEV207.
Jason Tolley Technical Director ROK Technology Pty Ltd SESSION CODE: WEM305.
Joe Kuemerle Lead Developer PreEmptive Solutions - SESSION CODE: DEV306.
Laura Chappell Author Wireshark Network Analysis: The Official Wireshark Certified Network Analyst Study Guide wiresharkbook.com SESSION CODE: SIA336.
Sometimes it is the stuff you know that hinders true progress.
Phil Pennington Sr. Developer Evangelist Microsoft Corporation SESSION CODE: WSV325.
The Secrets of Effective Technical Talks: How to Explain Tech without Tucking Them In! Presented by Mark Minasi and Mark Russinovich SESSION CODE: SIA334.
Ashwin Sarin Program Manager Microsoft Corporation SESSION CODE: COS204.
Maciej Pilecki Consultant, SQL Server MVP Project Botticelli Ltd. SESSION CODE: DAT403.
Design Solutions in ExcelShare them on SharePoint 9.
Boris Jabes Senior Program Manager Microsoft Corporation SESSION CODE: DEV319 Scale & Productivity in Visual C
Peter Provost Sr. Program Manager Microsoft Corporation SESSION CODE: DEV403.
Joe SchulmanAdrienne WuProgram ManagerMicrosoft Corporation SESSION CODE: SIA319.
END USER TOOLS AND PERFORMANCE MANAGEMENT APPS Excel PerformancePoint Svcs/ProClarity BI PLATFORM SQL Server Reporting Services SQL Server Reporting Services.
Janssen Jones Virtual Machine MVP Indiana University SESSION CODE: VIR403.
Terry Zink Program Manager Microsoft Corporation SESSION CODE: SIA316 Mike Chan Group Product Manager Microsoft Corporation Behind the Spam A look at spammers,
Suhail Dutta Program Manager Microsoft Corporation SESSION CODE: DEV402.
Matt winkler program manager microsoft corporation SESSION CODE: ASI303.
Satya SK Jayanty Director & Principal Architect D BI A Solutions Peter Saddow Senior Program Manager Microsoft Corporation -SQL Server SESSION CODE: DAT312.
Thomas Deml Principal Program Manager Web Platform and Tools Microsoft Corporation SESSION CODE: WEB308.
DEV 315 –Name –Problem –Context –Forces –Solution –Invariant –Examples –Known Uses –Related patterns : Characteristics :
Paul Litwin Programmer Manager Fred Hutchinson Cancer Research Center SESSION CODE: WEB206.
Omar Khan SESSION CODE: WSV331. Simplification.
Huseyin YILDIZ Software Design Engineer Microsoft Corporation SESSION CODE: DEV314.
Jeff King Senior Program Manager, Visual Studio Microsoft Corporation SESSION CODE: WEB305.
Lori Dirks Expression Community Manager Microsoft Corporation SESSION CODE: WEB309.
Vineet Sarda Senior Consultant Microsoft Corporation SESSION CODE: WCL302.
Chris Mayo Microsoft Corporation SESSION CODE: UNC207.
Bob Beauchemin Developer Skills Partner SQLskills SESSION CODE: DAT402.
Dave Franklyn, Microsoft Certified Trainer Senior Information Technology Instructor Auburn University WCL318.
Olivier Bloch Technical Evangelist Microsoft Corporation SESSION CODE: WEM308.
Richard Campbell Co-Founder Strangeloop Networks SESSION CODE: WEB315.
Younus Aftab Program Manager Microsoft Corporation SESSION CODE: WSV324.
Srinath Venkatasubramanian Alliance Manager Sonata Software Limited SESSION CODE: BIP203.
By: Paul D. Sheriff or SESSION CODE: DEV320.
SESSION CODE: MGT205 Chris Harris Program Manager Microsoft Corporation.
Reza Chitsaz Senior Program Manager Microsoft Corporation SESSION CODE: DEV302 Building a SharePoint Collaboration Application in Visual Studio 2010.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP305.
Pat Altimore Sr. Consultant Microsoft Corporation SESSION CODE: WCL321.
BIO202 | Building Effective Data Visualizations and Maps with Microsoft SQL Server 2008 Reporting Services BIU08-INT | Using.
Ted Pattison Author / Instructor Critical Path Training SESSION CODE: OSP315.
Martin Woodward Program Manager Microsoft Corporation SESSION CODE: DEV308.
Don Jones Senior Partner and Technologist Concentrated Technology, LLC SESSION CODE: DAT203.
Jesus Rodriguez Chief Architect, Tellago, Inc Microsoft Architect Advisor Microsoft MVP Oracle SOA ACE SESSION CODE: DEV406.
SESSION CODE: COS301. So what do we do?
Mir Rosenberg & Refaat Issa Program Managers Microsoft Corporation SESSION CODE: WSV401.
Dustin Johnson Microsoft Practice Lead Dell, Inc. SESSION CODE: UNC302.
David A. Carley Senior SDE Microsoft Corporation SESSION CODE: DEV318.
Tobias Ternstrom Senior Program Manager Lead SQL Server Engine SESSION CODE: DAT405 Itzik Ben-Gan Mentor and Co-Founder Solid Quality Mentors.
By: Paul D. Sheriff or SESSION CODE: WCL206.
Cube Measure Group Measure Partition Cube Dimension Dimension Attribute Attribute Relationship Hierarchy Level Cube Attribute Cube Hierarchy.
Maarten Struys Windows Phone Evangelist Alten PTS SESSION CODE: WPH303.
Brian A. Randell Senior Consultant MCW Technologies SESSION CODE: DEV311.
Christophe Fiessinger & Jan Kalis Senior Technical Product Manager Microsoft Corporation SESSION CODE: OSP209.
Ken Getz Senior Consultant MCW Technologies, LLC SESSION CODE: WCL202.
3 Business Intelligence with the world’s most popular business productivity suite and most widely deployed information platform IT management & developer.
Tobias Ternstrom Senior Program Manager Lead SQL Server Engine SESSION CODE: DAT404.
Luke Hoban Senior Program Manager Microsoft Corporation SESSION CODE: DEV307.
Andrew Connell, MVP Developer, Instructor & Author Critical Path Training, LLC. SESSION CODE: OSP319.
Stephen Forte Chief Strategy Officer Telerik stephenforte.net SESSION CODE: DEV303 Building Data Driven RESTful Applications.
David Starr Pluralsight Instructor ALM Consultant Visual Studio ALM MVP SESSION CODE: DPR302 Blog:
Customer Experiences With Business Intelligence
Collaborative Decision Making
A Lap Around Internet Explorer 9 For Developers
Lap Around the Windows Azure Platform
Presentation transcript:

Ade Miller Senior Development Manager Microsoft patterns & practices

Dual-Core Itanium 2 Intel CPU Trends (sources: Intel, Wikipedia, K. Olukotun) Pentium 386 Pentium 4

Futures Pipeline Parallel Tasks Parallel Aggregation Parallel Loop

static void Walk (Tree root, Action action) { if (root == null) return; var t1 = Task.Factory.StartNew(() => action(root.Data)); var t2 = Task.Factory.StartNew(() => Walk(root.Left, action)); var t3 = Task.Factory.StartNew(() => Walk(root.Right, action)); Task.WaitAll(t1, t2, t3); }

QUIZ…

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

Source: More Patterns for Parallel Application Programs, Berna L. Massingill, Timothy G. Mattson and Beverly A. Sanders Master/ Worker SPMD Parallel Loops Fork/ Join Distributed Array Map Reduce Actors SOA Facade Repository MPMD Pipeline Producer/ Consumer Shared Queue Divide & Conquer Task Graph

Source: Design Patterns – Gamma, Helm, Johnson & Vlissides Patterns of Enterprise Application Architecture - Fowler

Source: Design Patterns – Gamma, Helm, Johnson & Vlissides IFoo Foo ConcurrentFoo

Source: Patterns of Enterprise Application Architecture - Fowler

Task Queue Source: Patterns for Parallel Programming – Mattson, Sanders & Massingill

var results = new ConcurrentQueue (); Parallel.For(0, 1000, (i) => { Result result = ComputeResult(i); results.Enqueue(result); });

var accountRatings = accounts.AsParallel().Select(item => CreditRating(item)).ToList();

Parallel.For (0, acc.Length, i => { acc[i].UpdateCreditRating(); }); #pragma omp parallel for for (int i = 0; i < len; i++) { acc[i].UpdateCreditRating(); }

Parallel.Invoke( () => ComputeMean(), () => ComputeMedian() ); parallel_invoke( [&] { ComputeMean(); }, [&] { ComputeMedian(); }, );

var input = new BlockingCollection (); var readLines = Task.Factory.StartNew(() => { try { foreach(var line in input.Add(line); } finally { input.CompleteAdding(); } }); var writeLines = Task.Factory.StartNew(() => { input.GetConsumingEnumerator()); }); Task.WaitAll(readLines, writeLines);

Get-ChildItem C:\ | Where-Object {$_.Length -gt 2KB} | Sort-Object Length