Upload
freya-house
View
41
Download
0
Embed Size (px)
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
Citation preview
Parallel Extensionczyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0
Wojciech Grześ[email protected]
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
(video) Literatura
Channel 9 http://channel9.msdn.com/tags/Parallel+Extensions/http://channel9.msdn.com/tags/pdc2008.parallelism/
MSDNhttp://msdn.microsoft.com/en-us/concurrency/
MSDN Blogshttp://blogs.msdn.com/pfxteam http://blogs.msdn.com/nativeconcurrency http://www.danielmoth.com/Blog/ http://www.bluebytesoftware.com/blog/
Microsoft Connecthttps://connect.microsoft.com/VisualStudio/