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

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

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

Programování v C++ 1, 1. cvičení

Úvod do OpenMP. Jiří Fürst

Matematika v programovacích

Martin Lísal. Úvod do MPI

Vláknové programování část V

Vláknové programování část I

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

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

Motivace. Software. Literatura a odkazy

Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček

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

Optimalizace pomocí icc/gcc - vektorizace

Programování bez vláken. OpenMP

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

Paralelní programování

Paralelní architektury se sdílenou pamětí

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Paralelní architektury se sdílenou pamětí

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

Pokročilé architektury počítačů

C2115 Praktický úvod do superpočítání

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

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička

Jakub Čermák Microsoft Student Partner

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

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

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

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

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

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

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

Novinky ve Visual Studio Tomáš Kroupa

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Algoritmizace a programování

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Úvod. Programovací paradigmata

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Energetický ústav Odbor termomechaniky a techniky prostředí. Možnosti implementace vlastního kódu pro použití v simulačním software TRNSYS

Procesy a vlákna (Processes and Threads)

Multiplatformní GUI knihovna

Vláknové programování část V

4. Úvod do paralelismu, metody paralelizace

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

Paralelní programování

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

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Architektury paralelních počítačů I.

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

Implementace numerických metod v jazyce C a Python

MetaCentrum Aplikace a jejich další podpora

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

Paralelizace výpočtů v systému Mathematica

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

Cvičení předmětu MI-PAR P. Tvrdík, I. Šimeček, M. Šoch

Seznámení s prostředím dot.net Framework

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Využijte plný výkon procesorů s více jádry v LabVIEW 8.5

Paralelní výpočty na clusteru KMD

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

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

Úvod do programování v jazyce Java

Programování inženýrských aplikací

NĚKTERÉ ASPEKTY TVORBY KNIHOVEN V JAZYCE R

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

První kroky s METEL IEC IDE

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

Název diplomové práce: Srovnávač životního pojištění. Určení: Bakalářská práce. Vedoucí: Doc. Ing. Petr Sosík, Dr.

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

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Pokročilé architektury počítačů

Pavel Procházka. 3. prosince 2014

MetaCentrum. Tomáš Rebok MetaCentrum NGI, CESNET z.s.p.o. CERIT-SC, Masarykova Univerzita Olomouc,

Úvod do operačního systému Linux Mgr. Josef Horálek

C2115 Praktický úvod do superpočítání

Pohled do nitra mikroprocesoru Josef Horálek

CASE. Jaroslav Žáček

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

MIKROPROCESOROVÁ TECHNIKA

PROGRAMOVÁNÍ V C++ CVIČENÍ

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

DTP Základy programování Úvod do předmětu

14. Složitější konstrukce

C2110 Operační systém UNIX a základy programování

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

CASE nástroje. Jaroslav Žáček

Transkript:

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování Milan Šimko Technická univerzita v Liberci Interní odborný seminář KO MIX 19. prosince 2011

Obsah prezentace 1 MOTIVACE 2 VLÁKNOVÝ PARALELISMUS 3 IMPLEMENTACE 4 ZÁVĚR Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 2/ 20

Obsah prezentace MOTIVACE 1 MOTIVACE 2 VLÁKNOVÝ PARALELISMUS 3 IMPLEMENTACE 4 ZÁVĚR Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 3/ 20

MOTIVACE Motivace Paralelizace výpočetního jádra vyvíjeného počítačového programu byla motivována dvěma hlavními důvody: požadavek na maximální využití výkonu vícejádrových procesorů výpočetní stanice, optimalizace výpočetního času. S ohledem na hardware výpočetní stanice jsem zvolil cestu paralelizace pomocí OpenMP. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 4/ 20

MOTIVACE Motivace Paralelizace výpočetního jádra vyvíjeného počítačového programu byla motivována dvěma hlavními důvody: požadavek na maximální využití výkonu vícejádrových procesorů výpočetní stanice, optimalizace výpočetního času. S ohledem na hardware výpočetní stanice jsem zvolil cestu paralelizace pomocí OpenMP. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 4/ 20

