Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałUrjasz Martyka Został zmieniony 10 lat temu
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łego
Pierwszy kontakt z Parallel Extension Task Parallel Library od kuchni LINQ po raz drugi Podsumowanie
3
Rynek procesorów Prawo Moore’a
Liczba 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ż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
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 Parallelism
DEMO 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 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ść
13
Matrix Imperative Data Parallelism
DEMO Matrix Imperative Data Parallelism
14
Imperative Data Parallelism
Parallel class Zbiór statycznych metod Metody pomocnicze do tworzenia Task’ów Realizacja podstawowych wzorców For ForEach Invoke
15
Prime Numbers Declarative Data Parallelism
DEMO Prime Numbers Declarative Data Parallelism
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 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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.