Programowanie współbieżne... (1) Andrzej Baran 2010/11

Podobne dokumenty
Nowoczesne technologie przetwarzania informacji

Algorytmy i Struktury Danych

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

16. Taksonomia Flynn'a.

Obliczenia Wysokiej Wydajności

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.

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

Obliczenia Wysokiej Wydajności

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

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

Architektura komputerów

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

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

O superkomputerach. Marek Grabowski

Podstawy Informatyki Systemy sterowane przepływem argumentów

Programowanie współbieżne... (2)

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

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

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.

Field of study: Computational Engineering Study level: First-cycle studies Form and type of study: Full-time studies. Auditorium classes.

Programowanie współbieżne i rozproszone

3.Przeglądarchitektur

Architektura komputerów

Budowa Mikrokomputera

Analiza ilościowa w przetwarzaniu równoległym

Technika mikroprocesorowa

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

Architektura komputerów

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

Co to jest lista top500. Omów mikrotechnologię Core

Architektura potokowa RISC

Budowa komputera Komputer computer computare

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

dr inż. Jarosław Forenc

Równoległość i współbieżność

Równoległość i współbieżność

Architektura Komputerów

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Komputery równoległe. Zbigniew Koza. Wrocław, 2012

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

Projektowanie. Projektowanie mikroprocesorów

Introduction to Computer Science

Algorytmy dla maszyny PRAM

Wykład 2 Podstawowe pojęcia systemów równoległych, modele równoległości, wydajność obliczeniowa, prawo Amdahla/Gustafsona

Przetwarzanie potokowe pipelining

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

Analiza efektywności przetwarzania współbieżnego

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

WYBRANE ZAGADNIENIA PRZETWARZANIA RÓWNOLEGŁEGO I ROZPROSZONEGO ORAZ KLASTRÓW KOMPUTEROWYCH

GRIDY OBLICZENIOWE. Piotr Majkowski

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

Architektura mikroprocesorów TEO 2009/2010

Systemy wieloprocesorowe i wielokomputerowe

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

3.Przeglądarchitektur

Wprowadzenie do architektury komputerów. Taksonomie architektur Podstawowe typy architektur komputerowych

Programowanie procesorów graficznych GPGPU

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

Technologie Informacyjne Wykład 2

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Wprowadzenie do systemów wieloprocesorowych

Programowanie Rozproszone i Równoległe. Edward Görlich goerlich@th.if.uj.edu.pl

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Porównaj CISC, RISC, EPIC.

SSE (Streaming SIMD Extensions)

Podstawy programowania obliczeń równoległych

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Systemy operacyjne III

Dostęp do europejskich systemów obliczeniowych Tier-0 w ramach PRACE

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Pojęcia podstawowe. Oprogramowanie systemów równoległych i rozproszonych. Wykład 1. Klasyfikacja komputerów równoległych I

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

Witold Komorowski: RISC. Witold Komorowski, dr inż.

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

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

Budowa przełączników modularnych. Piotr Głaska Senior Product Manager Enterprise Networking Solutions

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Jacek Naruniec. lato 2014, Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych

HPC na biurku. Wojciech De bski

Studia II stopnia. studia stacjonarne. wspólny dla kierunku. Zakład Fizyki Jądrowej

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM

PRZEWODNIK PO PRZEDMIOCIE

Podstawy architektury systemów równoległych opartych na równoległoci danych,

Programowanie współbieżne Wykład 1. Rafał Skinderowicz

Architektura von Neumanna

Programowanie Współbieżne. Wstęp

Kierunek: Informatyka Stosowana Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. Wykład Ćwiczenia

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Transkrypt:

Programowanie współbieżne... (1) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html

Uwagi wstępne OR = obliczenia równoległe OW = obliczenia współbieżne W czasie wykładu zajmiemy się następującymi zagadnieniami: Programowanie równoległe (współbieżne) na klastry komputerowe - zespoły połączonych komputerów, pracujące wspólnie nad jednym zadaniem obliczeniowym. Języki programowania: FORTRAN, C++ (Java wątki) Algorytmy równoległe (wybrane) Sposoby realizacji obliczeń MPI (Message Passing Interface) OpenMP Wątki (Java) Programowanie współbieżne... 2

Literatura Karniadakis, Kirby. Parallel scientific computing in C++ and MPI. Cambridge, 2003. RS/6000 SP: Practical MPI Programming (sieć) Introduction to MPI PACS Training Group (sieć) MPICH http://wwwunix.mcs.anl.gov/mpi/mpich/ C, C++ oraz FORTRAN z MPI-1.2 http://www.lam-mpi.org/tutorials/bindings/ Programowanie współbieżne... 3