MOTIVACE Motivace Paralelizace výpočetního jádra vyvíjeného počítačového programu byla motivována dvěma hlavními důvody: požadavek na maximální využití výkonu vícejádrových procesorů výpočetní stanice, optimalizace výpočetního času. S ohledem na hardware výpočetní stanice jsem zvolil cestu paralelizace pomocí OpenMP. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 4/ 20

MOTIVACE Motivace Paralelizace výpočetního jádra vyvíjeného počítačového programu byla motivována dvěma hlavními důvody: požadavek na maximální využití výkonu vícejádrových procesorů výpočetní stanice, optimalizace výpočetního času. S ohledem na hardware výpočetní stanice jsem zvolil cestu paralelizace pomocí OpenMP. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 4/ 20

Obsah prezentace VLÁKNOVÝ PARALELISMUS 1 MOTIVACE 2 VLÁKNOVÝ PARALELISMUS 3 IMPLEMENTACE 4 ZÁVĚR Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 5/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing Co je OpenMP? Standardizované rozhraní pro paralelní programování aplikací běžících na počítačových systémech se sdílenou pamětí. Sestává se ze sady direktiv pro kompilátor, knihovních metod a proměnných prostředí. Dostupné pro programovací jazyky C, C++ a Fortran. Vícevláknový paralelismus fork/join. Na vývoji se podílí hlavní výrobci hardwaru a softwaru(amd, IBM, Intel, Oracle, atd.). Aktuální verze projektu 3.1(9. červenec 2011, GNU/gcc v4.7). Domovská stránka projektu http://openmp.org. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 6/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing OpenMP vs. MPI Jednoduchost a přenositelnost. Možnost paralelizace jen nejkritičtějších částí programu. Omezeno pouze na systémy se sdíleným paměťovým prostorem. Vyžaduje překladač s podporou OpenMP. Poznámka(Podpora OpenMP v sadě kompilátorů GNU/gcc) $ gcc -fopenmp -o hello hello.c $ g++ -fopenmp -o hello hello.cpp $ gfortran -fopenmp -o hello hello.f95 Projekt v QtCreatoru: následující řádky vložit do souboru hello.pro 1 QMAKE_CXXFLAGS += -fopenmp 2 QMAKE_LFLAGS += -fopenmp Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 7/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing OpenMP vs. MPI Jednoduchost a přenositelnost. Možnost paralelizace jen nejkritičtějších částí programu. Omezeno pouze na systémy se sdíleným paměťovým prostorem. Vyžaduje překladač s podporou OpenMP. Poznámka(Podpora OpenMP v sadě kompilátorů GNU/gcc) $ gcc -fopenmp -o hello hello.c $ g++ -fopenmp -o hello hello.cpp $ gfortran -fopenmp -o hello hello.f95 Projekt v QtCreatoru: následující řádky vložit do souboru hello.pro 1 QMAKE_CXXFLAGS += -fopenmp 2 QMAKE_LFLAGS += -fopenmp Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 7/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing OpenMP vs. MPI Jednoduchost a přenositelnost. Možnost paralelizace jen nejkritičtějších částí programu. Omezeno pouze na systémy se sdíleným paměťovým prostorem. Vyžaduje překladač s podporou OpenMP. Poznámka(Podpora OpenMP v sadě kompilátorů GNU/gcc) $ gcc -fopenmp -o hello hello.c $ g++ -fopenmp -o hello hello.cpp $ gfortran -fopenmp -o hello hello.f95 Projekt v QtCreatoru: následující řádky vložit do souboru hello.pro 1 QMAKE_CXXFLAGS += -fopenmp 2 QMAKE_LFLAGS += -fopenmp Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 7/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing OpenMP vs. MPI Jednoduchost a přenositelnost. Možnost paralelizace jen nejkritičtějších částí programu. Omezeno pouze na systémy se sdíleným paměťovým prostorem. Vyžaduje překladač s podporou OpenMP. Poznámka(Podpora OpenMP v sadě kompilátorů GNU/gcc) $ gcc -fopenmp -o hello hello.c $ g++ -fopenmp -o hello hello.cpp $ gfortran -fopenmp -o hello hello.f95 Projekt v QtCreatoru: následující řádky vložit do souboru hello.pro 1 QMAKE_CXXFLAGS += -fopenmp 2 QMAKE_LFLAGS += -fopenmp Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 7/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing OpenMP vs. MPI Jednoduchost a přenositelnost. Možnost paralelizace jen nejkritičtějších částí programu. Omezeno pouze na systémy se sdíleným paměťovým prostorem. Vyžaduje překladač s podporou OpenMP. Poznámka(Podpora OpenMP v sadě kompilátorů GNU/gcc) $ gcc -fopenmp -o hello hello.c $ g++ -fopenmp -o hello hello.cpp $ gfortran -fopenmp -o hello hello.f95 Projekt v QtCreatoru: následující řádky vložit do souboru hello.pro 1 QMAKE_CXXFLAGS += -fopenmp 2 QMAKE_LFLAGS += -fopenmp Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 7/ 20

