100 likes | 262 Views
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
E N D
Multithread programmingJava 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í vJavě • Jednoduché GUI
Vlákna v Javě • Součást standardní knihovny jazyka • Implementace v JVM (nezávislá na OS) • Explicitní vytváření vláken asynchronizace
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
Fork-Join model • Střídání sekvenčních a paralelních částí • Automatické vytváření vláken a synchronizace
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)
Funkční požadavky • Spočítání součinu vybranou metodou • Generování náhodné matice • Měření doby výpočtu
Nefunkční požadavky • Jednotné API v Javě • Jednoduché GUI