Motivace. Software. Literatura a odkazy

Podobné dokumenty
Aplikace metody BDDC

Martin Lísal. Úvod do MPI

Paralelní výpočty ve finančnictví

Úvod do OpenMP. Jiří Fürst

Úvod do přesnosti MKP, generace sítí a metod řešení soustav lineárních rovnic

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Pokročilé architektury počítačů

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

Static Load Balancing Applied to Time Dependent Mechanical Problems

Objektově orientovaná implementace škálovatelných algoritmů pro řešení kontaktních úloh

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35

Tvorba počítačových clusterů pomocí Linuxu. Vedoucí práce: Mgr. Jiří Pech, Ph.D. Katedra informatiky

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV)

Matematika v programovacích

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

METACentrum Český národní gridovýprojekt. Projekt METACentrum. Jan Kmuníček ÚVT MU & CESNET. meta.cesnet.cz

OPS Paralelní systémy, seznam pojmů, klasifikace

Programové systémy MKP a jejich aplikace

Paralelní a distribuované výpočty (B4B36PDV)

Globální matice konstrukce

Transformace digitalizovaného obrazu

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

Pružnost a plasticita II CD03

Generování sítě konečných prvků

1. Zpracování událostí na pozadí aplikace

Téma 5: Přímý Optimalizovaný Pravděpodobnostní Výpočet POPV

Téma 4: Stratifikované a pokročilé simulační metody

Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty

Disková pole (RAID) 1

Povídání na téma. SUPERPOČÍTAČE DNES A ZÍTRA (aneb krátký náhled na SC) Filip Staněk

Paralelní programování

Knihovny pro CUDA J. Sloup a I. Šimeček

Základní datové struktury

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

III. MKP vlastní kmitání

Operační systémy. Cvičení 3: Programování v C pod Unixem

Speciální numerické metody 4. ročník bakalářského studia. Cvičení: Ing. Petr Lehner Přednášky: doc. Ing. Martin Krejsa, Ph.D.

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

DIPLOMOVÁ PRÁCE Nelineární řízení magnetického ložiska

Hlavní využití počítačů

Paralelní programování

Úvod do GPGPU J. Sloup, I. Šimeček

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty

Úvod do B4B36PDV. Organizace předmětu a seznámení se s paralelizací. B4B36PDV Paralelní a distribuované výpočty

Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování. vypracovanou úlohu podle níže uvedených zadání. To mimo jiné znamená, že

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. Jiří Barnat

Rovinná úloha v MKP. (mohou být i jejich derivace!): rovinná napjatost a r. deformace (stěny,... ): u, v. prostorové úlohy: u, v, w

METACentrum zastřešení českých gridových aktivit

GPGPU Aplikace GPGPU. Obecné výpočty na grafických procesorech. Jan Vacata

APLIKACE SIMULAČNÍHO PROGRAMU ANSYS PRO VÝUKU MIKROELEKTROTECHNICKÝCH TECHNOLOGIÍ

Tutoriál programu ADINA

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Téma 8: Optimalizační techniky v metodě POPV

Dagmar Adamová, Jiří Chudoba Jednalo se o Monte Carlo simulace případů srážek p+p a Pb+Pb. Fungování

Cloudy a gridy v národní einfrastruktuře

Nelineární úlohy při výpočtu konstrukcí s využitím MKP

Katedra geotechniky a podzemního stavitelství

CERIT SCIENTIFIC CLOUD. Centrum CERIT-SC. Luděk Matyska. Praha, Seminář MetaCentra,

IUJCE 07/08 Přednáška č. 1

OSA. maximalizace minimalizace 1/22

Programování založené na posílání zpráv

Disková pole (RAID) 1

Nosné desky. 1. Kirchhoffova teorie ohybu tenkých desek (h/l < 1/10) 3. Mindlinova teorie pro tlusté desky (h/l < 1/5)

Zpráva s popisem softwarového návrhu a specifikací rozhraní prototypového modulu pro odhad chyby a zjemnění sítě

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Systém rizikové analýzy při sta4ckém návrhu podzemního díla. Jan Pruška

Operační systémy. Cvičení 4: Programování v C pod Unixem

Nelineární problémy a MKP

VÝPOČET STĚNY METODOU KONEČNÝCH PRVKŮ A POSUDEK SPOLEHLIVOSTI STĚNY METODOU SBRA

Katedra geotechniky a podzemního stavitelství

4. Úvod do paralelismu, metody paralelizace

Paralelní grafové algoritmy

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