VLÁKNOVÝ PARALELISMUS Open Multi Processing OpenMP vs. MPI Jednoduchost a přenositelnost. Možnost paralelizace jen nejkritičtějších částí programu. Omezeno pouze na systémy se sdíleným paměťovým prostorem. Vyžaduje překladač s podporou OpenMP. Poznámka(Podpora OpenMP v sadě kompilátorů GNU/gcc) $ gcc -fopenmp -o hello hello.c $ g++ -fopenmp -o hello hello.cpp $ gfortran -fopenmp -o hello hello.f95 Projekt v QtCreatoru: následující řádky vložit do souboru hello.pro 1 QMAKE_CXXFLAGS += -fopenmp 2 QMAKE_LFLAGS += -fopenmp Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 7/ 20

Obsah prezentace IMPLEMENTACE 1 MOTIVACE 2 VLÁKNOVÝ PARALELISMUS 3 IMPLEMENTACE 4 ZÁVĚR Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 8/ 20

IMPLEMENTACE QApplication MainWindow: QMainWindow QApplication::exec() GLWidget: QGLWidget ToolBar: QToolBar hlavní vlákno aplikace paralelní výpočetní jadro Kernel:QThread:Model QThread::exec() CircleCollector ICollector WireCollector Obr. 1: Hierarchický diagram tříd. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 9/ 20

IMPLEMENTACE QThread::exec() QThread tok instrukcí Obr. 2: Schema vláknového paralelismu uvnitř výpočetního vlákna. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 10/ 20

IMPLEMENTACE vlákno 0 vlákno 1 QThread::exec() QThread FORK vlákno 2. vlákno n tok instrukcí Obr. 2: Schema vláknového paralelismu uvnitř výpočetního vlákna. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 10/ 20

IMPLEMENTACE vlákno 0 vlákno 1 QThread::exec() QThread FORK vlákno 2. vlákno n JOIN tok instrukcí Obr. 2: Schema vláknového paralelismu uvnitř výpočetního vlákna. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 10/ 20

IMPLEMENTACE vlákno 0 vlákno 1 QThread::exec() vlákno 0 vlákno 1 QThread FORK vlákno 2. JOIN FORK vlákno 2. JOIN vlákno n tok instrukcí vlákno n Obr. 2: Schema vláknového paralelismu uvnitř výpočetního vlákna. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 10/ 20

IMPLEMENTACE Obr. 3: Vývojový diagram. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 11/ 20