Literatura (cd) MPIhttp://www.netlib.org/utk/papers/mpi-book/mpibook.html MPI Home http://www.mpi-forum.org/ http://www-unix.mcs.anl.gov/mpi/ Programowanie współbieżne... 4

Pierwsze OR...? Stanley Phillips "Stan" Frankel (1919 1978) was an American computer scientist. He was born in Los Angeles, received his PhD in physics from the University of Rochester, and began his career as a post-doc student under J. Robert Oppenheimer at University of California, Berkeley in 1942. Frankel helped develop computational techniques used in the nuclear research taking place at the time. He joined the theoretical division of the Manhattan Project at Los Alamos in 1943. While there, he organized teams of persons (known as "computers") using electromechanical calculators to divide the massive calculations required for the project into manageable assembly line groups. Even that proved too slow, and Frankel turned to IBM tabulating machines to help process the numbers. This research led to his interest in the then-dawning field of digital computers. In August 1945, Frankel and Nick Metropolis traveled to the Moore School of Engineering in Pennsylvania to learn how to program the ENIAC computer. That fall they helped design a calculation that would determine the likelihood of being able to develop a fusion weapon. Edward Teller used the ENIAC results to prepare a report in the spring of 1946 that answered this question in the affirmative. (Wikipedia) Programowanie współbieżne... 5

Feynman Feynman, w książce Pan raczy żartować, panie Feynman (Znak, Kraków, 1996) pisze,...uznaliśmy, że główne zagadnienie czyli dokładne określenie, co się dzieje podczas implozji bomby, żeby można było ustalić, ile powstaje energii i tak dalej wymaga znacznie większej ilości obliczeń, niż my byliśmy w stanie przeprowadzić. Pewien niegłupi facet, Stanley Frenkel wpadł na pomysł, że można by użyć maszyn IBM. Firma IBM robiła maszyny liczące do celów rachunkowości, na przykład tzw. tabulatory do sumowania czy mnożarki, do których wkładalo się kartę, a one brały dwie liczby z karty i przemnażały je przez siebie. Były też kolatory, sortery itd. Frenkel wykoncypował sprytny program. Gdyby zgromadzić wystarczającą liczbę tych maszyn w jednym pomieszczeniu, można by przepuszczać karty przez cały cykl operacji. (...) Przedtem próbowaliśmy czegoś takiego z samymi maszynami dodającymi, ale każdy sam wykonywał wszystkie kroki. Frenkel opracował cały system i zamówił maszyny u IBM, ponieważ zdaliśmy sobie sprawę, że to dobry sposób na rozwiązanie naszych problemów. (...) opracowaliśmy wszystkie numeryczne kroki, które miały wykonać maszyny pomnożyć, dodać, odjąć i mieliśmy cały program gotowy, ale nie było jeszcze maszyn. Posadziliśmy więc w jednym pomieszczeniu dziewczyny z Marchantem (maszyny liczące, [ab]), każda od innego działania. Jedna na przykład tylko podnosiła do sześcianu dostawała na karcie liczbę, podnosiła ją do sześcianu i podawałą następnej dziewczynie. (...) Okazało się, że liczy się w ten sposób dużo szybciej niż dawnym systemem, w którym każdy sam wykonywał wszystkie działania. Programowanie współbieżne... 6

Do czego potrzebne są OR? Projektowanie obwodów VLSI Aplikacje CAD/CAM Rozwiązywanie problemów polowych (dynamika strukturalna, badania materiałowe i jądrowe, układy cząstek) Przewidywanie pogody Systemy inteligentne Modelowanie (ekonomia, planowanie itd) Opracowywanie danych satelitarnych (...) Problemy energetyki jądrowej Reakcje chemiczne i jądrowe Aktywność sejsmiczna Ziemi Problemy genetyki inne Programowanie współbieżne... 7

Najszybsze komputery świata Top500: http://www.top500.org/ Jaguar: http://computing.ornl.gov/ SciDAC: http://www.scidacreview.org/ Programowanie współbieżne... 8

