Programowanie równoległe Wojciech Grześkowiak2010/11/12.

Slides:



Advertisements
Podobne prezentacje
Równoległe kwerendy danych
Advertisements

Java dla studentów II roku Wydziału Fizyki PW Przemysław Duda, 2012
Układy chaotyczne i złożone
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
SERDECZNIE WITAMY Microsoft Developer Days Visual Studio 2005 Warszawa-Gdańsk-Poznań-Wrocław-Katowice 9-13 maja 2005.
ADAM Active Directory w trybie aplikacyjnym
Nguyen Hung Son Uniwersytet Warszawski
XSL – część 2.
Visual Studio Codename „Orcas”, LINQ
ASP.NET 2.0 AJAX Extensions 1.0
Platforma .Net i Vs.Net.
LITERATURA M.Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WN-T, 1996 I.Foster, Designing and Building parallel programs, Cocepts and.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Przegląd projektu Plan działań nauczyciela Przykłady prac i opinie Materiały dydaktyczne Ocenianie i standardy Przewodnik nauczyciela Przewodnik początkującego.
.NET Remoting Łukasz Zawadzki.
Język Java Wielowątkowość.
Programowanie współbieżne
Codename: GJumper inż. Krzysztof Grześkowiak inż. Kamil Niezręcki.
FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak
Zastosowanie technologii CUDA w sztucznej inteligencji
OData – dzielmy się danymi!
Modelowanie w Visual Studio 2010
Budowa platformy do rejestracji i odtwarzania wykładów akademickich
Spotkanie organizacyjne
Błażej Miśkiewicz Windows Home Server 2011 Błażej Miśkiewicz MCT MCP MCSA MCTS MCITP.
Drukarki w Windows 7/Windows Server 2008 R2
Test Doubles Adam Gabryś , v1.1,
PowerPivot dla DBA mgr inż. Paweł Potasiński.
Witold Bołt Wprowadzenie do .NET Witold Bołt
Programowanie urządzeń mobilnych – wykład IV
Parallel Extension czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 Wojciech Grześkowiak
KINECT – czyli z czym to się je?
Zrozumieć Umbraco w 45 minut.
KINECT – czyli z czym to się je?. O czym będziemy mówić? Obecna oferta rynkowa. Co to jest i jak działa Kinect? Jak przygotować komputer do pracy z Kinectem?
Tryb tabelaryczny w Analysis Services 2012
W praktyce Prelegent: Michał Cywiński
Wprowadzenie do makroekonomii
Budowa i rodzaje procesorów.
Jak wszyscy wiemy, nasz komputer niczym byłby bez procesora, myślę więc, że trzeba tej sprawie poświęcić trochę czasu, a więc zapraszam :) że trzeba tej.
C# Cz.7 Refleksja, Atrybuty
KINECT Jakub Hossa Microsoft Student Partner. KINECT Jakub Hossa Microsoft Student Partner.
Cz.5. Podsumowanie zadania Kolekcje Iteratory Generics Linq.
Kostyantyn Doronovych, 79129, sr1640 Łukasz Marciniak, 79166, sr1640
Kostyantyn Doronovych, 79129, sr1640 Łukasz Marciniak, 79166, sr1640
Użytkowanie i programowanie Matlaba
Bazy Danych w Mango Mateusz Mikulski
Technologie Programowania seminarium
Skalowanie aplikacji JPA na przykładzie Oracle TopLink Grid
PAT: Persistent Applications Toolkit Aplikacje bazodanowe bez bazy danych Tomasz Nazar.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
U innych działa ;( Debuggowanie startu aplikacji Arkadiusz Kocjan.
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
RÓWNOLEGŁOŚĆ I PROSTOPADŁOŚĆ W MOIM OTOCZENIU. Równoległość skrót II – w geometrii relacja między obiektami takimi jak proste, odcinki, półproste.
Technologie internetowe i mobilne
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Paweł Starzyk Obiektowe metody projektowania systemów
.NET i Bazy Danych Projekt: Wadim Grasza.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
Pierwsza aplikacja na Windows Phone. Dlaczego Windows Phone?
Windows 8 dla programistów Bartłomiej Zass Microsoft.
Zapytania ( 3.0 ) wyrażenia zapytaniowe - querry expressions przestrzeń nazw LINQ - Language-Integrated Query 3 etapy : 1. określenie źródła danych, 2.
Wątki, programowanie współbieżne
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Podział mikroprocesorów
Windows Workflow Foundation
Podstawy programowania
Informacje ogólne Mgr Inż. Jerzy Orlof
Zapis prezentacji:

Programowanie równoległe Wojciech Grześkowiak2010/11/12

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

Rynek procesorów Prawo Moorea Liczba tranzystorów w układzie elektrycznym podwaja się co miesiące. Kres procesorów jednordzeniowych Alternatywa: Procesory wielordzeniowe

Rynek procesorów – Intel ?

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

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

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

DEMO Ray Tracing

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

DEMO Tree Walk

Walk Tree Wysokość drzewa Liczba węzłów Czas – synchronicznie Czas – wątki Czas - równolegle ,238 s190,833 s27,779 s ,310 s63,875 s13,771 s ,674 s23,630 s7,030s 72556,375 s10,237 s3,511 s Tabela wyników:

Task Manager WG T1 T2 T3 T4 T5 T5 GLOBAL QUEUE 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ść

Mnożenie macierzy DEMO

Imperative Data Parallelism Parallel class Zbiór statycznych metod Metody pomocnicze do tworzenia Tasków Realizacja podstawowych wzorców For ForEach Invoke

Liczby pierwsze DEMO

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;

Visual Studio Async CTP Nowy model programowania asynchronicznego Zrezygnowanie z używania metod zwrotnych asyncawait Nowe słowa kluczowe: async, await

Visual Studio Async CTP public void displayPageTitle() { var client = new WebClient(); client.DownloadStringCompleted += whenCompeted; client.DownloadStringAsync( new Uri(" } void whenCompleted(object sender, EventArgs e) { WriteLinePageTitle(e.Result); }

Visual Studio Async CTP public async void displayPageTitle() { WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri(" } public static Task DownloadStringTaskAsync( this WebClient webClient, Uri address);

Visual Studio Async CTP public async void displayPageTitle() { WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri(" WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri(" WriteLinePageTitle( await new WebClient().DownloadStringTaskAsync( new Uri(" }

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

Więcej informacji… Channel 9 MSDN MSDN Blogs Microsoft Professional Developers Conference Mój Blog

PYTANIA ?

DZIĘKUJE