SIMULACE ŠÍŘENÍ NAPĚŤOVÝCH VLN V KRYSTALECH MĚDI A NIKLU

Propojení matematiky, fyziky a počítačů

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016

Nové jazykové brány do Caché. Daniel Kutáč

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Aktuální trendy v oblasti modelování

Přednáška 1 Obecná deformační metoda, podstata DM

Kontraktantní/dilatantní

Prostorové konstrukce. neznámé parametry: u, v w. (prvky se středostranovými uzly)

Procesy a vlákna (Processes and Threads)

Numerické modelování interakce proudění a pružného tělesa v lidském vokálním traktu

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Struktura programu v době běhu

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Výpočet stěny metodou konečných prvků a posudek spolehlivosti stěny metodou SBRA

Martin NESLÁDEK. 14. listopadu 2017

Transkript:

Využití paralelních výpočtů ve stavební mechanice Motivace Paralelní počítače Software Možnosti využití ve stavební mechanice Příklady Literatura a odkazy 1

Motivace Časová náročnost výpočtů Rozsáhlé úlohy metoda konečných prvků modely s velkým počtem stupňů volnosti nelineární, kontaktní úlohy metoda hraničních prvků metoda sítí Simulační metody posudku spolehlivosti velké počty opakovaných výpočtů v metodách především typu Monte Carlo 2

Paralelní počítače (1) Víceprocesorové/vícejádrové stolní počítače Běžně dostupné Lze využít i k vytvoření paralelního počítače s distribuovanou pamětí Paralelní superpočítače Sdílená operační pamět Distribuovaná operační pamět Kombinované 3

Paralelní počítače (2) Víceprocesorové a vícejádrové stolní počítače Pracovní stanice (UNIX, Window NT,...) Zejména v minulosti: IBM, HP, Sun Microsystems, SGI Dnes obvykle PC s 8-32 vícejádrovými procesory Osobní počítače Dnes 2-16 jádrové procesory Programování: Stejné postupy jako velké paralení počítače (MPI, OpenMP,...) Postupy vyžadující sdílenou pamět : vlákna, procesy 4

Paralelní počítače (3) Superpočítače: Cluster Propojení více počítačů uzlů (např. jednojádrových nebo vícejádrových PC) Uzly umístěny na jednom místě a vzájemně propojeny relativně rychlou sítí Superpočítače: Grid Jednotlivé počítače umístěny na různých místech (města, státy, kontinenty) Omezené možnosti komunikace vhodné jen pro specifické úlohy 5

Software (1) Počítače se sdílenou pamětí Vlákna odlišné v jednotlivých operačních systémech (POSIX standard UNIX, Linux, Mac OS X; vlákna v OS Windows,...) poměrně jednoduché programování, možnost přístupu ke sdílené paměti, nutno ošetřit kolize nad daty (semafory, zámky) OpenMP standard pro programování na počítačích se sdílenou pamětí pro C/C++, FORTRAN: http://openmp.org využívá přidaných deklarací v programu: vhodné pro úpravy existujících neparalelních programů 6

Software (2) Počítače s distribuovanou pamětí (clustery) MPI Message Passing Interface standard pro programování počítačů s distribuovanou pamětí http://www.mpi-forum.org je možné použít i na počítačích se sdílenou pamětí PVM Parallel Virtual Machines podobné MPI (jiné nástroje a programátorské rozhraní) dnes méně používané 7

Software (3) Grid nelze použít výše uvedených postupů (velice omezené možnosti komunikace mezi výpočetními uzly) vhodné pro specifické úlohy provádění diskrétních simulací Monte Carlo zpracovávání vzájemně nezávislých dat (např. záznamy date ze zemětřesení) neexistuje standardizované řešení, různé možnosti Condor: http://www.cs.wisc.edu/condor/ Sun/Oracle Grid Engine: http://gridengine.sunsource.net/ 8

Ukázka: Vlákna v UNIXu Ukázka programu v jazyce C: #include <pthreads.h> #include <stdio.h> void myfunction { printf( Vypis z vlakna\n ); } int main(int argc, char *argv[]) { int i ; int Thread_ID[10]; } for (i=0; i<10; i++) pthread_create(&thread_id[i],null,myfunction,null); for (i=0; i<10; i++) pthread_join(thread_id[i], NULL) ; return(0); 9

Ukázka: OpenMP Ukázka programu v jazyce C: #include <omp.h> #include <stdio.h> int main(int argc, char *argv[]) { #pragma omp parallel printf( Proces cislo %d, z %d\n, omp_get_thread_num(), omp_get_num_threads() ); return(0); } Poznámka: Ve skutečnosti překladač upraví uvedený program tak, aby používal vlákna (výsledek bude podobný předchozí ukázce). Jak vlákna, tak OpenMP lze použít jen na počítačich se sdílenou pamětí. 10