Architektura komputerów Istnieją dwa główne typy architektury komputerów równoległych: z pamięcią rozproszoną (distributed memory) i z pamięcią dzieloną, wspólną (shared memory) Komputery z pamięcią rozproszoną są w zasadzie komputerami seryjnymi (węzły), które wspólnie rozwiązują dany problem. Każdy węzeł posiada bardzo szybki dostęp do własnej pamięci oraz dostęp do pamięci innych węzłów poprzez specjalną, szybką sieć, poprzez wymienę informacji, komunikatów (messages) z innymi węzłami. W przypadku architektury z pamięcią dzieloną węzły mają dostęp do bardzo szybkiej pamięci wspólnej przez specjalne łącze (szyna danych; bus). Tego rodzaju dostęp do pamięci pozwala procesorom na wymianę i dostęp do danych. W grupie węzłów, która korzysta ze wspólnej pamięci znajduje się typowo kilka kilkanaście (2-16) procesorów. Jest to związane z szerokością pasma przesyłowego szyny danych łączącej procesory. Programowanie współbieżne... 9

Architektura SISD Obliczenia sekwencyjne (potoki) Pobranie instrukcji Dekodowanie instrukcji i obliczenia adresu Pobranie operandu Wykonanie instrukcji Operacje skalarne SISD LOAD R1, A LOAD R2, B MUL R1, R2 LOAD R3, C ADD R1, R3 STORE R1, D SISD = single instruction stream single data stream Programowanie współbieżne... 10

Architektura SIMD Multiprocesory synchroniczne (Array Processors) wszystkie wykonują te same instrukcje na różnych danych; sterowane przez jednostkę centralną; SIMD (single instruction stream with multiple data streams); synchronizacja sprzętowa; Programowanie współbieżne... 11

Architektura SIMD cd. Instrukcje z jednostki kontrolującej (CU) PE + MEM PE + MEM sieć PE + MEM Control Unit (CU) & Scalar processor Programowanie współbieżne... 12

Architektura SIMD cd. Instrukcje z jednostki kontrolującej (CU) PE_1 PE_2 PE_n Sieć (Alignment network) Control Unit (CU) And Scalar processor MEM_1 MEM_2 MEM_k Programowanie współbieżne... 13

Obliczenia SIMD Program SIMD (Operacje wektorowe) PE_1 PE_2 PE_3 LOAD R1, A(1) LOAD R1, A(2) LOAD R1, A(3) LOAD R2, B(1) LOAD R2, B(2) LOAD R2, B(3) MUL R1, R2 MUL R1, R2 MUL R1, R2 LOAD R3, C(1) LOAD R3, C(2) LOAD R3, C(3) ADD R1, R3 ADD R1, R3 ADD R1, R3 MULT R1, D(1) MULT R1, D(2) MULT R1, D(3) Programowanie współbieżne... 14

Przykład obliczeń SISD i SIMD Programowanie współbieżne... 15

Architektury multiprocesorowe MEM MEM 1 MEM 2 MEM n-1... CPU CPU... CPU Common Bus Architecture 16 16 CPU Switch Based Architecture 16 CPU Switch Based Architecture 16 CPU Processor Memory Module Processor Memory Module Processor Memory Module CPU MEM CPU MEM... CPU MEM Connection Network Message Based Architecture Connection Network ME ME... ME M M M Shared Memory & Message Based Architecture Programowanie współbieżne...

Efektywność, wydajność obliczeń Szybkość obliczeń współbieżnych: S=T1/Tn T1 czas wykonania na jednym procesorze Tn cas wykonania na n procesorach n - liczba procesorów TWIERDZENIE: 1 <= S <= n. Programowanie współbieżne... 17

Efektywność, wydajność obliczeń Efektywność (dowolne urządzenie): E = (Energia wykorzystana)/(energia dostarczona) Maksymalna wartość E=1. Maksymalna wartość S=n. W praktyce: E << 1, S<< n Programowanie współbieżne... 18

Prawo Amdahla (Gene Amdahl, 1967) Przyspieszenie obliczeń współbieżnych gdzie f = część (<1) odpowiadająca obliczeniom sekwencyjn (1-f odpowiada tej części programu, ktora daje sie uwspółbieżnić). Programowanie współbieżne... 19

Prawo Amdahla (cd) Dowód. (P = procesor, n = liczba procesorów) T całkowity czas obliczeń na 1P f*t czas obl. sekwencyjnych na 1P (1-f)*T czas obl. równoległych na 1P (1-f)*T/n czas obl. równoległych na np Przyspieszenie: Stąd prawo Amdahla. Programowanie współbieżne... 20

Prawo Amdahla (cd) Wydajność E = S/n (na procesor). Stąd Przy ustalonej wydajności E ułamek f obliczeń sekwencyjnych algorytmu powinien być odwrotnie proporcjonalny do liczby procesorów. (Czas obliczeń sekwencyjnych T*f ~ 1/n) Programowanie współbieżne... 21