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
Diagram nasazení
Diagram tříd
Výkon Implementace pomocí OpenMP je rychlejší Pro matice velikosti 2000x2000: Java 74s vs. OpenMP 39s
Bezpečnost Žádné požadavky
Dostupnost Java Exceptions Automatická správa paměti C Pointers Manuální alokace/uvolňování paměti
Funkčnost Java – funguje jak má. OMP – také funguje jak má, při provázání přes JNI však nelze použít javovská vlákna
Usability Jednotné GUI v Javě Nebo oddělené konzolové programy
Modifikovatelnost Java – horší, ale má více možností OMP – snažší, ale omezenější
Portability Java – multiplatformní C, OMP – standardy Pro OpenMP je potřeba kompilátor s podporou, nepodporuje třeba VC EE
Reusability V obou případech celkem omezená, jedná se o funkce pro specifický výpočet.
Integrability Java – Objektově orientováno OMP – Procedurálně orientováno, řízeno diretivami
Testability V obou případech poměrně jednoduchá
Kvalita celkově KritériumJavaC + OMP Výkon ●●●○○●●●●● Dostupnost●●●●● ●●●○○ Funkčnost ●●●●● Modifikovatelnost ●●●○○●●○○○ Portability●●●●● ●●●●○ Reusability ●●○○○ Integrability ●●●●○●●●○○ Testability ●●●●● Celkem ●●●●○●●●○○