Programowanie współbieżne i rozproszone
|
|
- Alina Górska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie współbieżne i rozproszone WYKŁAD 3 Jan Kazimirski 1
2 Literatura 2
3 MPI 2/2 3
4 Komunikacja blokująca Funkcja MPI_Recv działa w trybie blokującym Powrót z MPI_Recv nastąpi dopiero po odebraniu komunikatu Brak pasującego komunikatu spowoduje zawieszenie programu Sposób realizacji funkcji MPI_Recv gwarantuje odebranie komunikatu 4
5 MPI_Send, MPI_Recv 5
6 MPI_Recv Program nie zakończy się 6
7 MPI_Send Działanie funkcji MPI_Send zależy od trybu Tryb buforowany powrót z funkcji następuje po skopiowaniu wysyłanych danych do wewnętrznego bufora MPI Tryb niebuforowany powrót z funkcji następuje dopiero po wysłaniu danych W trybie buforowanym powrót z funkcji MPI_Send nie gwarantuje wysłania komunikatu. 7
8 MPI_Send c.d. Wybór trybu komunikacji (buforowana lub nie) należy do MPI. Programista może narzucić tryb komunikacji zastępując funkcję MPI_Send funkcją: MPI_Ssend nie korzysta z buforowania MPI_Bsend wykorzysta bufor, lub zwróci błąd jeżeli bufor jest zbyt mały 8
9 MPI_Ssend Program nie zakończy się MPI_Ssend 9
10 MPI_Bsend Program zakończy się mimo tego, że komunikat nie został odebrany MPI_Bsend 10
11 Komunikacja asynchroniczna Funkcje MPI_Recv i MPI_Send (MPI_Bsend, MPI_Ssend) działają w trybie synchronicznym. Tryb synchroniczny zwiększa bezpieczeństwo komunikacji, ale powoduje dodatkowe narzuty czasowe i zwiększa ryzyko zakleszczeń Poza komunikacją synchroniczną MPI pozwala na realizację komunikacji w trybie asynchronicznym. Do przekazywania komunikatów w trybie asynchronicznym służą funkcje: MPI_Isend i MPI_Irecv. 11
12 MPI_Isend 12
13 MPI_Irecv 13
14 MPI_Isend/MPI_Irecv Parametry funkcji są analogiczne do ich wersji synchronicznych Parametr request identyfikuje operację Po wywołaniu funkcji sterowanie zwracane jest natychmiast do programu. Powrót z funkcji nie oznacza wykonania operacji przesłania danych 14
15 MPI_Wait / MPI_Test Komunikacja asynchroniczna pozwala programowi wykorzystać czas oczekiwania na zakończenie operacji przesłania. Czasami trzeba określić czy operacja się zakończyła, lub poczekać na jej zakończenie. MPI_Wait blokuje wykonanie programu do czasu zakończenia podanej operacji MPI_Test sprawdza czy dana operacja się zakończyła 15
16 MPI_Wait / MPI_Test 16
17 MPI_Wait 17
18 MPI_Test 18
19 MPI_Probe / MPI_Iprobe Pozwalają na sprawdzenie czy komunikat może być odebrany bez faktycznego jego odebrania MPI_Probe Działa w trybie blokującym MPI_Iprobe Działa w trybie nieblokującym Po sprawdzeniu czy komunikat oczekuje na odbiór (został wysłany) program może zdecydować się na jego odebranie lub anulowanie. 19
20 MPI_Probe / MPI_Iprobe 20
21 Własne typy danych Poza predefiniowanymi typami danych, MPI pozwala na definiowanie własnych typów. Możliwości MPI tworzenia własnych typów są rozbudowane Typy złożone (struktury, tablice) Możliwość pakowania i rozpakowywania danych rozproszonych w pamięci. 21
22 Własne typy danych c.d. 22
23 Własne typy danych c.d. 23
24 Własne typy danych c.d. Zdefiniowanie klasycznej struktury C 24
25 Własne typy danych c.d. Definicja struktury definiowanej zmiennej dlen długości bloków dtyp typy bloków dloc, base przesunięcia bloków 25
26 Własne typy danych c.d. Wyznaczamy początek struktury (base) oraz początki bloków (dloc). Do określenia adresu używamy funkcji MPI_Address 26
27 Własne typy danych c.d. Funkcja MPI_Type_struct tworzy nowy typ danych na podstawie przekazanych parametrów Funkcja MPI_Type_commit kończy definiowanie typu Utworzony typ może być wykorzystany do przesyłania komunikatów lub tworzenia nowych typów 27
28 Przykład projektu MPI PI 28
29 Projekt MC-PI - Algorytm 29
30 Projekt MC-PI implementacja szeregowa Implementacja szeregowa algorytmu jest bardzo prosta Losujemy parę liczb x,y z przedziału Sprawdzamy czy długość wektora (x,y) jest mniejsza od 1.0 Jeśli tak to punkt leży w wycinku koła rejestrujemy trafienie Rejestrujemy rzut Czynność powtarzamy zadaną liczbę razy Po zakończeniu wyliczamy Pi ze stosunku trafień do rzutów 30
31 Projekt MC-PI c.d. 31
32 Implementacja równoległa Implementacja drobnoziarnista (fine-grain) Niewielkie zadania (jedno losowanie) Dobre równoważenie obciążenia Duży narzut na przesyłanie danych Implementacja gruboziarnista (coarse-grain) Duże zadania (wiele losowań) Problem z równoważeniem obciążenia Niewielki narzut na przesyłanie danych 32
33 Topologia procesów Model master-slave Prosta topologia węzeł zarządzający, węzły wykonujące obliczenia Wąskie gardło - komunikacja między węzłem master i węzłami slave Ryzyko awarii Single Point Of Failure (SPOF) Bardziej zaawansowane topologie mogą wykorzystywać kilka węzłów typu master, węzły pośredniczące, lub całkowitą równorzędność wezłów 33
34 Topologia procesów c.d. 34
35 Topologia procesów c.d. 35
36 Topologia procesów c.d. 36
37 Topologia procesów c.d. 37
38 MC-PI implementacja c.d. Przykładowa implementacja równoległa: Serwer wczytuje liczbę losowań Serwer określa liczbę losowań każdego klienta Serwer rozsyła zadania do klientów Klient wykonuje obliczenia Klient wysyła rezultat (liczba trafień) do serwera Serwer wylicza i wyświetla ostateczny rezultat 38
39 MC-PI architektura 2-warstwowa 39
40 MC-PI architektura 3-warstwowa Wydzielenie dodatkowej warstwy odpowiedzialnej za komunikację Możliwość wykorzystania podejścia obiektowego Separacja kodu obliczeniowego i komunikacyjnego Łatwiejsze testowanie Możliwość łatwej zmiany warstwy transportowej 40
41 MC-PI architektura 3-warstwowa c.d. 41
42 MC-PI architektura 3-warstwowa c.d. Serwer wczytuje liczbę prób Serwer dzieli zadanie na zadania dla klientów Serwer przekazuje zadania do warstwy transportowej (WT) WT przekazuje zadanie do klienta Klient odbiera zadanie od WT Klient wykonuje obliczenia Klient przekazuje wynik do WT WT przekazuje wynik do Serwera Serwer odbiera zadania od WT Serwer wylicza i wyświetla ostateczny wynik 42
43 MC-PI architektura 3-warstwowa c.d. Analiza architektury systemu w oparciu o analizę specyfikacji Rzeczowniki identyfikacja klas Czasowniki identyfikacja metod Analiza pozwala na wstępne zaprojektowanie klas i metod zgodnie z paradygmatem projektowania obiektowego 43
44 MC-PI architektura 3-warstwowa c.d. 44
45 MC-PI architektura 3-warstwowa c.d. Klasy i ich odpowiedzialność Serwer: wczytuje (zadanie), dzieli (zadanie), przekazuje (zadanie), odbiera (rezultaty), wylicza i wyświetla (wynik) Klient: odbiera (zadanie), wykonuje (zadanie), wysyła (wynik) WT: przekazuje (zadanie, wynik) 45
46 MC-PI architektura 3-warstwowa c.d. 46
47 MC-PI architektura 3-warstwowa c.d. Wstępna analiza architektury aplikacji pozwala na łatwe określenie potrzebnych klas oraz ich metod Każda klasa może być zaimplementowana i przetestowana osobno (TDD) Dodatkowe decyzje dotyczące sposobu implementacji metod zależą od decyzji programisty 47
48 MC-PI Propozycja klas 48
49 Przykład projektu MPI CAŁKA 49
50 Problem obliczanie całki metodą trapezów Całka funkcji jednej zmiennej. Użytkownik podaje przedział całkowania (początek i koniec) oraz krok całkowania. Całkowana funkcja jest wpisana w program na stałe. Cały przedział dzielony jest na mniejsze przedziały i rozsyłany do węzłów obliczeniowych. Każdy węzeł obliczeniowy liczy swój przedział i odsyła wynik. Wyniki są łączone i całkowity rezultat wyświetlany jest na ekran. 50
51 Algorytm Źródło: Wikipedia 51
52 Opis aplikacji Serwer czyta zadanie. Serwer dzieli zadanie na fragmenty (lista zadań). Serwer przekazuje listę zadań do Warstwy Transportowej (WT). WT rozsyła zadania do klientów. Klient odbiera zadanie od WT. Klient liczy całkę. Klient przekazuje rezultat do WT. WT przesyła rezultat do serwera. Serwer odbiera wyniki od WT. Serwer oblicza końcowy rezultat. Serwer wyświetla rezultat. 52
53 Opis aplikacji rzeczowniki i czasowniki Serwer czyta zadanie. Serwer dzieli zadanie na fragmenty (lista zadań). Serwer przekazuje listę zadań do Warstwy Transportowej (WT). WT rozsyła zadania do klientów. Klient odbiera zadanie od WT. Klient liczy rezultat. Klient przekazuje rezultat do WT. WT przesyła rezultat do serwera. Serwer odbiera wyniki od WT. Serwer oblicza końcowy rezultat. Serwer wyświetla końcowy rezultat. 53
54 Obiekty i operacje Serwer czyta zadanie, dzieli, przekazuje do WT, odbiera wynik z WT, oblicza końcowy rezultat, wyświetla końcowy rezultat. Zadanie, Lista zadań Warstwa Transportowa przesyła zadanie, przesyła wynik Klient odbiera zadanie od WT, liczy wynik, przekazuje wynik do WT Wynik, końcowy rezultat 54
55 Klasa Zadanie #ifndef ZADANIE_H #define ZADANIE_H class Zadanie { private: double _poczatek; double _koniec; double _krok; public: Zadanie(); ~Zadanie(); int ustawkrok(double kr); int ustawzakres(double p,double k); double poczatek(); double koniec(); double krok(); }; #endif 55
56 Klasa Warstwa Transportowa #ifndef WARSTWATRANSPORTOWA_H #define WARSTWATRANSPORTOWA_H #include "Zadanie.h" class WarstwaTransportowa { public: WarstwaTransportowa(); ~WarstwaTransportowa(); int wyslijzadanie(zadanie zad); Zadanie odbierzzadanie(); int wyslijrezultat(double rez); double odbierzrezultat(); }; #endif 56
57 Klasa Klient #ifndef KLIENT_H #define KLIENT_H #include "Zadanie.h" #include "WarstwaTransportowa.h" class Klient { public: Klient(); ~Klient(); int odbierzzadanie(warstwatransportowa wt); void liczzadanie(); void wyslijwynik(warstwatransportowa wt); private: Zadanie zad; double rez; }; #endif 57
58 Klasa Serwer #ifndef SERVER_H #define SERVER_H #include <vector> #include "Zadanie.h" #include "WarstwaTransportowa.h" typedef std::vector<zadanie> ListaZadan; typedef std::vector<double> ListaRezultatow; class Serwer { public: Serwer(); ~Serwer(); Zadanie czytajdane(); ListaZadan dzielzadanie(zadanie zad,int N); void wyslijlistezadan(warstwatransportowa wt); ListaRezultatow odbierzlisterezultatoe(warstwatransportowa wt); double sumujrezultaty(listarezultatow lr); void wyswietlwynik(double rez); }; #endif 58
59 Dokumentacja Dokumentacja jest ważnym elementem każdego nietrywialnego projektu, szczególnie projektów które będą w przyszłości rozwijane/modyfikowane. W utrzymywaniu kompletnej i aktualnej dokumentacji deweloperskiej bardzo pomagają programy takie jak Doxygen Doxygen generuje dokumentację na podstawie komentarzy w kodzie eliminuje konieczność utrzymywania osobno kodu i dokumentacji 59
60 Testy Projektowanie inicjowane testami (TDD) testy tworzone są jeszcze przed tworzeniem samego kodu. Moduły testujące automatyzacja procesu testowania. Bardziej przejrzysty projekt (trzeba z góry wiedzieć co testować). Większa niezawodność. Znacznie większa swoboda usprawniania i modyfikacji implementacji bez obawy o zniszczenie czy zmianę funkcjonalności poszczególnych elementów projektu. 60
61 Testy Co testować? Klasa Zadanie Wartości początkowe Akcesory (ustaw/czytaj wartości). Błędy zły zakres (koniec<początek), zły krok (krok<=0) Klasa Warstwa Transportowa Inicjalizacja biblioteki MPI (w konstruktorze) Finalizacja biblioteki MPI (w destruktorze) Przesyłanie zadań (wyślij/odbierz) Przesyłanie wyników (wyślij/odbierz) 61
62 Kodowanie Najnudniejsza część pracy. Zwykle wykonywana przez młodszych programistów / koderów (studentów :-) ) Wykorzystanie modułów testujących pozwala na testowanie kodu i śledzenie jego rozwoju na dowolnym jego etapie. Każdy komponent może być rozwijany niezależnie przez innego programistę (dokumentacja i moduły testowe ściśle definiują moduł). 62
63 Zakończony projekt Wszystkie moduły osobno przechodzą wszystkie testy. Skonsolidowane moduły przechodzą testy funkcjonalne (czy system jako całość robi to, co powinien). SUKCES!!! GRATULACJE! Oddanie gotowego projektu i obowiązkowa impreza 63
64 Analiza wydajności MPI 64
65 Wydajność MPI Badanie wydajności MPI było przedmiotem pracy dyplomowej: Marcin Jaźnicki Praca inżynierska Wyższa Szkoła Menedżerska w Warszawie (WSM) 65
66 Wydajność MPI c.d. Cele pracy: Analiza wydajności MPI dla kilku wybranych problemów obliczeniowych Wykorzystanie klastra o rozmiarze od 1 do 16 komputerów Problemy: Problem 1 - Obliczanie całki metodą trapezów Problem 2 - Wyznaczanie wartości tangensa hiperbolicznego dla zadanej wartości 66
67 Problem 1 Problem bardzo łatwy do implementacji równoległej ( embarrassingly parallel ) Podział zadania na duże bloki ( coarse-grain ) redukuje narzut na komunikację Problem doskonale nadaje się do rozwiązania za pomocą klastra komputerów 67
68 Problem 2 Bardziej złożony algorytm, wymagający częstej wymiany danych między węzłami. Zwiększanie liczby węzłów zwiększa narzut na komunikację słaba skalowalność Środowisko klastra słabo sprawdza się do tego typu problemów, znacznie lepsza byłaby architektura wieloprocesorowa ze wspólną pamięcią. 68
69 Badane parametry Czas wykonania programu czas w sekundach od rozpoczęcia do zakończenia programu. Przyspieszenie względne zależność między czasem wykonania na N węzłach, od czasu wykonania na jednym węźle (np. dla N=2, p=2.0 oznacza dwukrotnie szybsze wykonanie programu. Efektywność przyspieszenie względne podzielone przez liczbę węzłów. Wartością idealną jest 1.0, wartości rzeczywiste będą mniejsze. 69
70 Czas wykonania problem 1 70
71 Czas wykonania problem 2 71
72 Czas wykonania - rezultaty Problem 1 dodawanie węzłów zdecydowanie obniża czas wykonania programu Problem 2 dodawanie węzłów w niewielkim stopniu wpływa na czas obliczeń użycie więcej niż 5 węzłów jest praktycznie nieopłacalne 72
73 Efektywność problem 1 73
74 Efektywność problem 2 74
75 Efektywność - rezultaty Problem 1 Dla liczby węzłów N<13 efektywność utrzymuje się praktycznie na idealnym poziomie Dla N>13 efektywność nieznacznie się pogarsza Problem 2 Już dodanie drugiego węzła dramatycznie pogarsza efektywność (obliczenia przyspieszają tylko o 40%). Użycie 16 węzłów powoduje jedynie 2-krotne przyspieszenie obliczeń 75
76 Wnioski Wydajność klastra bardzo zależy od rodzaju problemu Problemy, które łatwo podzielić na duże pod-zadania, nie wymagające komunikacji (CPU bound,coarse-grain) efektywne wykorzystanie klastra Problemy wymagające komunikacji i podziału na dużo małych zadań (network bound, fine-grain) efektywność klastra nie będzie duża. Problemy tego typu wymagają komputerów wieloprocesorowych ze wspólną pamięcią. 76
Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla
Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065 Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów
5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
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
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
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania
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...................................................
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze
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 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 Środowisko przesyłania komunikatów MPI Rodzaje procedur: blokujące nieblokujące Tryby przesyłania
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,
Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych
Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
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............................................
76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
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
Klient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Programowanie Komponentowe WebAPI
Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,
PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem
PROJEKTOWANIE określenie wymagań specyfikowanie projektowanie kodowanie implementacja testowanie produkt konserwacja Faza strategiczna Analiza Dokumentacja Instalacja PROJEKT most pomiędzy specyfikowaniem
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ę
Numeryczna algebra liniowa
Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów
Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Zad. 5: Układ równań liniowych liczb zespolonych
Zad. 5: Układ równań liniowych liczb zespolonych 1 Cel ćwiczenia Wykształcenie zdolności abstrahowania operacji arytmetycznych od konkretnych typów. Unaocznienie problemów związanych z programowaniem uogólnionym
Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP
Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP MPP - Cechy charakterystyczne 1 Prywatna, wyłączna przestrzeń adresowa.
Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji
Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji Robert Hryniewicz Promotor: dr inż. Krzysztof Różanowski Cele pracy Opracowanie protokołu komunikacyjnego służącego do
Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31
Programowanie w C++ Wykład 8 Katarzyna Grzelak 7 maja 2018 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Podstawy programowania III WYKŁAD 4
Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.
Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012
Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel
IPC: Kolejki komunikatów
IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat
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
Podstawy programowania komputerów
Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie
Systemy operacyjne III
Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego
Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak
Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak MPP - Cechy charakterystyczne 1 Prywatna - wyłączna przestrzeń adresowa. Równoległość
Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV
Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium
Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1
Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego
wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy
i obiekty Programowanie i obiekty uzupełnienie notatek: dr Jerzy Białkowski i obiekty 1 2 3 4 i obiekty Obiektowość języka C++ Na tym wykładzie poznamy: ˆ Klasa (w języku C++ rozszerzenie struktury, typ
Dlaczego testowanie jest ważne?
Testowanie Dlaczego testowanie jest ważne? Oprogramowanie które nie działa poprawnie może doprowadzić do: straty czasu, pieniędzy utraty reputacji uszkodzeń ciała a nawet śmierci Definicja błędu Oprogramowanie
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming
Jarosław Kuchta Wymagania jakości w Agile Programming Wady klasycznych metod zapewnienia jakości Duży narzut na dokumentowanie Późne uzyskiwanie konkretnych rezultatów Trudność w odpowiednio wczesnym definiowaniu
Aplikacja Sieciowa wątki po stronie klienta
Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
Analiza ilościowa w przetwarzaniu równoległym
Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2
Programowanie Rozproszone i Równoległe. Edward Görlich http://th.if.uj.edu.pl/~gorlich goerlich@th.if.uj.edu.pl
Programowanie Rozproszone i Równoległe Edward Görlich http://th.if.uj.edu.pl/~gorlich goerlich@th.if.uj.edu.pl Motywacja wyboru Programowanie rozproszone równoległość (wymuszona) Oprogramowanie równoległe/rozproszone:
Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010
Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność
Bazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
Architektura komputerów
Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna
Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych
Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych Artykuł przeznaczony jest dla osób związanych z testowaniem, programowaniem, jakością oraz wytwarzaniem oprogramowania, wymaga jednak
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
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Mechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD
Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe
Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Stan globalny. Krzysztof Banaś Systemy rozproszone 1
Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej
Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat
Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Architektura komputerów
Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania
Mechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami
Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy
Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych
Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo
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,
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Tworzenie aplikacji rozproszonej w Sun RPC
Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki
RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )
III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego
Etapy życia oprogramowania
Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 w prezentacji wykorzystano również materiały przygotowane przez Michała Kolano
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura
Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści
Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna
Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
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
Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury
Rozproszone systemy internetowe Wprowadzenie. Koncepcja zdalnego wywołania procedury Zakres tematyczny przedmiotu Aplikacje rozproszone Technologie /standardy internetowe Programowanie obiektowe 2 Co będzie
Testowanie oprogramowania
Testowanie oprogramowania 1/17 Testowanie oprogramowania Wykład 01 dr inż. Grzegorz Michalski 13 października 2015 Testowanie oprogramowania 2/17 Dane kontaktowe: Kontakt dr inż. Grzegorz Michalski pokój
Testowanie elementów programowalnych w systemie informatycznym
Testowanie elementów programowalnych w systemie informatycznym Marek Żukowicz 10 października 2017 Streszczenie W literaturze istnieje wiele modeli wytwarzania oprogramowania oraz wiele strategii testowania
Kolejkowanie wiadomości Standard MQ (JMS)
Kolejkowanie wiadomości Standard MQ (JMS) Kolejkowanie wiadomości Standard wymiany informacji wiadomości (ang. message) między procesami (mogą być rozproszone) Przykładowe rozwiązania: - RabbitMQ - ActiveMQ
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Dokument Detaliczny Projektu
Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej
Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania
Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 Określenie wymagań Testowanie Pielęgnacja Faza strategiczna
Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas
Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy
Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Podstawowe algorytmy przetwarzania tablic (wypełnianie, porównywanie elementów,
Akademia Techniczno-Humanistyczna w Bielsku-Białej
Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 9 Temat ćwiczenia: Aplikacje klient-serwer. 1. Wstęp teoretyczny.
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Kolejne funkcje MPI 1
Kolejne funkcje MPI 1 Przypomnienie: sieci typu mesh (Grama i wsp.) 2 Topologie MPI Standard MPI abstrahuje od topologii systemu wieloprocesorowego. Sposób uruchamiania aplikacji (mpirun) nie jest częścią
kiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,
Korutyny Wykład13,str1 tak działa podprogram: PROGRAM GŁÓWNY wywołanie PODPROGRAM tak działają korutyny: KORUTYNA A resume B resume B KORUTYNA B resume A Korutyny Wykład13,str2 Korutyny mają zwykle więcej
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
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