Wstęp. Przetwarzanie równoległe. Krzysztof Banaś Obliczenia równoległe 1

Podobne dokumenty
Wstęp. Przetwarzanie współbieżne, równoległe i rozproszone

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Numeryczna algebra liniowa

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

WPŁYW PROGRAMOWANIA RÓWNOLEGŁEGO NA WYDAJNOŚĆ PROGRAMU JAVY

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

i3: internet - infrastruktury - innowacje

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Algorytmy i Struktury Danych

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Programowanie współbieżne Wykład 2. Iwona Kochańska

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

16. Taksonomia Flynn'a.

4. Procesy pojęcia podstawowe

O-MaSE Organization-based Multiagent System Engineering. MiASI2, TWO2,

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

4. Procesy pojęcia podstawowe

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Architektura mikroprocesorów TEO 2009/2010

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Metody optymalizacji soft-procesorów NIOS

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Przetwarzanie potokowe pipelining

Estimation and planing. Marek Majchrzak, Andrzej Bednarz Wroclaw,

Wprowadzenie do programowania współbieżnego

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Task Parallel Library

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

PRZEWODNIK PO PRZEDMIOCIE

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Programowanie kart graficznych. Sprzęt i obliczenia

Wydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

4. Procesy pojęcia podstawowe

Równoległe algorytmy sortowania. Krzysztof Banaś Obliczenia równoległe 1

Nowoczesne technologie przetwarzania informacji

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Obliczenia Wysokiej Wydajności

Budowa komputera Komputer computer computare

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Obliczenia Wysokiej Wydajności

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Programowanie współbieżne i rozproszone

Tychy, plan miasta: Skala 1: (Polish Edition)

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Historia modeli programowania

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Oprogramowanie na miarę z13

Zasady projektowania algorytmów równoległych

Programowanie komputerów

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Tesla. Architektura Fermi

Przetwarzanie Równoległe i Rozproszone

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

Podstawy Informatyki Systemy sterowane przepływem argumentów

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Stargard Szczecinski i okolice (Polish Edition)

PROBLEMATYKA OBLICZEŃ MASOWYCH W NAUKACH O ZIEMI. Satelitarny monitoring środowiska

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

miejsca przejścia, łuki i żetony

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

Projektowanie. Projektowanie mikroprocesorów

Sieci Petriego. Sieć Petriego

Dr inż. hab. Siergiej Fialko, IF-PK,

Programowanie Rozproszone i Równoległe

Wprowadzenie do Apache Spark. Jakub Toczek

1 Podstawowe definicje i pojęcia współbieżności

Zarządzanie sieciami telekomunikacyjnymi

Ankiety Nowe funkcje! Pomoc Twoje konto Wyloguj. BIODIVERSITY OF RIVERS: Survey to teachers

Transkrypt:

Wstęp. Przetwarzanie równoległe. Krzysztof Banaś Obliczenia równoległe 1

Historia i pojęcia wstępne Obliczenia równoległe: dwa lub więcej procesów (wątków) jednocześnie współpracuje (komunikując się wzajemnie) w celu rozwiązania pojedynczego zadania (najczęściej z określonej dziedziny zastosowań) rozwój związany z powstaniem w latach siedemdziesiątych komputerów równoległych problemy obliczeń równoległych (poza klasycznymi zagadnieniami współbieżności) są najczęściej związane z konkretnymi algorytmami obliczenia równoległe były silnie związane z dziedziną obliczeń wysokiej wydajności (i obliczeniami naukowo technicznymi) dziś, w czasach procesorów wielordzeniowych, programowanie równoległe jest koniecznością przetwarzanie równoległe jest jedynym sposobem wykorzystania pełnej mocy współczesnego sprzętu Krzysztof Banaś Obliczenia równoległe 2

Po co obliczenia równoległe? Lepsze wykorzystanie dostępnego sprzętu Krzysztof Banaś Obliczenia równoległe 3

Po co obliczenia równoległe? Zwiększenie maksymalnej mocy obliczeniowej Krzysztof Banaś Obliczenia równoległe 4

Rodzaje przetwarzania równoległego Równoległość na poziomie: pojedynczego rozkazu (instruction level parallelism ILP) potokowość, superskalarność poza kontrolą programisty, w gestii projektanta procesora sekwencji rozkazów tworzących zadanie (task level parallelism), pętli (loop level parallelism) w gestii programisty i twórców kompilatorów wykorzystanie wątków (thread level parallelism) i procesów rozdział kolejno wykonywanych rozkazów pomiędzy procesory/rdzenie podział zadania obliczeniowego na podzadania, przydział poszczególnych zadań procesorom/rdzeniom programów (job level parallelism) jednoczesne wykonywanie niezależnych programów przez system operacyjny (OS level parallelism) w gestii projektantów systemów komputerowych (m.in. systemów operacyjnych) Krzysztof Banaś Obliczenia równoległe 5

C/C++/Java/C# itp., itd. (źródło www.tiobe.com) Krzysztof Banaś Obliczenia równoległe 6

C/C++/Java/C# itp., itd. C++ programmers and programs benefit from the very expressive templating and overloading features of the language, allowing more abstraction and more code reuse than is available in other languages. However, that template processing and overloading is typically expanded and evaluated in the C++ front end. By the time the rest of the compiler sees the program, it s just a C program. The only unique feature in C++ that remains after the front end is exception handling. All the templating is extremely useful for reducing the number of times you have to write an axpy kernel for different data types (float, double, complex, ), but it doesn t increase your expressivity, that is, it doesn t let you write anything you couldn t have written in a C library, however painfully. Michael Wolfe* *Michael Wolfe has developed compilers for over 35 years in both academia and industry, and is now a PGI compiler engineer at NVIDIA Corporation Krzysztof Banaś Obliczenia równoległe 7

Motywacja Krzysztof Banaś Obliczenia równoległe 8

Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 9

Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie dostępnej współbieżności w trakcie realizacji programu określenie koniecznej synchronizacji lub wymiany komunikatów pomiędzy procesami lub wątkami realizującymi program Pierwszy z tych kroków często ma charakter bardziej twórczy, drugi bardziej techniczny (zakłada znajomość modelu programowania) Jednym z najważniejszych wymagań stawianych programom równoległym jest przenośność możliwość uruchomienia na maszynie o dowolnej liczbie procesorów/rdzeni liczba wątków/procesów staje się parametrem programu Krzysztof Banaś Obliczenia równoległe 10

Metodologia programowania równoległego Przydatnym sposobem ujęcia metodologii programowania równoległego jest wyróżnienie pięciu podstawowych zadań, które muszą zostać zrealizowane przy tworzeniu programu równoległego: podział (dekompozycja) zadania obliczeniowego na podzadania odwzorowanie zadań na procesy i wątki oraz dalej na elementy przetwarzania: węzły, multi procesory, procesory (rdzenie) podział (dystrybucja) danych pomiędzy elementy pamięci związane z elementami przetwarzania (uwzględniając hierarchię pamięci) określenie koniecznej wymiany danych między procesami (wątkami) oraz odwzorowanie jej na sieć połączeń między procesorami (rdzeniami) określenie koniecznej synchronizacji między zadaniami (=wątkami (procesami) ) Krzysztof Banaś Obliczenia równoległe 11

Metodologia programowania równoległego Wygodnym sposobem uporządkowania procesu tworzenia programów równoległych jest ujęcie go w ramy specyficznej metodologii Jedną z takich metodologii jest PCAM (Foster 1985) Kolejne litery oznaczają kroki przy tworzeniu programu: P partition, podział zadania na podzadania C communicate, określenie niezbędnej komunikacji, podział danych na wspólne i prywatne, określenie sposobu korzystania z danych, synchronizacja operacji na danych A agglomerate, analiza wariantów podziału M map, uwzględnienie ostatecznej implementacji, odwzorowania na architekturę sprzętu Pierwsze dwa kroki zmierzają do stworzenia poprawnego programu równoległego, kolejne dwa do jego optymalizacji Krzysztof Banaś Obliczenia równoległe 12

Metodologia programowania równoległego Wzorce programowania równoległego Zarządca wykonawcy (manager worker, master slave) Dziel i rządź (divide and conquer) i inne wersje dynamicznego, rekursywnego zarządzania obliczeniami (recursive splitting np. fork join) Zrównoleglenie pętli (loop parallelism) Przetwarzanie potokowe (pipelining) Agenci (software agents), aktorzy (actors), przetwarzanie sterowane zdarzeniami (discrete event) Map Reduce i wiele innych Wzorce są ogólnymi wskazówkami rozwiązania problemu dekompozycji zadania na równoległe pod zadania, konkretne programy mogą realizować wiele, często odpowiednio zmodyfikowanych, wzorców Krzysztof Banaś Obliczenia równoległe 13

Metodologia programowania równoległego Krzysztof Banaś Obliczenia równoległe 14