parallel extension

Post on 03-Jan-2016

37 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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

Wojciech Grześkowiakw.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• LINQ po raz drugi• Podsumowanie

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

Rynek procesorów Intel™

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

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

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

DEMORay Tracing

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

DEMOWalk TreeImperative Task Parallelism

Task Manager

WG

WG

WG

WG

T1

T2

T3

T4

T5

GLO

BA

L Q

UEU

E

LQ

LQ

LQ

LQ

T7

T6

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ść

DEMOMatrixImperative Data Parallelism

Imperative Data Parallelism

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

DEMOPrime NumbersDeclarative Data Parallelism

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;

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

top related