Ukázka: MPI Ukázka programu v jazyce C: #include <mpi.h> #include <stdio.h> int main(int argc, char *argv[]) { int nid, noprocs, i ; } MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &noprocs); MPI_Comm_rank(MPI_COMM_WORLD, &nid); for (i=0; i<noprocs; i++) printf( Proces cislo %d,nid); MPI_Finalize(); return(0); 11

Paralelní výpočty v mechanice Proč paralelizovat Viz Motivace (rozsáhlé a/nebo časově náročné úlohy) Jak paralelizovat 1. Rozdělení náročných částí stávajících algoritmů na více souběžně prováděných částí 2. Odlišné (účinnější) algoritmy Metody dekompozice domén Metoda subkonstrukcí (Schur complement method) Metody typu FETI 12

Paralelizace stávajících algoritmů Časově náročné části výpočtu MKP tvorba matic tuhostí a zatěžovacích vektorů konečných prvků aplikace konstitutivních vztahů výpočet výsledků na konečných prvcích řešení soustav lineárních rovnic Časově náročné části řešení soustav rovnic (iterační metody) násobení vektorů a matic 13

Paralelizace tvorby matic tuhosti v MKP Jednotlivé matice tuhosti jsou vzájemně nezávislé (nemusí platit pro fyzikálně nelineární a kontaktní úlohy) Je třeba ošetřit ukládání členů vypočtených matic do matice tuhosti konstrukce Proces 0 K matice Proces 1 Proces 2 Proces 3 Proces 4 14

Paralelizace výpočtů výsledků na konečných prvcích Jednotlivé vektory uzlových sil, napětí a deformací na prvcích atd. jsou vzájemně nezávislé Každý proces může nezávisle zpracovat část výsledků U struct U elem K elem U elem F elem 15

Paralelizace násobení matice a vektoru Nejčastější a nejnáročnější operace při použití iteračních metod (Metoda sdružených gradientů apod.) Matici je možné rozdělit na části (např. po řádcích): každý proces násobí jen M příslušných řádků a vytvoří M členů výsledného vektoru 16

Pokročilejší postupy Metody dekompozice domén rozdělení řešené oblasti (například stavební konstrukce) na více podoblastí (subdomén), které je možné řešit samostatně integrita výpočetního modelu se zajišt uje řešením vhodně formulovaného problému pro rozhraní oblastí Nejobvyklejší metody Metoda subkonstrukcí (Schur Complement Method) - viz dále Metoda FETI (Finite Element Tearing and Interconnecting) 17

Metoda subkonstrukcí (1) použití v MKP, metodě sítí, zpravidla: K u = F K... matice tuhosti u... vektor neznámých posunutí a pootočení K... vektor zatížení rozdělení konstrukce na samostatně (paralelně) řešitelné části řešení relativně malého problému na spojení jednotlivých částí vyžaduje vhodné číslování neznámých 18

Metoda subkonstrukcí (2) Základní myšlenka Rovnici upravíme na tvar: kde [ K1,1 K 1,2 K 2,1 K 2,2 K u = F ] ( u1 u 2 ) = ( F1 F 2 ), K 1,1, u 1, F 1 obsahuje části rovnic nezávislých subkonstrukcí K 2,2, u 2, F 2 obsahuje samostatně řešitelný problém rozhraní subkonstrukcí K 1,2, K 1,2 obsahují prvky matic tuhosti příslušné rozhraním oblastí 19

Metoda subkonstrukcí (3) Předchozí soustavu lze přepsat: u 1 = K 1 1,1, (F 1 K 1,2 u 2 ), odkud lze určit neznámé u 1 (pokud již známe u 2 ) a dále: (K 2,2 K 2,1 K 1 1,1 K 1,2) u 2 = F 2 K 2,1 K 1 1,1 F 1, což je problém na rozhraní oblastí, ze kterého lze vypočítat neznámé u 2 Matice (K 2,2 K 2,1 K 1 1,1 K 1,2) se označuje jako Schurův doplněk matice K 1,1 v matici K (používá se i název Metoda Schurova doplňku ). 20

Metoda subkonstrukcí (4) Aby bylo možné použít předcházející vztahy, je nutné, aby proměnné na rozhraní podoblastí byly číslovány až jako poslední: 2 6 8 4 2 6 6 8 8 4 1 5 7 3 1 5 5 7 7 3 Další detaily: J. Kruis, Domain Decomposition Methods for Distributed Computing, Saxe-Coburg Publications, Stirlingshire, UK, 2006. 21

