1 / 19

Parallel Extension

czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0. Parallel Extension. Wojciech Grześkowiak w.grzeskowiak@gmail.com. Agenda. Rzut oka na rynek procesorów Idea programowania równoległego Pierwszy kontakt z Parallel Extension Task Parallel Library od kuchni

freya-house
Download Presentation

Parallel Extension

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. czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 ParallelExtension Wojciech Grześkowiak w.grzeskowiak@gmail.com

  2. Agenda • Rzut oka na rynek procesorów • Idea programowania równoległego • Pierwszy kontakt z ParallelExtension • TaskParallelLibrary od kuchni • LINQ po raz drugi • Podsumowanie

  3. Rynek procesorów • Prawo Moore’a Liczba tranzystorów w układzie elektrycznym podwaja się co 18-24 miesiące. • Kres procesorów jednordzeniowych • Alternatywa: Procesory wielordzeniowe

  4. Rynek procesorów Intel™

  5. Procesory wielordzeniowe "Różnica jest taka jak między szybkim sportowym autem, a autobusem szkolnym. Pierwszy szybko przewiezie dwie osoby, a drugi, choć trochę wolniej - czterdzieści„ – Dan Reed

  6. Przyszłość … • Analitycy z firmy ForresterResearch przewidują, że już w 2012 roku rozbudowane procesory wyposażone w 64 rdzenie będą instalowane w komputerach domowych. • Już niedługo zabraknie programistów z doświadczeniem w tworzeniu aplikacji wykorzystujących przetwarzanie równoległe. – Dan Reed … To już ostatni dzwonek, aby przekonać młodych programistów o wartości przetwarzania równoległego - dodaje

  7. Równoległe != Współbieżne • Współbieżność – wykonywane wątki są przełączane co pewien ustalony (krotki) czas, przez co mamy wrażenie równoległego ich wykonywania. SINGLE CORE • Równoległość – wątki są wykonywanie fizycznie równolegle na różnych jednostkach obliczeniowych MULTI CORE

  8. Ray Tracing DEMO

  9. ParallelExtension • Biblioteka .NET napisana w C# • Lekkie środowisko uruchomieniowe • Wsparcie wielowątkowości • Wspólny model wyjątków Wejdzie w skład mscorlib w przyszłej wersji platformy

  10. Walk Tree ImperativeTaskParallelism DEMO

  11. Task Manager LQ LQ LQ T6 T7 T5 LQ T4 GLOBAL QUEUE T3 T2 T1

  12. ImperativeTaskParallelism Task zamiast Thread • Zalety • Brak nakładu związanego z przełączaniem kontekstu • Mniejsze zużycie pamięci • Równomierny rozkład pracy • Skalowalność

  13. Matrix Imperative Data Parallelism DEMO

  14. Imperative Data Parallelism • Parallelclass • Zbiór statycznych metod • Metody pomocnicze do tworzenia Task’ów • Realizacja podstawowych wzorców • For • ForEach • Invoke

  15. PrimeNumbers Declarative Data Parallelism DEMO

  16. Declarative Data Parallelism • PLINQ to „Równoległy” Linq to Objects • N – krotny wzrost wydajności • Minimalny wpływ na dotychczasowy Linq var q = from p inpeople.AsParallel() wherep.age < MaxAge && p.age > MinAge && p.state == STATE order by ageascending select p;

  17. Kilka rad... • Szukajmy w naszych aplikacjach nie zależnych zadań i uruchamiajmy je równolegle. np. rekurencja • Unikajmy synchronizacji • Operacje wykonywane równolegle powinny być czasochłonne. • Przekształcajmy jedynie pętle zewnętrzne

  18. (video) Literatura Channel 9 http://channel9.msdn.com/tags/Parallel+Extensions/ http://channel9.msdn.com/tags/pdc2008.parallelism/ MSDN http://msdn.microsoft.com/en-us/concurrency/ MSDN Blogs http://blogs.msdn.com/pfxteam http://blogs.msdn.com/nativeconcurrency http://www.danielmoth.com/Blog/ http://www.bluebytesoftware.com/blog/ Microsoft Connect https://connect.microsoft.com/VisualStudio/

More Related