Parallel Extension czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 Wojciech Grześkowiak w.grzeskowiak@gmail.com.

Slides:



Advertisements
Podobne prezentacje
Równoległe kwerendy danych
Advertisements

Macierzowa reprezentacja sieci
Układy chaotyczne i złożone
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
Role w zespole projektowym
Microsoft Office System w praktyce wdrożenie w COMARCH-CDN
Grafika komputerowa Wykład 7 Krzywe na płaszczyźnie
Nguyen Hung Son Uniwersytet Warszawski
Visual Studio Codename „Orcas”, LINQ
Platforma .Net i Vs.Net.
Metody ataku na algorytmy kryptograficzne oparte na informacjach z ulotu elektromagnetycznego Robert Borzęcki.
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
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.
Redukcja sieci Petriego
Temat : Części komputera
Programowanie współbieżne i rozproszone
Język Java Wielowątkowość.
Programowanie współbieżne
Codename: GJumper inż. Krzysztof Grześkowiak inż. Kamil Niezręcki.
Zastosowanie technologii CUDA w sztucznej inteligencji
Modelowanie w Visual Studio 2010
Budowa platformy do rejestracji i odtwarzania wykładów akademickich
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
Gdzie się podziały serwery?
Mariusz Maleszak Za oknami chmury Mariusz Maleszak
Rozwój aplikacji przy wykorzystaniu ASP.NET
Witold Bołt Wprowadzenie do .NET Witold Bołt
CUDA & CUDA.NET – czyli istne CUDA Piotr Ablewski
Programowanie równoległe Wojciech Grześkowiak2010/11/12.
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
Elementy składowe komputera
Budowa i rodzaje procesorów.
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
Modelowanie konstrukcyjne form spódnicy damskiej podstawowej
Technologie Programowania seminarium
SPECJALNOŚĆ: Oprogramowanie Systemowe
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Procesor – charakterystyka elementów systemu. Parametry procesora.
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.
.NET i Bazy Danych Projekt: Wadim Grasza.
Optymalna konfiguracja Microsoft SQL Server 2014
Wybrane zagadnienia inteligencji obliczeniowej Zakład Układów i Systemów Nieliniowych I-12 oraz Katedra Mikroelektroniki i Technik Informatycznych proponują.
Wstęp do programowania Wykład 7
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
GeneracjeTechnologia Architektura przetwarzania 0. Przekaźniki elektromechaniczne 1. Lampy elektronowe 2. Tranzystory 3. Układy scalone 3.5.Układy dużej.
Zapytania ( 3.0 ) wyrażenia zapytaniowe - querry expressions przestrzeń nazw LINQ - Language-Integrated Query 3 etapy : 1. określenie źródła danych, 2.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Wątki, programowanie współbieżne
Podział mikroprocesorów
Windows Workflow Foundation
Podstawy programowania
Informacje ogólne Mgr Inż. Jerzy Orlof
Zapis prezentacji:

Parallel Extension czyli programowanie równoległe != współbieżne na platformie .NET Framework 4.0 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 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. SINGLE CORE Równoległość – wątki są wykonywanie fizycznie równolegle na różnych jednostkach obliczeniowych MULTI CORE

DEMO Ray 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

Walk Tree Imperative Task Parallelism DEMO Walk Tree Imperative Task Parallelism

Task Manager LQ WG LQ LQ T6 T7 T5 LQ T4 GLOBAL QUEUE T3 T2 T1

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

Matrix Imperative Data Parallelism DEMO Matrix Imperative Data Parallelism

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

Prime Numbers Declarative Data Parallelism DEMO Prime Numbers Declarative 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 ascending select p;

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

(video) Literatura Channel 9 http://channel9.msdn.com/tags/Parallel+Extensions/ http://channel9.msdn.com/tags/pdc2008.parallelism/ 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 Connect https://connect.microsoft.com/VisualStudio/