IMPLEMENTACE 1 void Model::computeFFE(const int &n0, 2 const int &n, 3 const double &t, 4 const unsigned short &kold, 5 BEAD *pb) 6{ 7 double *pe = new double [3]; 8#pragma omp parallel for shared(pb) 9 for (int i = n0; i < n; ++i) { 10 pe = pic->computefield(kold, pb[i].rr); 11 pb[i].ffe[x] = KE/pB[i].m*pE[X]*pB[i].q; 12 pb[i].ffe[y] = KE/pB[i].m*pE[Y]*pB[i].q; 13 pb[i].ffe[z] = KE/pB[i].m*pE[Z]*pB[i].q; 14 } // end of parallel loop 15 delete [] pe; pe = 0; 16} Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 12/ 20

IMPLEMENTACE 1 void Kernel::eulerCromer(const int &n0, 2 const int &n, 3 const double &t, 4 const double &dt, 5 const unsigned short &kold, 6 const unsigned short &knew, 7 BEAD *pb, DUMBBELL *pd) 8{ 9#pragma omp parallel sections 10 { 11#pragma omp section 12 { 13 computeffc(n0, n, t, kold, pb); 14 } 15 [...]; 16 } // end of parallel sections Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 13/ 20

IMPLEMENTACE 11#pragma omp barrier 12#pragma omp parallel for shared(pb,pd) 13 for (int i = n0; i < n-1; ++i) { 14 // ODE(1): Constitutive equation 15 pd[i].s[knew] = [...]; 16 // ODE(2): Motion equation 17 pb[i].vv[x][knew] = [...]; 18 pb[i].vv[y][knew] = [...]; 19 pb[i].vv[z][knew] = [...]; 20 // ODE(3): Kinematics equation 21 pb[i].rr[x][knew] = [...]; 22 pb[i].rr[y][knew] = [...]; 23 pb[i].rr[z][knew] = [...]; 24 } // end of parallel loop 25} Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 14/ 20

IMPLEMENTACE 1 void Kernel::computeErr(const double &rb, 2 const double &_rb, 3 double &err_max) 4{ 5 double err = 2.0*fabs(_rB-rB); 6#pragma omp critical 7 if (err > err_max) 8 err_max = err; 9#ifdef DEBUG 10 qdebug("error %12.7f Error max: %12.7f", 11 err, err_max); 12#endif 13} Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 15/ 20

Obsah prezentace ZÁVĚR 1 MOTIVACE 2 VLÁKNOVÝ PARALELISMUS 3 IMPLEMENTACE 4 ZÁVĚR Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 16/ 20

ZÁVĚR Tab. 1: Porovnání výpočetních časů sériového a paralelního zdrojového kódu v závislosti na velikosti řešené úlohy. N 100 200 400 800 1 600 Čas a (s) 46.206 93.196 181.996 360.311 699.387 Čas b (s) 43.498 76.774 138.300 273.608 546.302 a Sekvenčníaplikace. b Paralelníaplikace. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 17/ 20

ZÁVĚR 700 600 N= 100 N= 200 N= 400 N= 800 N=1600 výpočetní čas(s) 500 400 300 200 100 0 1 2 počet vláken v paralelním týmu Obr. 4: Grafické znázornění výsledků porovnání výpočetních časů sériového a paralelního zdrojového kódu v závislosti na velikosti řešené úlohy. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 18/ 20

ZÁVĚR Použité zdroje [1] OpenMP Application Program Interface v3.0, May 2008. Dostupné z: http://www.openmp.org/mp-documents/spec30.pdf. [2] OpenMP Application Program Interface v3.1, July 2011. Dostupné z: http://www.openmp.org/mp-documents/openmp3.1.pdf. [3]QUINN,M.J. ParallelProgramminginCwithMPIandOpenMP. 1stedition.NewYork:McGraw Hill,2003. 529s. ISBN 007 282256 2. [4] STALLMAN, R. M. the gcc Developer Community. Using the GNU Compiler Collection v4.6.2, October 2011. Dostupné z: http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc.pdf. Milan Šimko (TUL) Modelování bičující nestability Odborný seminář KO MIX 19/ 20

Děkuji za pozornost. PODĚKOVÁNÍ: Vytvořeno za podpory projektu ESF č. CZ.1.07/2.3.00/09.0155 Vytvoření a rozvoj týmu pro náročné technické výpočty na paralelních počítačíchnatuvliberci. Milan Šimko Technická univerzita v Liberci Studentská 2, 461 17 Liberec Česká republika Sazba systémem LATEX