Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Vědecké výpočty v Jave
2
Vědecké výpočty – Definice
Cílem je řešení problémů reálného světa Nutnost využití ICT – současné problémy jsou příliš složité/časově náročné Obvykle jde o výpočty v pohyblivé řádové čárce (floating point arithmetic) Většinou jsou prováděny na superpočítačích, distrubuovaných počítačových sítích (grid computing), nebo na samostatných počítačových platformách (cloud computing)
3
Vědecké výpočty – využití
Využívá se v odvětvích, kde je třeba zpracovat velké množství dat, např.: Bioinformatika, výpočetní biologie Chemoinformatika, výpočetní chemie Výpočetní matematika, výpočetní statistika Výpočetní fyzika Finanční modelování, výpočetní ekonomie V CERNu se zpracovává okolo 1 petabytu dat denně
4
Technologie Pro vědecké výpočty se využívají různé programovací jazyky a technologie FORTRAN C/C++ Python MATLAB Mathematica R Scala
5
Proč Java Objektově orientovaný jazyk Garbage Collector
Velké množství programátorů Portabilita Již neplatí, že programy v Javě jsou pomalé – ve vědeckých výpočtech obecně dosahují okolo 50%, v některých případech však i 90% rychlosti programů psaných ve Fortranu nebo C/C++ Podpora multithreadingu
6
Nevýhody Javy Nepodporuje komplexní čísla
Nemožnost přetěžování operátorů -> často nevzhledná syntaxe Přes značné zrychlení nedosahuje výkonnosti programů napsaných ve Fortranu, C, atd.
7
Knihovny Colt Apache Commons Math ND4J EJML jblas MTJ ojAlgo
8
Porovnání – Pure Java
9
Porovnání – Java + nativní kód
10
Porovnání – Java + nativní kód
11
Porovnání
12
Colt Vyvinut v CERNu Podpora vícerozměrných polí, histogramů, simulace Monte Carlo a dalších Poslední verze vydána 9. září 2004, codebase byla integrována do knihovny Parallel Colt, která obsahuje kompletní funkcionalitu knihovny Colt a přidává podporu multithreadingu, specializované maticové datové struktury, netlib-java a další
13
jblas Knihovna založená na BLAS a LAPACK – v podstatě wrapper nad BLAS a LAPACK rutinami – programátor se nemusí zabývat volacími konvencemi Fortranu atd.
14
Apache Commons Math Operace s komplexními čísly, maticemi, vektory, atd. Knihovna je vhodná pro menší množství dat math/
15
ojAlgo Nejrychlejší pure Java knihovna zaměřená na matematiku, lineární algebru a optimalizaci, nezávislá na jiných knihovnách
16
Efficient Java Matrix Library (EJML)
Knihovna zaměřená na vyrovnanou rychlost u malého i velkého množství dat 3 způsoby interakce: procedurální – obecně nejrychlejší, SimpleMatrix – objektový, Equations – symbolický rovnicový zápis připomínající MATLAB
17
ND4J Podpora CUDA GPU Sesterská knihovna ND4S (Scala) syntakticky napodobuje populární Python knihovnu Numpy
18
MTJ Nejrychlejší knihovna pro vědecké výpočty – je založena BLAS a LAPACK Využívá netlib-java -> automaticky použije optimalizovaný nativní kód
19
Odkazy Benchmarks - Benchmark/ &type=pdf&doi=
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.