PVM. Luděk Matyska. Jaro Fakulta informatiky MU. Luděk Matyska (FI MU) PVM Jaro / 19

Podobne dokumenty
WWW

Parallel Virtual Machine

Środowiska przetwarzania rozproszonego

Pierwsze kroki w środowisku PVM

Łamanie haseł. Zakres ćwiczenia. Przedstawienie problemu. Zadanie do samodzielnego wykonania

Podstawy komunikacji między procesami PVM

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1

PVM Parallel Virtual Machine

Zaawansowane operacje grupowe

Paralelizace numerických metod

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

Programowanie w standardzie MPI

Kristýna Kuncová. Matematika B2 18/19

Programowanie Równoległe i Rozproszone

katedra informatiky FEI VŠB-TU Ostrava etr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Začínáme s C/C září / 25

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Co nám prozradí derivace? 21. listopadu 2018

Obliczenia rozproszone z wykorzystaniem MPI

Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Martin Pergel. 26. února Martin Pergel

Programowanie współbieżne Wykład 12 MPI c.d. Rafał Skinderowicz

Wprowadzenie. System rozproszony jest kolekcją niezależnych, autonomicznych komputerów, które dla użytkownika prezentują się jak jeden komputer.

Shared memory and messages. Functions. process 0. process 1. program 0. program 0. data 0. data 1. program 1. data 0. data 1.

Informatyka. Wy-03 Dynamiczna alokacja pamięci, wyjątki. mgr inż. Krzysztof Kołodziejczyk

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

Numerické metody 8. května FJFI ČVUT v Praze

Page 1. Programowanie równoległe i rozproszone - INZ3774 wykład - 3 ECTS, laboratorium 3 ECTS. Wykładowca: Jan Kwiatkowski, pokój 201/15, D-2

Detekcja zakończenia i obraz stanu globalnego

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

Message Passing Interface

Edita Pelantová, katedra matematiky / 16

Zásuvný modul QGISu. QGIS plugin pro práci s katastrálními daty

Kristýna Kuncová. Matematika B3

Kristýna Kuncová. Matematika B2

Úvodní informace. 18. února 2019

Numerické metody minimalizace

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

r 2r Rysunek 1 Koło wpisane w kwadrat

Funkce zadané implicitně. 4. března 2019

Zegary logiczne. Zakres ćwiczenia. Problem rozbieżności czasów. Koncepcja programu. Przygotowanie programu

61 Topologie wirtualne

Tworzenie aplikacji w języku Java

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP

(13) Fourierovy řady

Jak wygląda praca na klastrze

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

Programowanie współbieżne i rozproszone

Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak

Wsparcie dla OpenMP w kompilatorze GNU GCC Krzysztof Lamorski Katedra Informatyki, PWSZ Chełm

NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Česky. Magyar. Polski. Slovensky

Register and win!

Wstęp do programowania 1

Programowanie współbieżne Wykład 11 Wprowdzenie do MPI. Rafał Skinderowicz

51. Metody komunikacji nieblokującej.

Zálohuj s BTRFS! Bc. Josef Jebavý

Pracovní listy. Stereometrie hlavního textu

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

Vybrané kapitoly z matematiky

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

IB109 Návrh a implementace paralelních systémů

dr inż. Jarosław Forenc

1 Timery i zdarzenia

Mechanizmy komunikacji grupowej w bibliotece PVM

Matematika (KMI/PMATE)

Programowanie Równoległe Wykład 5. MPI - Message Passing Interface (część 3) Maciej Matyka Instytut Fizyki Teoretycznej

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

Operacje grupowego przesyłania komunikatów. Krzysztof Banaś Obliczenia równoległe 1

1 Soustava lineárních rovnic

Programowanie Proceduralne







QNX Neutrino (v 6.3)

Rozszerzenia MPI-2 1

Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1

Linea rnı (ne)za vislost

Uzupełnienie dot. przekazywania argumentów

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Programowanie Równoległe Wykład 6. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej

1. Ustanawianie ograniczeń na użycie zasobów

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Tworzenie aplikacji rozproszonej w Sun RPC

Systemy rozproszone. Państwowa Wyższa Szkoła Zawodowa w Chełmie. ** Instytut Fizyki Uniwersytet Marii Curie-Skłodowskiej w Lublinie

Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY

dynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! )

Wprowadzenie do środowiska PVM

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

Inverzní Z-transformace

Paralelní implementace a optimalizace metody BDDC

external Data Representation

Fakulta elektrotechnická. Paralelní algoritmus pro

Obkládačky a dlaždičky Płytki ścienne i podłogowe: SIGHT šedá szary

Programowanie Współbieżne

Transkrypt:

IA039: Architektura superpočítačů a náročné výpočty PVM Luděk Matyska Fakulta informatiky MU Jaro 2014 Luděk Matyska (FI MU) PVM Jaro 2014 1 / 19

Základní vlastnosti Parallel Virtual Machine (PVM) Vyvinut koncem na přelomu 80. a 90. let minulého století Primární motivace: tvorba paralelního virtuálního superpočítače Nedostatečný výkon Původně pouze superpočítače byly propojeny vysokorychlostní sítí Postupně propojování pracovních stanic Distribuované prostředí pro vývoj a spouštění distribuovaných programů Luděk Matyska (FI MU) PVM Jaro 2014 2 / 19

Komponenty Síť pvmd démonů Odpovídají za vlastní prostředí virtuálního paralelního (distribuovaného) počítače Knihovna funkcí API pro meziproceso(ro)vou komunikace API pro manipulaci s jednotlivými procesy Přilinkována k programu Luděk Matyska (FI MU) PVM Jaro 2014 3 / 19

Programování PVM podporuje primárně programy tvořené kooperujícími úlohami Samostatné procesy na různých procesorech Komunikace pomocí výměny zpráv Přirozená podpora task paralelismus Odpovídá MPMD (Multiple Programs Multiple Data) Vhodný i pro SPMD výpočetní model Je možné realizovat i data paralelní programy API dostupné pro jazyky C, C++, Fortran 77 (a Fortran 90) Luděk Matyska (FI MU) PVM Jaro 2014 4 / 19

Základní třídy příkazů Řízení procesů Posílání zpráv Přijímání zpráv Správa bufferů Skupinové operace Informace Signály Luděk Matyska (FI MU) PVM Jaro 2014 5 / 19

Řízení procesů Každý proces má vlastní identifikátor TID Task Identifier Jedinečný v rámci celé PVM Nese informace o úloze i o jejím umístění v PVM Umístění uzel, na němž proces běží Vydáván master PVM démonem Každá PVM má jeden master démon Potenciální slabé míst Nebezpeční přetížení Single point of failure Luděk Matyska (FI MU) PVM Jaro 2014 6 / 19

Příkazy řízení procesů int tid = pvm mytid(void) int info = pmv exit(void) int info = pvm kill(int tid) int info = pvm addhosts(char **hosts, int nhosts, int *infos) int info = pvm delhosts(char **hosts, int nhosts, int *infos) Luděk Matyska (FI MU) PVM Jaro 2014 7 / 19

Spuštění nového procesu int numt = pvm spawn(char *task, char **argv, int flag, char *where, int ntask, int *tids) flag: PvmTaskDefault PvmTaskHost PvmTaskArch PvmTaskDebug PvmTaskTrace PvmMppFront PvmHostCompl Luděk Matyska (FI MU) PVM Jaro 2014 8 / 19

Posílání a přijímání zpráv Předávání zpráv zprostředkováno pvmd démony Odpovídají za spolehlivý přenos a doručení Zprávu vždy přebírá lokální (procesu příslušný) pvmd Následně z TID cílové procesu určí jeh umístění a zprávu zašle vzdálenému pvmd procesu. Musí zajistit převod dat mezi různými architekturami Luděk Matyska (FI MU) PVM Jaro 2014 9 / 19

