Multithread programming Java vs. OpenMP

10
Multithread programming Java vs. OpenMP Pavel Zavoral Martin Kugler

description

Multithread programming Java vs. OpenMP. Pavel Zavoral Martin Kugler. Abstrakt. Porovnání možností vícevláknového programování JVM OpenMP Násobení matic Vytvoření jednotného rozhraní v Javě Jednoduché GUI. Vlákna v Javě. Součást standardní knihovny jazyka - PowerPoint PPT Presentation

Transcript of Multithread programming Java vs. OpenMP

Page 1: Multithread programming Java vs. OpenMP

Multithread programmingJava vs. OpenMP

Pavel Zavoral

Martin Kugler

Page 2: Multithread programming Java vs. OpenMP

Abstrakt

Porovnání možností vícevláknového programováníJVMOpenMP

Násobení matic Vytvoření jednotného rozhraní v Javě Jednoduché GUI

Page 3: Multithread programming Java vs. OpenMP

Vlákna v Javě

Součást standardní knihovny jazyka Implementace v JVM (nezávislá na OS) Explicitní vytváření vláken

a synchronizace

Page 4: Multithread programming Java vs. OpenMP

OpenMP

Knihovna pro C/C++ a Fortran=> Java Native Interface

JOMP – pokus o implementaci v Javě Vícevláknové programování se sdílenou

pamětí pro matematické výpočty Direktivy preprocesoru pro určení

paralelních sekcí kódu

Page 5: Multithread programming Java vs. OpenMP

Fork-Join model

Střídání sekvenčních a paralelních částí Automatické vytváření vláken a synchronizace

Page 6: Multithread programming Java vs. OpenMP

Use cases

Page 7: Multithread programming Java vs. OpenMP

Scénář

Načíst obě matice (uživatel) Zadat metodu výpočtu (uživatel) Spustit počítání (uživatel) Spočítat součin zadanou metodou (aplikace) Zobrazit dobu výpočtu (aplikace) Uložit výsledek (uživatel)

Page 8: Multithread programming Java vs. OpenMP

Funkční požadavky

Spočítání součinu vybranou metodou Generování náhodné matice Měření doby výpočtu

Page 9: Multithread programming Java vs. OpenMP

Nefunkční požadavky

Jednotné API v Javě Jednoduché GUI

Page 10: Multithread programming Java vs. OpenMP

Diagram nasazení