1 / 18

LINQ & PLINQ

LINQ & PLINQ. (Parallel) Language Integrated Query. Agenda. Introduction to LINQ basics Overview of advanced capabilities Demo the Basics PLINQ intro Demo of PLINQ. Introduction. LINQ IS... A programming model that Introduces queries as a “first class” concept into .NET More leg room!

murray
Télécharger la présentation

LINQ & PLINQ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LINQ & PLINQ (Parallel) Language Integrated Query

  2. Agenda • Introduction to LINQ basics • Overview of advanced capabilities • Demo the Basics • PLINQ intro • Demo of PLINQ

  3. Introduction • LINQ IS... • A programming model that • Introduces queries as a “first class” concept into .NET • More leg room! • Is an abstraction level for data • Don’t you just love abstraction, it’s great! • Is another tool for embedding SQL queries into code • “This code was written by a tool” – not that kind of tool! • Allows for uniform manipulation of any data type • Consistently producing consistent consistency!

  4. LINQ Breakdown

  5. LINQ Breakdown - Compiler

  6. LINQ Implementations • LINQ to Objects • Code (Reflection), Filesin FileSystem • LINQ to ADO.NET • LINQ to SQL • LINQ to DataSet • LINQ to Entities • LINQ to XML • XDocument, XElement, XAttribute, XNode, etc • In System.Xml.Linq.Document

  7. Making Use Of Linq

  8. Exception Handling • Calling methods where failure is possible • Make use of a ‘let’

  9. Built In Operators • Query • Where • Projection • Select • SelectMany • Ordering • OrderBy • OrderByDescending • ThenBy • ThenByDescending • Reverse • Grouping • GroupBy • Aggregate • Count, LongCount • Sum, Average • Aggregate • Min, Max • Set • Distinct • Union, Intersect, Except • Join • Join, GroupJoin • Generation • Range, Repeat, Empty • Quantifiers • Any, All, Contains • Partitioning • Take, TakeWhile • Skip, SkipWhile • Element Operators • First, FirstOrDefault • Last, LastOrDefault • Single, SingleOrDefault • ElemenentAt, ElementAtOrDefatult • DefaultIfEmpty • Other • Concat • SequenceEqual

  10. Extension Methods • Custom Operators • New Name • Or Override Existing Operators (potentially bad practice) • Specialise Existing – For a given type

  11. LINQ DEMO Basics in VS2010

  12. Advanced LINQ • Recursive Lambda Expressions • Through the use of Fix fixed-point generator • Expression Trees • MSDN Blogs: Mads Torgersen - Recursive Lambda Expressions • Visitor Pattern using LINQ • MSDN Blogs: Jomo Fisher – Dealing with LINQs immutable expression trees

  13. PLINQ Background • Part of managed concurrency library in the .NET Framework • Simplify concurrent processing • Makes use of the Task Parallel Library (TPL) • TPL in turn uses • Parallel.For • Parallel.ForEach • Parallel.Invoke

  14. Operating In Parallel • Partitioning • Based on computation and data type • Range (Arrays, Lists) – Index into structure, equal split • Not the most ideal for load balancing • Striped • Chunks of input • Chunk level load balancing • Hash • Execution • On available cores • Merge Results • Initial thread picks up results (consumer thread) • ForAll, Async (pipelining), Sync (stop-and-go) • PLINQ takes care of threading events, signalling, concurrency, locking, etc.

  15. PLINQ DEMO Speed up of processing using multiple cores

  16. Demo • Projections • Extension Methods • Parallel Performance • LINQ to XML • LINQ to SQL Entities

  17. PLINQ Ideal Speedup

  18. Thank You Questions? More info on my blog; links, “refined wording”: http://NickJosevski.com

More Related