Jednoduchý příklad Vlastní zaslání dat může realizovat např. následující jednoduchý příklad: int bufid = pvm initsend(int encoding) Encoding udává způsob překódování dat PvmDataDefault Data jsou překódována do systémového bufferu PvmDataRaw Data se průchodem sítí nemění (vhodné pokud víme, že používáme identickou architekturu a prostředí) PvmDataInPlace Data jsou konvertována přímo v bufferu Luděk Matyska (FI MU) PVM Jaro 2014 10 / 19

Zasílání zpráv int info = pvm bufinfo(int bufid, int *bytes, int *msgtag, int *tid) int info = pvm send(int tid, int msgtag) int info = pvm psend(int tid, int msgtag, char *buf, int len, int datatype) int info = pvm mcast(int *tids, int ntask, int msgtag) Luděk Matyska (FI MU) PVM Jaro 2014 11 / 19

Přijímání zpráv int info = pvm recv(int tid, int msgtag) int info = pvm precv(int tid, int msgtag, char *buf, int len, int datatype, int atid, int atag, int alen) int info = pvm nrecv(int tid, int msgtag) int info = pvm trecv(int tid, int msgtag, struct timeval tmout) Luděk Matyska (FI MU) PVM Jaro 2014 12 / 19

Ověření dostupnosti zprávy int info = pvm probe(int tid, int msgtag) Luděk Matyska (FI MU) PVM Jaro 2014 13 / 19

Příprava a rozebírání dat pvm pk<ptype>(<type> *data, int cnt, int stride) pvm upk<ptype>(<type> *data, int cnt, int stride) <ptype> <type> byte char short short int int long long float float double double cplx float dcplx double str char Luděk Matyska (FI MU) PVM Jaro 2014 14 / 19

Skupinové operace PVM podporuje tvorbu skupin procesů Proces se může kdykoliv ke skupině přidat Proces může skupinu kdykoliv opustit Není nutná žádná synchronizace Je implementován model slabé konzistence Luděk Matyska (FI MU) PVM Jaro 2014 15 / 19

Příkazy skupinové komunikace int inum = pvm joingroup(char *group) int info = pvm lvgroup(char *group) int info = pvm bcast(char *group, int msgtag) int info = pvm barrier(char *group, int count) int info = pvm reduce(void *op, void *data, int cnt, int datatype, int msgtag, char *group, int root) void op(int *datatype, void *x, void *y, int *num, int *info) int size = pvm gsize(char *group) int tid = pvm gettid(char *group, int inum) int inum = pvm getinst(char *group, int tid) Luděk Matyska (FI MU) PVM Jaro 2014 16 / 19

Množina informačních příkazů int tid = pvm parent(void) int dtid = pvm tidtohost(int tid) int info = pvm config(int *nhost, int *narch, struct pvmhostinfo **hostp) int info = pvm tasks(int which, int *ntask, struct pvmtaskinfo **taskp) int oldval = pvm setopt(int what, int val) int val = pvm getopt(int what) Luděk Matyska (FI MU) PVM Jaro 2014 17 / 19

Pokročilé funkce int info = pvm reg hoster() int info = pvm reg tasker() int info = pvm reg rm(struct hostinfo **hip) Všechny tři uvedené procedury slouží k nahrazení defaultních funkcí PVM při spouštění nových uzlů (pvmd) i nových úloh. pvm reg hoster() a pvm reg tasker() zajišťují konkrétní činnosti (addhost či spawn) pvm reg rm() umožní definovat nový plánovač (scheduler) Luděk Matyska (FI MU) PVM Jaro 2014 18 / 19

PVM shrnutí Parallel Virtual Machine Důraz na virtuální stroj Nástroje pro stavbu (rozebírání) tohoto stroje Ovládání úloh,,následníkem je Message Passing Interface (MPI) Důraz na práci s daty (zprávami) Dlouho žádná podpora práce s úlohami (tasks) Podpora paralelního I/O Luděk Matyska (FI MU) PVM Jaro 2014 19 / 19