parallel extension

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

Upload: freya-house

Post on 03-Jan-2016

37 views

Category:

Documents


0 download

DESCRIPTION

czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0. Parallel Extension. Wojciech Grześkowiak [email protected]. Agenda. Rzut oka na rynek procesorów Idea programowania równoległego Pierwszy kontakt z Parallel Extension Task Parallel Library od kuchni - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Parallel Extension

Parallel Extensionczyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0

Wojciech Grześ[email protected]

Page 2: Parallel Extension

Agenda

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

Page 3: Parallel Extension

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

Page 4: Parallel Extension

Rynek procesorów Intel™

Page 5: Parallel Extension

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

Page 6: Parallel Extension

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

Page 7: Parallel Extension

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.

• Równoległość – wątki są wykonywanie fizycznie równolegle na różnych jednostkach obliczeniowych

SINGLE CORE

MULTI CORE

Page 8: Parallel Extension

DEMORay Tracing

Page 9: Parallel Extension

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

Page 10: Parallel Extension

DEMOWalk TreeImperative Task Parallelism

Page 11: Parallel Extension

Task Manager

WG

WG

WG

WG

T1

T2

T3

T4

T5

GLO

BA

L Q

UEU

E

LQ

LQ

LQ

LQ

T7

T6

Page 12: Parallel Extension

Imperative Task Parallelism

Task zamiast Thread• Zalety• Brak nakładu związanego z przełączaniem

kontekstu• Mniejsze zużycie pamięci• Równomierny rozkład pracy• Skalowalność

Page 13: Parallel Extension

DEMOMatrixImperative Data Parallelism

Page 14: Parallel Extension

Imperative Data Parallelism

• Parallel class• Zbiór statycznych metod• Metody pomocnicze do tworzenia Task’ów• Realizacja podstawowych wzorców• For• ForEach• Invoke

Page 15: Parallel Extension

DEMOPrime NumbersDeclarative Data Parallelism

Page 16: Parallel Extension

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 in people.AsParallel()where p.age < MaxAge &&

p.age > MinAge &&p.state == STATE

order by age ascendingselect p;

Page 17: Parallel Extension

Kilka rad...

• Operacje wykonywane równolegle powinny być czasochłonne.

• Przekształcajmy jedynie pętle zewnętrzne

• Szukajmy w naszych aplikacjach nie zależnych zadań i uruchamiajmy je równolegle. np. rekurencja• Unikajmy synchronizacji

Page 19: Parallel Extension