Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKonstancja Koźmiński Został zmieniony 10 lat temu
1
Programowanie równoległe Wojciech Grześkowiak2010/11/12
2
Agenda Rynek procesorów Idea programowania równoległego Parallel Extensions na platformie.NET Task Parallel Library od kuchni Parallel LINQ Visual Studio Async CTP Podsumowanie Bibliografia Pytania
3
Rynek procesorów Prawo Moorea Liczba tranzystorów w układzie elektrycznym podwaja się co 18-24 miesiące. Kres procesorów jednordzeniowych Alternatywa: Procesory wielordzeniowe
4
Rynek procesorów – Intel ?
5
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
6
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
7
Równoległe a 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
8
DEMO Ray Tracing
9
Parallel Extension Biblioteka.NET napisana w C# Przenośne, lekkie środowisko uruchomieniowe Wsparcie wielowątkowości Wspólny model wyjątków Nowość na platformie.NET w wersji 4.0
10
DEMO Tree Walk
11
Walk Tree Wysokość drzewa Liczba węzłów Czas – synchronicznie Czas – wątki Czas - równolegle 10204749,238 s190,833 s27,779 s 9102325,310 s63,875 s13,771 s 851112,674 s23,630 s7,030s 72556,375 s10,237 s3,511 s Tabela wyników:
12
Task Manager WG T1 T2 T3 T4 T5 T5 GLOBAL QUEUE LQ T7 T6
13
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ść
14
Mnożenie macierzy DEMO
15
Imperative Data Parallelism Parallel class Zbiór statycznych metod Metody pomocnicze do tworzenia Tasków Realizacja podstawowych wzorców For ForEach Invoke
16
Liczby pierwsze DEMO
17
Declarative Data Parallelism PLINQ to Równoległy Linq to Objects Prawie N – krotny wzrost wydajności Minimalny wpływ na dotychczasowy Linq AsParallel() var q = from p in people.AsParallel() where p.age < MaxAge && p.age > MinAge && p.state == STATE order by age ascending select p; AsParallel() var q = from p in people.AsParallel() where p.age < MaxAge && p.age > MinAge && p.state == STATE order by age ascending select p;
18
Visual Studio Async CTP Nowy model programowania asynchronicznego Zrezygnowanie z używania metod zwrotnych asyncawait Nowe słowa kluczowe: async, await
19
Visual Studio Async CTP public void displayPageTitle() { var client = new WebClient(); client.DownloadStringCompleted += whenCompeted; client.DownloadStringAsync( new Uri("http://www.pw.edu.pl")); } void whenCompleted(object sender, EventArgs e) { WriteLinePageTitle(e.Result); }
20
Visual Studio Async CTP public async void displayPageTitle() { WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri("http://www.pw.edu.pl"))); } public static Task DownloadStringTaskAsync( this WebClient webClient, Uri address);
21
Visual Studio Async CTP public async void displayPageTitle() { WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri("http://www.pw.edu.pl"))); WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri("http://www.elka.pw.edu.pl"))); WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri("http://www.samsung.com"))); }
22
Kilka rad... Operacje wykonywane równolegle powinny być czasochłonne. Przekształcajmy jedynie pętle zewnętrzne Szukajmy w naszych aplikacjach niezależnych zadań i uruchamiajmy je równolegle. np. rekurencja Unikajmy synchronizacji
23
Więcej informacji… Channel 9 http://channel9.msdn.com/tags/Parallel+Extensions/ MSDN http://msdn.microsoft.com/en-us/concurrency/ MSDN Blogs http://blogs.msdn.com/pfxteam http://blogs.msdn.com/nativeconcurrency http://www.danielmoth.com/Blog/ http://www.bluebytesoftware.com/blog/ Microsoft Professional Developers Conference 2010 http://microsoftpdc.com Mój Blog http://blog.fones.pl
24
PYTANIA ?
25
DZIĘKUJE
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.