Parallel Extension czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 Wojciech Grześkowiak [email protected].

1 Parallel Extension czyli programowanie równoległe != ws...
Author: Urjasz Martyka
0 downloads 0 Views

1 Parallel Extension czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 Wojciech Grześkowiak

2 Agenda Rzut oka na rynek procesorów Idea programowania równoległegoPierwszy kontakt z Parallel Extension Task Parallel Library od kuchni LINQ po raz drugi Podsumowanie

3 Rynek procesorów Prawo Moore’aLiczba tranzystorów w układzie elektrycznym podwaja się co 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 Forrester Research 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żneWspół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 DEMO Ray Tracing

9 Parallel Extension 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 Imperative Task ParallelismDEMO Walk Tree Imperative Task Parallelism

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

12 Imperative Task ParallelismTask 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 ParallelismDEMO Matrix Imperative Data Parallelism

14 Imperative Data ParallelismParallel class Zbiór statycznych metod Metody pomocnicze do tworzenia Task’ów Realizacja podstawowych wzorców For ForEach Invoke

15 Prime Numbers Declarative Data ParallelismDEMO Prime Numbers Declarative Data Parallelism

16 Declarative Data ParallelismPLINQ to „Równoległy” Linq to Objects N – krotny wzrost wydajności Minimalny wpływ na dotychczasowy Linq var q = from p in people.AsParallel() where p.age < MaxAge && p.age > MinAge && p.state == STATE order by age ascending 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 MSDN MSDN Blogs Microsoft Connect https://connect.microsoft.com/VisualStudio/

19