Paralelizace Monte Carlo (1) Vstupní data mají náhodný charakter Sleduje se pravděpodobnost (počet výskytů v celkovém počtu výpočtů) s jakou dojde k překročením zadané podmínky porušení, např.: překročení stanoveného mezního napětí nebo jiné silové (případně deformační) veličiny dosažení podmínky pro vznik trhlin Opakovaně se generují realizace náhodných vstupních veličin a provádí se výpočet (simulační krok) a kontrola podmínky porušení Pro běžně požadovanou řešení (ve stavební praxi) je třeba provést kolem 1000000 výpočtů 22

Paralelizace Monte Carlo (2) Výhody metody Monte Carlo jednotlivé simulace na sobě vzájemně nezávisí statistické korelace mezi veličinami (jsou-li v metodě použity) je možné zpracovat předem Problémy a nevýhody je třeba paralelní generátor náhodných čísel, např. SPRNG: http://sprng.cs.fsu.edu/ může být nutné průběžné vyhodnocování výsledků (pro vyhodnocování statistických veličin) 23

Paralelizace Monte Carlo (3) rozdělení počtu prováděných výpočtů na části (každý z M procesů bude provádět N/M z celkového počtu N výpočtů) možno použít jak na počítači se sdílenou pamětí, tak na počítači s distribuovanou pamětí (jednotlivé procesy spolu téměř nemusí komunikovat) nutnost komunikace pouze: počáteční zaslání dat a rozdělení úlohy předávání vygenerovaných náhodných veličin (často lze připravit předem) shomažd ování výsledků výpočtů (sečtení počtu vypočítaných překročení podmínky porušení v jednotlivých procesech) 24

Paralelizace Monte Carlo (4) Příklad implementace: program Monte pro paralelní provádění využívá MPI pro výpočty volá MKP program ufem nebo jiný kompatibilní program ve formě dynamické knihovny http://fast10.vsb.cz/brozovsky/articles/utils/ 25

Software pro paralelní výpočty v mechanice Komerční ANSYS: http://www.ansys.com standardně využívá 2 procesory, pro pokročilejší možnosti nutná doplňková licence Volně dostupné ufem: http://fast10.vsb.cz/brozovsky/ufem.html (omezené možnosti paralelního provádění) OOFEM: http://www.oofem.org (velmi pokročilé možnosti: metoda FETI apod.) 26

Příklad 1: Spolehlivostní analýza stavební konstrukce (1) Válcová skořepina zatížená vodním tlakem Použita simulační metoda Monte Carlo: 1000000 simulací r = 10 m p 27

Příklad 1: Spolehlivostní analýza stavební konstrukce (2) Závislost trvání výpočtu na počtu procesorů (Monte/MPI) 16 1 000 000 simulations 14 12 Time [s] 10 8 6 4 0 1 2 3 4 5 Processes [-] 28

Příklad 2: Výpočet MKP (1) Software ufem Lineární statika ve 3D, 35937 neznámých 29

Příklad 2: Výpočet MKP (2) Závislost trvání výpočtu na počtu procesorů (ufem/vlákna) 46 Arc 3D 44 42 40 38 Time [s] 36 34 32 30 28 26 24 0 1 2 3 4 5 Processes [-] 30

Příklad 3: Výpočet MKP (1) Software ufem Lineární statika ve 2D, 121200 neznámých 31

Příklad 3: Výpočet MKP (2) Závislost trvání výpočtu na počtu procesorů (ufem/vlákna) 32

Materiály pro další studium http://www.fast.vsb.cz/brozovsky http://www.oofem.org/en/documentation/manual.html http://www.ddm.org/ http://en.wikipedia.org/wiki/domain decomposition methods http://www.cs.rutgers.edu/ venugopa/parallel summer2012/ge.html 33

Literatura Okrouhlík et al, Numerical methods in computational mechanics, http://www.it.cas.cz/files/u1784/num methods in CM cor 2012 01 23.pdf B.H.V Topping, A.I. Khan, Parallel Finite Element Computations, Saxe- Coburg Publications, Edinburgh, UK, 1996. J. Kruis, Domain Decomposition Methods for Distributed Computing, Saxe-Coburg Publications, Stirlingshire, UK, 2006. M.J. Quinn, Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003. http://www.comp.leeds.ac.uk/pkj http://sprng.cs.fsu.edu/ 34