Obliczenia rozproszone z wykorzystaniem MPI
|
|
- Julian Kasprzak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Obliczenia rozproszone z wykorzystaniem Zarys wst u do podstaw :) Zak lad Metod Obliczeniowych Chemii UJ 8 sierpnia 2005
2 1 e konkretniej Jak szybko, i czemu tak wolno? 2 e szczegó lów 3 Dyspozytor Macierz g estości Obliczenia rozproszone z wykorzystaniem
3 Co? e konkretniej Jak szybko, i czemu tak wolno? Technika programowania pozwalajaca na równoczesne wykonywanie operacji poprzez jeden lub wiecej komputerów Programowanie rozproszone Rodzaj programowania równoleg lego, wyróżniajacy sie tym że procesory nie maja wspólnej pamieci operacyjnej Obliczenia rozproszone z wykorzystaniem
4 Po co? e konkretniej Jak szybko, i czemu tak wolno? Żeby przyspieszyć obliczenia oczywiście! Ale też żeby by lo taniej Obliczenia rozproszone z wykorzystaniem
5 Jak? e konkretniej Jak szybko, i czemu tak wolno? Weź kop e procesorów Po l acz je jakoś I weź kogoś kto zrównolegli kod Obliczenia rozproszone z wykorzystaniem
6 Architektura e konkretniej Jak szybko, i czemu tak wolno? Jest tego sporo... Systemy ze wspólna pamieci a Symmetric Multiprocessing (SMP) Non-Uniform Memory Architecture (NUMA) Klastry Inne rozwiazania (w tym hybrydowe) Ale... My si e zajmiemy klastrami To samo podejście dzia la na NUMA Na SMP w laściwie też, ale nie jest optymalne Obliczenia rozproszone z wykorzystaniem
7 Model programowy e konkretniej Jak szybko, i czemu tak wolno? Tak w ogóle Możliwości jest sporo My zajmiemy sie tylko jedna SPMD Single Program Multiple Data (SPMD) Wszystkie procesory wykonuja ten sam program, ale każdy z nich na w lasnych danych. Obliczenia rozproszone z wykorzystaniem
8 SPMD I e konkretniej Jak szybko, i czemu tak wolno? Obliczenia rozproszone z wykorzystaniem
9 SPMD II e konkretniej Jak szybko, i czemu tak wolno? 1 Bloki szeregowe wykonywane niezależnie przez każdy w eze l 2 W blokach równoleg lych każdy w eze l wykonuje jedynie cz eść obliczeń 3 W ilogu bloku równoleg lego nast uje redukcja Obliczenia rozproszone z wykorzystaniem
10 Marzenia a rzeczywistość e konkretniej Jak szybko, i czemu tak wolno? Uruchamiajac obliczenia na n procesorach, chcielibyśmy żeby by ly wykonane n razy szybciej. Niestety, rzadko kiedy tak jest. Czasami zwi ekszenie n może spowodować wyd lużenie obliczeń! Obliczenia rozproszone z wykorzystaniem
11 Prawo Amdahla e konkretniej Jak szybko, i czemu tak wolno? Przyspieszenie dzia lania programu wynikajace z jego zrównoleglenia wynosi co najwyżej I = ( f + 1 f ) 1 n gdzie f to szeregowa cz eść obliczeń a n to liczba procesorów. Obliczenia rozproszone z wykorzystaniem
12 A poza tym... e konkretniej Jak szybko, i czemu tak wolno? Z le wiadomości Narzut na komunikacj e Nieoptymalny podzia l problemu Ale jest też dobra Hypercache Obliczenia rozproszone z wykorzystaniem
13 Co? e szczegó lów Message Passing Interface () Specyfikacja biblioteki przesy lania komunikatów dla potrzeb programowania równoleg lego. Kluczowe cechy Otwarta specyfikacja Przenośność Wydajność Zestandaryzowane interfejsy dla FORTRANu, C, C++ Istniejace interfejsy do wielu innych jezyków De facto standard dla implementacji obliczeń rozproszonych. Obliczenia rozproszone z wykorzystaniem
14 Skad to wziać e szczegó lów Powszechnie używane, bezp latne implementacje: LAM/ ( CH ( Open ( chociaż na razie we wczesnej fazie rozwoju, powinno w nied lugim czasie do l aczyć do tej listy Komercyjne, wyspecjalizowane implementacje, czesto do l aczane przez producentów systemów wieloprocesorowych/rozproszonych Obliczenia rozproszone z wykorzystaniem
15 Co za dużo to niezdrowo e szczegó lów jest dość rozbudowane, dlatego ogranicz e si e do Tylko C++ Tylko funkcje najbardziej niezb edne w typowym kodzie kwantowochemicznym Obliczenia rozproszone z wykorzystaniem
16 e szczegó lów Najważniejsze to dobrze zaczać (i niegorzej skończyć) Funkcja 1 Init (int argc, char* argv []) musi być wywo lana przed wywo laniem jakiejkolwiek innej funkcji. Przed zakończeniem programu musi być wywo lana funkcja Finalize (), W przypadku b l edu uniemożliwiajacego poprawne zakończenie należy wywo lać funkcje Abort() 1 Uwaga: wszystkie klasy, funkcje, sta le i zmienne zdefiniowane sa w przestrzeni nazw (namespace). Obliczenia rozproszone z wykorzystaniem
17 Przyk lad e szczegó lów 1 #i n c l u d e < mpicxx. h> 2 3 i n t main ( i n t a r g c, char * argv [ ] ) 4 { 5 : : I n i t ( a r g c, argv ) ; 6 7 / / : : F i n a l i z e ( ) ; 10 } Obliczenia rozproszone z wykorzystaniem
18 Komunikatory e szczegó lów Komunikator to podstawowe pojecie w. Komunikator l aczy grupe procesów, umożliwiajac im wymiane danych i synchronizacje. Istnieja różne rodzaje komunikatorów realizujace różne typy i topologie po l aczeń. My bedziemy sie pos lugiwać tylko jednym predefiniowanym komunikatorem, COMM WORLD, l acz acym wszystkie procesy. Obliczenia rozproszone z wykorzystaniem
19 Podstawowe funkcje e szczegó lów Informacje o środowisku Comm::Get size() zwraca liczb e procesów Comm::Get rank() zwraca numer procesu (od 0 do Comm::Get size() 1) Redukcja Allreduce (void* operand, void* result, int count, Datatype datatype, Op op) powoduje wykonanie operacji na wszystkich wynikach cz eściowych wskazywanych przez operand; wynik jest umieszczany pod adresem wskazywanym przez result Obliczenia rozproszone z wykorzystaniem
20 Interfejs dyspozytora niedoidy Dyspozytor Macierz g estości 1 c l a s s D i s p a t c h e r : boost : : noncopyable { 2 p u b l i c : 3 typedef 4 s t d : : p a i r<unsigned long, unsigned long > Range ; 5 6 typedef boost : : o p t i o n a l<range> T a s k I n f o ; 7 8 v i r t u a l D i s p a t c h e r ( ) { } 9 10 v i r t u a l T a s k I n f o g e t t a s k ( ) = 0 ; 11 } ; Obliczenia rozproszone z wykorzystaniem
21 Prosty dyspozytor - interfejs Dyspozytor Macierz g estości 1 c l a s s S t a t i c D i s p a t c h e r : p u b l i c D i s p a t c h e r { 2 p u b l i c : 3 S t a t i c D i s p a t c h e r ( unsigned long n ) ; 4 5 T a s k I n f o g e t t a s k ( ) ; 6 7 p r i v a t e : 8 unsigned long m n0 ; 9 unsigned long m n1 ; 10 } ; Obliczenia rozproszone z wykorzystaniem
22 Dyspozytor Macierz g estości Prosty dyspozytor - implementacja I 1 S t a t i c D i s p a t c h e r : : S t a t i c D i s p a t c h e r ( unsigned long n ) 2 { 3 const unsigned rank = : :COMM WORLD. Get rank ( ) ; 4 const unsigned s i z e = : :COMM WORLD. G e t s i z e ( ) ; 5 const unsigned long k = n / s i z e ; 6 const unsigned long l = n % s i z e ; 7 i f ( rank < l ) { 8 m n0 = rank * ( k + 1 ) ; 9 m n1 = ( rank + 1 ) * ( k + 1 ) ; 10 } e l s e { 11 m n0 = rank * k + l ; 12 m n1 = ( rank + 1 ) * k + l ; 13 } 14 } Obliczenia rozproszone z wykorzystaniem
23 Dyspozytor Macierz g estości Prosty dyspozytor - implementacja II 1 D i s p a t c h e r : : T a s k I n f o S t a t i c D i s p a t c h e r : : g e t t a s k ( ) 2 { 3 i f ( m n1 == 0) 4 return T a s k I n f o ( ) ; 5 6 const Range t a s k ( m n0, m n1 ) ; 7 m n0 = 0 ; 8 m n1 = 0 ; 9 10 return t a s k ; 11 } Obliczenia rozproszone z wykorzystaniem
24 Prosty dyspozytor - uwagi Dyspozytor Macierz g estości Naiwny algorytm Można próbować liej, biorac wagi oparte na wzglednej szybkości wez lów Albo przydzielać zadania dynamicznie Obliczenia rozproszone z wykorzystaniem
25 Dyspozytor Macierz g estości Macierz g estości - wersja szeregowa 1 f o r ( unsigned i = 0 ; i < n; ++ i ) 2 f o r ( unsigned k = 0 ; k < n; ++k ) 3 f o r ( unsigned l = 0 ; l <= k; ++ l ) 4 P( k, l ) += occ ( i ) * C( k, i ) * C( l, i ) ; 5 6 return P ; Obliczenia rozproszone z wykorzystaniem
26 Dyspozytor Macierz g estości Macierz gestości - wersja równoleg la - obliczenia czastkowe 1 { 2 s t d : : a u t o p t r<d i s p a t c h e r > d = d i s p a t c h e r ( n ) ; 3 4 while ( D i s p a t c h e r : : T a s k I n f o t a s k i n f o = 5 d >b e g i n t a s k ( ) ) { 6 f o r ( unsigned i = t a s k i n f o >f i r s t ; 7 i < t a s k i n f o >second ; ++ i ) 8 f o r ( unsigned k = 0 ; k < n; ++k ) 9 f o r ( unsigned l = 0 ; l <= k; ++ l ) 10 P( k, l ) += 11 occ ( i ) * C( k, i ) * C( l, i ) ; 12 } 13 } Obliczenia rozproszone z wykorzystaniem
27 Dyspozytor Macierz g estości Macierz g estości - wersja równoleg la - redukcja 1 u b l a s : : s y m m e t r i c m a t r i x<double> reduced P = 2 u b l a s : : z e r o m a t r i x<double>(n ) ; 3 4 : :COMM WORLD. A l l r e d u c e (P. data ( ). b e g i n ( ), 5 reduced P. data ( ). b e g i n ( ), 6 ( n * ( n + 1 ) ) / 2, 7 : : DOUBLE, : : SUM) ; 8 9 return reduced P ; Obliczenia rozproszone z wykorzystaniem
Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
Operacje grupowego przesyłania komunikatów. Krzysztof Banaś Obliczenia równoległe 1
Operacje grupowego przesyłania komunikatów Krzysztof Banaś Obliczenia równoległe 1 Operacje grupowego przesyłania komunikatów Operacje, w ramach których ten sam komunikat lub zbiór komunikatów przesyłany
Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ
Jeszcze o funkcjach i strukturze projektu Zak lad Chemii Teoretycznej UJ 3 grudnia 2008 1 2 3 4 5 typedef Plan typedef specyfikator typu nazwa S luży do stworzenia nowej nazwy dla jakiegoś typu. Nazwa
Paradygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Systemy Operacyjne - Operacje na plikach
Systemy Operacyjne - Operacje na plikach Andrzej Stroiński Institute of Computer Science Poznań University of Technology 1 październik, 2012 Wprowadzenie do ANSI-C Pomoc systemowa man gcc man 2 write man
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional
Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007
Zak lad Metod Obliczeniowych Chemii UJ 14 marca 2007 Rzad 1 Zamiast wst epu 2 Rzad Notacja dużego O Notacja Ω Notacja Θ 3 S lowniczek Rzad Algorytm W matematyce oraz informatyce to skończony, uporzadkowany
Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology
Funkcje Piotr Zierhoffer Institute of Computer Science Poznań University of Technology 7 października 2012 Funkcje Funkcja podprogram. Nazwany blok kodu realizujacy jakieś zadanie. sin(x), arccos(x), min(a,
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 W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie
Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe Wykład 5 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Dorobiliśmy się strony WWW www.ift.uni.wroc.pl/~koma/pr/index.html MPI, wykład 2. Plan: - komunikacja
Programowanie generyczne w C++
Bardzo szablonowa prezentacja Zak lad Metod Obliczeniowych Chemii UJ 1 wrzesnia 2005 1 2 3 4 Co to jest? Przyk lad Zastosowania 5 S lowniczek Plan Programowanie generyczne Polega na mo_zliwosci deniowania
Operacje grupowego przesyłania komunikatów
Operacje grupowego przesyłania komunikatów 1 Operacje grupowego przesyłania komunikatów Operacje, w ramach których ten sam komunikat lub zbiór komunikatów przesyłany jest pomiędzy więcej niż dwoma procesami
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 W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie
Rozdzia l 3. Laboratorium 3. danych zawierajac
Rozdzia l 3 Laboratorium 3 3.1. Tablice Tablica jest struktura danych zawierajac a zmienne tego samego typu. CLR środowiska.net Framework wspiera tworzenie tablic jedno oraz wielo wymiarowych. 3.1.1. Tablice
Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1
Programowanie w modelu przesyłania komunikatów specyfikacja MPI Krzysztof Banaś Obliczenia równoległe 1 Model przesyłania komunikatów Paradygmat send receive wysyłanie komunikatu: send( cel, identyfikator_komunikatu,
Wieloprogramowy system komputerowy
Wieloprogramowy system komputerowy sprzet: procesor(y), pamieć(i), lacza i magistrale komunikacyjne, urzadzenia wejścia/wyjścia system operacyjny obs luguje i zarzadza sprzetem, umożliwia prace i korzystanie
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014. Forma studiów: Stacjonarne Kod kierunku: 06.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 201/201 Kierunek studiów: Mechatronika Profil: Ogólnoakademicki
Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe Wykład 4 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Jak używać w MPI? Donald Knuth: We should forget about small efficiencies, say about 97% of
Programowanie współbieżne... (4) Andrzej Baran 2010/11
Programowanie współbieżne... (4) Andrzej Baran 2010/11 LINK: http://kft.umcs.lublin.pl/baran/prir/index.html Przykład Zaczniemy od znanego już przykładu: Iloczyn skalarny różne modele Programowanie współbieżne...
Ghost in the machine
Operacje na pami eci i odrobina I/O Zak lad Chemii Teoretycznej UJ 8 stycznia 2007 Funkcje operujace Wstep do operacji I/O na plikach 1 Operacje na pami eci 2 Funkcje operujace 3 Wst Funkcje operujace
HPC na biurku. Wojciech De bski
na biurku Wojciech De bski 22.01.2015 - co to jest? High Performance Computing most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one
Here comes the sun. Wyk lad niesystematyczny. Marcin Makowski. 24 października Zak lad Chemii Teoretycznej UJ
Wyk lad niesystematyczny Zak lad Chemii Teoretycznej UJ 24 października 2008 Przeglad jezyka Gdzie szukać narzedzi i informacji? 1 Wst ep 2 3 Przeglad jezyka 4 Gdzie szukać narz Przeglad jezyka Gdzie szukać
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp
Wskaźniki, funkcje i tablice
, funkcje i tablice Zak lad Chemii Teoretycznej UJ 20 listopada 2008 wielowymiarowe 1 2 3 4 wielowymiarowe, funkcje i tablice Czym sa wskaźniki? Plan wielowymiarowe Zmienne wskaźnikowe wskazuja na inne
Systemy rozproszone. Państwowa Wyższa Szkoła Zawodowa w Chełmie. ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej w Lublinie
Systemy rozproszone Rafał Ogrodowczyk *, Krzysztof Murawski **,*, Bartłomiej Bielecki * * Katedra Informatyki Państwowa Wyższa Szkoła Zawodowa w Chełmie ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 06.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013 Kierunek studiów: Mechatronika Profil: Ogólnoakademicki
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Niestacjonarne Kod kierunku: 11.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Instytut Techniczny Karta przedmiotu obowiązuje studentów rozpoczynających studia w roku akademickim 01/013 Kierunek studiów: Informatyka Profil: Ogólnoakademicki
Paradygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2016 2 Spis treści 1. Zadanie 3 5 1.1. Wprowadzenie.................................. 5 1.2. Obiekty funkcyjne................................
Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ
Zak lad Chemii Teoretycznej UJ 26 listopada 2007 wielowymiarowe 1 2 wielowymiarowe 3 Typ tablicowy Plan wielowymiarowe Tablica Zajmujacy spójny obszar w pamieci zestaw zmiennych (obiektów) tego samego
Paradygmaty programowania
Paradygmaty programowania Programowanie generyczne w C++ Dr inż. Andrzej Grosser Cz estochowa, 2014 2 Spis treści 1. Zadanie 4 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do
Dr inż. hab. Siergiej Fialko, IF-PK,
Dr inż. hab. Siergiej Fialko, IF-PK, http://torus.uck.pk.edu.pl/~fialko sfialko@riad.pk.edu.pl 1 Osobliwości przedmiotu W podanym kursie główna uwaga będzie przydzielona osobliwościom symulacji komputerowych
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Architektura systemów komputerowych
Architektura systemów komputerowych Grzegorz Mazur Zak lad Metod Obliczeniowych Chemii Uniwersytet Jagielloński 19 kwietnia 2011 Grzegorz Mazur (ZMOCh UJ) Architektura systemów komputerowych 19 kwietnia
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna zwraca wartość 1(czasamiNULL) iprzypisujezmiennej zewn etrznej,
c Wies law P laczek 3 1 Obs luga b l edów Wwi ekszości przypadków wywo lanie systemowe (funkcja systemowa) lub funkcja biblioteczna kończ ac si e b l edem zwraca 1(czasamiNULL) iprzypisujezmiennej zewn
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017. Forma studiów: Niestacjonarne Kod kierunku: 11.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 206/207 Kierunek studiów: Informatyka Profil: Praktyczny
Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm
Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm Streszczenie Tematem pracy jest standard OpenMP pozwalający na programowanie współbieŝne w systemach komputerowych
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 W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie
Równoleg le sortowanie przez scalanie
Równoleg le sortowanie przez scalanie Bartosz Zieliński 1 Zadanie Napisanie programu sortuj acego przez scalanie tablicȩ wygenerowanych losowo liczb typu double w którym każda z procedur scalania odbywa
Równoległość i współbieżność
Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna
Równoległość i współbieżność
Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna
DYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1 Wprowadzenie Procesory graficzne GPU (Graphics Processing Units) stosowane są w kartach graficznych do przetwarzania grafiki komputerowej
Normy wektorów i macierzy
Rozdzia l 3 Normy wektorów i macierzy W tym rozdziale zak ladamy, że K C. 3.1 Ogólna definicja normy Niech ψ : K m,n [0, + ) b edzie przekszta lceniem spe lniaj acym warunki: (i) A K m,n ψ(a) = 0 A = 0,
Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy
Symetria w obliczeniach molekularnych
Zak lad Metod Obliczeniowych Chemii UJ 15 marca 2005 1 2 Możliwości przyspieszenia obliczeń 3 GAMESS 2004 4 Zastosowania symetrii Zmniejszenie zapotrzebowania na zasoby (procesor, pami eć, dysk) Utrzymanie
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
przerwany proces móg l zareagować na określone zdarzenie. Można je traktować jako software owe wersje przerwań sprz etowych.
c Wies law P laczek 9 3 Sygna ly 3.1 Opis sygna lów Najprostsz ametod akomunikacjimi edzyprocesowej w systenie UNIX s sygna ly. Umożliwiaj aoneasynchroniczne przerwanie dzia lania procesu przez inny proces
Funkcje systemu Unix
Funkcje systemu Unix Witold Paluszyński witold@ict.pwr.wroc.pl http://sequoia.ict.pwr.wroc.pl/ witold/ Copyright c 2002 2005 Witold Paluszyński All rights reserved. Niniejszy dokument zawiera materia ly
Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1
Programowanie w modelu przesyłania komunikatów specyfikacja MPI, cd. Krzysztof Banaś Obliczenia równoległe 1 MPI dynamiczne zarządzanie procesami MPI 2 umożliwia dynamiczne zarządzanie procesami, choć
Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Programowanie procesorów graficznych GPGPU
Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja
Programowanie współbieżne Wykład 11 Wprowdzenie do MPI. Rafał Skinderowicz
Programowanie współbieżne Wykład 11 Wprowdzenie do MPI Rafał Skinderowicz Programowanie dla modelu z rozproszoną pamiecią Niezależne strumienie instrukcji wykonywane na (być może) oddalonych fizycznie
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 11.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 01/013 Kierunek studiów: Informatyka Profil: Ogólnoakademicki
Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski
Jak ujarzmić hydrę czyli programowanie równoległe w Javie dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski Prawo Moore a Ekonomicznie optymalna liczba tranzystorów w układzie scalonym zwiększa się
Wieloprogramowy system komputerowy
Wieloprogramowy system komputerowy sprzet: procesor(y), pamieć(i), lacza i magistrale komunikacyjne, urzadzenia wejścia/wyjścia system operacyjny obs luguje i zarzadza sprzetem, umożliwia prace i korzystanie
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw
Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015. Forma studiów: Stacjonarne Kod kierunku: 06.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 201/2015 Kierunek studiów: Zarządzanie i inżynieria
wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................
Przykład MPI: zbiór Mandelbrota
Przykład MPI: zbiór Mandelbrota 1 Zbiór Mandelbrota Zbiór punktów na płaszczyźnie zespolonej, które są quasi-stabilne, kiedy są iterowane funkcją: z k 1 = z k 2 c gdzie z k+1 wartość zespolona w k+1 iteracji,
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ. Ewa Madalińska. na podstawie prac:
SYSTEM DIAGNOSTYCZNY OPARTY NA LOGICE DOMNIEMAŃ Ewa Madalińska na podstawie prac: [1] Lukaszewicz,W. (1988) Considerations on Default Logic: An Alternative Approach. Computational Intelligence, 44[1],
Nowoczesne technologie przetwarzania informacji
Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego
Wstęp do programowania 1
Wstęp do programowania 1 Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Struktura dla dat - przykład #include struct Date { int y; short m; short
Programowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Uzupełnienie dot. przekazywania argumentów
Uzupełnienie dot. przekazywania argumentów #include #include struct nowa { int f; char line[20000]; int k; } reprezentant; int main() { void funkcja7( struct nowa x); reprezentant.k=17;
main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!
Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje
Jeden przyk lad... czyli dlaczego warto wybrać MIESI.
Jeden przyk lad... czyli dlaczego warto wybrać MIESI. Micha l Ramsza Szko la G lówna Handlowa Micha l Ramsza (Szko la G lówna Handlowa) Jeden przyk lad... czyli dlaczego warto wybrać MIESI. 1 / 13 Dlaczego
Obsługa wyjątków. Język C++ WW12
Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try
Wstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.
12. Rekurencja. Funkcja rekurencyjna funkcja, która wywołuje samą siebie. Naturalne postępowanie: np. zbierając rozsypane pionki do gry podnosi się zwykle pierwszy, a potem zbiera się resztę w ten sam
z powielaniem wielu struktur danych oraz komunikacja
c Wies law P laczek 28 8 Watki 8.1 Wprowadzenie Wiele rozwiazywanych problemów można podzielić na zadania czastkowe, które daja sie wykonać niemal niezależnie. Każde z takich zadań można by powierzyć oddzielnemu
Programowanie Równoległe Wykład 5. MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe Wykład 5 MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej MPI, wykład 3. Plan: - wirtualne topologie - badanie skalowanie czasu rozwiązania
Zaawansowane programowanie w C++
Zaawansowane programowanie w C++ Micha l Tanaś, PhD Adam Mickiewicz University, Faculty of Physics http://www.amu.edu.pl/~mtanas Michal.Tanas@amu.edu.pl Wykonanie klasycznego programu System operacyjny
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 201/2016 Kierunek studiów: Informatyka Profil: Ogólnoakademicki
Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY
Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY Nazwisko Imię album termin zajęć Marek Lewandowski 59817 Maciej Mietliński 59832 poniedziałek 18:30 tydzień nieparzysty
Wprowadzenie do programowania współbieżnego
Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie
MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca 2011. Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16
MMX i SSE Zbigniew Koza Wydział Fizyki i Astronomii Uniwersytet Wrocławski Wrocław, 10 marca 2011 Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16 Spis treści Spis treści 1 Wstęp Zbigniew Koza (WFiA UWr) MMX
Zastosowanie Robotów. Ćwiczenie 6. Mariusz Janusz-Bielecki. laboratorium
Zastosowanie Robotów laboratorium Ćwiczenie 6 Mariusz Janusz-Bielecki Zak lad Informatyki i Robotyki Wersja 0.002.01, 7 Listopada, 2005 Wst ep Do zadań inżynierów robotyków należa wszelkie dzia lania
Ćwiczenie nr 520: Metody interpolacyjne planowania ruchu manipulatorów
Zak lad Podstaw Cybernetyki i Robotyki PWr, Laboratorium Robotyki, C-3, 010 Ćwiczenie nr 520: Metody interpolacyjne planowania ruchu manipulatorów 1 Wst ep Celem ćwiczenia jest zapoznanie studentów z metodami
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Wykorzystanie platformy GPGPU do prowadzenia obliczeń metodami dynamiki molekularnej
Wykorzystanie platformy GPGPU do prowadzenia obliczeń metodami dynamiki molekularnej 30 maj 2011, Kraków 1 z 22 POWIEW Program Obliczeń Wielkich Wyzwań Nauki i Techniki Celem jest udostepnienie w polskich
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Projektowanie klas c.d. Projektowanie klas przykład
Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej
pami eć operacyjna przechowuje dane do przetworzenia, tymczasowe dane pomocnicze,
16 3 Procesy 3 Procesy Pojecie procesu jest kluczowe dla zrozumienia funkcjonowania wielozadaniowych systemów operacyjnych. Trudność w zrozumieniu tego pojecia i tym samym zg lebienie mechanizmu obs lugi
Rekurencja. Przygotowała: Agnieszka Reiter
Rekurencja Przygotowała: Agnieszka Reiter Definicja Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
4.2 Sposób korzystania z l acza
4.2 Sposób korzystania z l acza 31 Opis programu: Program procesu potomnego (linie 16 19) jest taki sam, jak w przyk ladzie na listingu 3. W procesie macierzystym nastepuje z kolei przekierowanie standardowego
Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1
Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące
Wyk lad 7: Drzewa decyzyjne dla dużych zbiorów danych
Wyk lad 7: Drzewa decyzyjne dla dużych zbiorów danych Funkcja rekurencyjna buduj drzewo(u, dec, T): 1: if (kryterium stopu(u, dec) = true) then 2: T.etykieta = kategoria(u, dec); 3: return; 4: end if 5:
Programowanie w standardzie MPI
Programowanie w standardzie MPI 1 2 Podstawy programowania z przesyłaniem komunikatów Model systemu równoległego w postaci p procesów, każdy z nich z własną przestrzenią adresową, nie współdzieloną z innymi
Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1
Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)
Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Prawo pracy i prawo urzędnicze. Przedmioty kierunkowe
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Ekonomiczny obowiązuje studentów rozpoczynających studia w roku akademickim 01/016 Kierunek studiów: e-administracja Forma studiów: