Od lineárních rovnic k extrémním superpočítačovým úlohám. Vít Vondrák

Podobné dokumenty
IT4I HPC prostředky pro řešení obrovských inženýrských úloh

Povídání na téma. SUPERPOČÍTAČE DNES A ZÍTRA (aneb krátký náhled na SC) Filip Staněk

Úvod do lineární algebry

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

Část 2 POROVNÁNÍ VÝKONNOSTI A POUŽITELNOSTI ARCHITEKTUR V TYPICKÝCH APLIKACÍCH

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

Povídání na téma SUPERPOČÍTAČE DNES A ZÍTRA

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Aplikovaná numerická matematika - ANM

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Matematický ústav Univerzity Karlovy v Praze Sokolovská 83, Praha 8. M. Mádĺık (MFF UK) Numerické knihovny 18.

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

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Základy matematiky pro FEK

Operace s maticemi

Základy maticového počtu Matice, determinant, definitnost

Lineární algebra - I. část (vektory, matice a jejich využití)

Základní rutiny pro numerickou lineární algebru. I. Šimeček, M. Šoch

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

8 Matice a determinanty

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

0.1 Úvod do lineární algebry

Grid jako superpočítač

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

Operace s maticemi. 19. února 2018

Četba: Texty o lineární algebře (odkazy na webových stránkách přednášejícího).

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

4. Trojúhelníkový rozklad p. 1/20

Matematika B101MA1, B101MA2

Lineární algebra Operace s vektory a maticemi

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Soustavy linea rnı ch rovnic

DEFINICE Z LINEÁRNÍ ALGEBRY

Blue Gene Vysoká škola báňská-technická univerzita Ostrava. Blue Gene. Karel Chrastina. Úvod. Blue Gene L. Blue Gene P.

0.1 Úvod do lineární algebry

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Vektory a matice. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)

Slajdy k přednášce Lineární algebra I

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

MENDELOVA UNIVERZITA V BRNĚ LDF MT MATEMATIKA VEKTORY, MATICE

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Kapitola 11: Vektory a matice:

(Cramerovo pravidlo, determinanty, inverzní matice)

Představení a vývoj architektur vektorových procesorů

AVDAT Vektory a matice

Co je obsahem numerických metod?

Numerické metody a programování

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy

Implementace numerických metod v jazyce C a Python

Cvičení z Lineární algebry 1

1 0 0 u 22 u 23 l 31. l u11

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

ekologie Pavel Fibich Vektor a Matice Operace s maticemi Vlastnosti matic Pavel Fibich Shrnutí Literatura

Matematika. Kamila Hasilová. Matematika 1/34

Uspořádanou n-tici reálných čísel nazveme aritmetický vektor (vektor), ā = (a 1, a 2,..., a n ). Čísla a 1, a 2,..., a n se nazývají složky vektoru

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

Kapitola 11: Vektory a matice 1/19

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

Soustavy lineárních rovnic

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Připomenutí co je to soustava lineárních rovnic

Pokročilé architektury počítačů

GPGPU. Jan Faigl. Gerstnerova Laboratoř pro inteligentní rozhodování a řízení České vysoké učení technické v Praze

Dnešní látka Opakování: normy vektorů a matic, podmíněnost matic Jacobiova iterační metoda Gaussova-Seidelova iterační metoda

ALGEBRA. Téma 5: Vektorové prostory

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

VĚTY Z LINEÁRNÍ ALGEBRY

Od Pythagorovy věty k super-počítání

1 Vektorové prostory.

DRN: Soustavy linárních rovnic numericky, norma

Numerické metody a programování. Lekce 4

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

UMÍ POČÍTAČE POČÍTAT?

7. Lineární vektorové prostory

Soustavy lineárních rovnic a determinanty

Množinu všech matic typu m n nad tělesem T budeme označovat M m n (T ), množinu všech čtvercových matic stupně n nad T pak M n (T ).

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

Hardware. Příklad převodu čísla: =1*32+0*16+0*8+1*4+0*2+1*1= Převod z dvojkové na desítkovou Sčítání ve dvojkové soustavě

PROCESOR. Typy procesorů

Všechno, co jste kdy chtěli vědět o maticích, ale báli jste se zeptat

Cvičení z Numerických metod I - 12.týden

a + b + c = 2 b + c = 1 a b = a 1 2a 1 + a a 3 + a 5 + 2a 2 + a 2 + a

Závěrečná zpráva projektu Experimentální výpočetní grid pro numerickou lineární algebru

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

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

Matematika 2 pro PEF PaE

ftp://math.feld.cvut.cz/pub/olsak/linal/

z textu Lineární algebra

5. Maticová algebra, typy matic, inverzní matice, determinant.

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

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

NALG 001 Lineární algebra a geometrie 1, zimní semestr MFF UK Doba řešení: 3 hodiny

Osobní počítač. Zpracoval: ict Aktualizace:

2 Vektorové normy. Základy numerické matematiky - NMNM201. Definice 1 (Norma). Norma je funkcionál splňující pro libovolné vektory x a y a pro

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0

Transkript:

Od lineárních rovnic k extrémním superpočítačovým úlohám Vít Vondrák

Od lineárních rovnic k extrémním superpočítačovým úlohám Vít Vondrák + David Horák a jeho Permoník

Osnova přednášky Zobrazování čísel v počítači Základy lineární algebry Vektory, ma@ce a operace s nimi Výpočetní náročnost operací Basic Linear Algebra Subprograms Blokové maece a paralelizace operací Efek@vita a škálovatelnost operací Řešení soustav lineárních rovnic Linpack test a výkon počítačů Závěr

Zobrazení čísel v počítači 1 bit = hodnota 0 nebo 1 1Byte (1B) = 8 bitů Dvojková číselná soustava 100101 2 = ( 1) 1 (0 2 4 + 0 2 3 +1 2 2 + 0 2 1 +1 2 0 ) = 5 10 Pozice 7 6 5 4 3 2 1 0 Hodnota 1 0 0 0 0 1 0 1 1B zobrazí - 128.. 127, 0.. 255 bez znaménka 2B zobrazí - 32 768..32 767, 0..65 565 bez znaménka 32bit architektura: integer = 4B (až 4 294 967 295) 64bit architektura: long = 8B (až 18 446 744 073 709 551 615)

Jak se zobrazí racionální nebo reálné číslo? Systém s pohyblivou řádovou čárkou 25,167 = 0, 25167 10 2 = = ( 1) 0 (2 10 1 + 5 10 2 +1 10 3 + 6 10 4 + 7 10 5 ) 10 2 b=10: základ systému (2,10,16) a=[2,5,1,6,7]: manesa (0..9) e=2: exponent + znaménko Pohyblivá řádová čárka = FloaEng point (eng.) Čísla uložená v tomto systému jsou racionální Ryze reálná čísla nelze přesně reprezentovat Dokonce ani některá racionální čísla (⅓) nelze přesně reprezentovat

Zobrazení v počítači p 1 ' 1+ a k 2 k ) 2 e = (1+1 2 1 + 0 2 2 +1 2 3 +1 2 4 + 0 2 5 ) 2 1 = 3,375 % ( k=1 a=[1,0,1,1,0] manesa (p=6), e=1 exponent Single precision (float): 4B Double precision (double): 8B

Floa@ng point opera@on - FLOP Výpočetní náročnost počet operací v pohyblivé řádové čárce FLOPs Výpočetní výkon počítače počet operací v pohyblivé řádové čárce za sekundu FLOPS = Floa@ng point Opera@ons Per Second (FLOP/s) TeoreEcký výkon: FLOPS = cores frequency FLOPs cycle cores počet jader procesoru, např. 2 Frequency takt procesoru, např. 1.8GHz FLOPs/cycle počet instrukcí za sekundu, typicky 4 až 8.

Aritme@cké vektory AritmeEcký vektor = uspořádaná n- Ece reálných čísel v = [ v 1, v 2,..., v n ] n se nazývá dimenze vektoru, n=dim v [v] i značí i- tou složku vektoru v Příklady: x = [1,3, 2.5,300], dimx = 4 o = " 0,0,...,0 %, 1 = " 1,1,...,1 %, e = " 0,...,1,...,0 i %

Operace s aritme@ckými vektory Násobení aritmeeckého vektoru skalárem [αv] i = α[v] i, αv =! " αv 1,αv 2,...,αv n Výpočetní náročnost: f(n)=n Sčítání aritmeeckých vektorů stejné dimenze [u + v] i = [u] i +[v] i, u + v =! u 1 + v 1,u 2 + v 2,...,u n + v " n Výpočetní náročnost: f(n)=n Asympto>cká složitost: O(N) f(n)=a+b.n

Operace s aritme@ckými vektory Skalární součin dvou vektorů stejné dimenze u v = u 1 v 1 + u 2 v 2 +...+ u n v n Výpočetní náročnost: f(n)=2n- 1, tj. O(n) Norma vektoru v = v 2 1 + v 2 2 +...+ v 2 n = v v Výpočetní náročnost: f(n)=2n, tj. O(n)

Výkonnostní test Operace násobení skalárem + sčítání vektorů Implementace: y <- αx + y Výpočetní náročnost: f(n)=2n, tj. O(n) void daxpy(int n,double alpha, double *x, double *y) {!! }! for(int i=0;i<n;i++)! "y[i] = alpha*x[i] + y[i];! Testováno na MacBook Air, Intel i7, 1.8GHz

Výsledky testu procedury DAXPY VV_DAXPY GFLOPs GFLOP/s time[s] 1 000 000 0,00186265 0,443569 0,00419922 2 000 000 0,00372529 0,399445 0,00932617 4 000 000 0,00745058 0,447472 0,0166504 8 000 000 0,0149012 0,431649 0,0345215 16 000 000 0,0298023 0,37537 0,0793945 32 000 000 0,0596046 0,376412 0,15835 64 000 000 0,119209 0,291303 0,409229 128 000 000 0,238419 0,189491 1,2582 f (2n) f (n) = 2(2n) 2n = 2 Předpona FLOPS yoda 10 24 zeda 10 21 exa 10 18 peta 10 15 tera 10 12 giga 10 9 mega 10 6 kilo 10 3

Výsledky testu procedury DAXPY Předpona FLOPS yoda 10 24 zeda 10 21 exa 10 18 peta 10 15 tera 10 12 giga 10 9 mega 10 6 kilo 10 3

Ma@ce MaEce = množina m x n reálných čísel uspořádaných do m řádků a n sloupců! A = " a 11 a 12! a 1n a 21 a 22! a 2n!! "! a m1 a m2! a mn! = % " r 1 A r 2 A! r m A! A = s 1 " % [A] i,j značí prvek v i- tém řádku a j- tém sloupci r i A = [a i1, a i2,, a in ] označuje i- tý řádek s j A značí j- tý sloupec s 2 A s n A %

Příklady ma@c " A = 2 3 0 1 1 1 1 2 0 1 1 2 1 π 2 5 3 % " ' ' ', O = ' ' 0 0! 0 0 0! 0 " " " 0 0! 0 % " ' ', I = ' ' 1 0! 0 0 1! 0 " " " 0 0! 1 % ' ' ' ' 2 1 4 3 5 A = 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1

Operace s ma@cemi Násobení maece skalárem [αa] ij = α[a] ij! αa = " αa 11 αa 12! αa 1n αa 21 αa 22! αa 2n!! "! αa m1 αa m2! αa mn! = % " A αr 1 A αr 2! αr m A! = αs A 1, αs A A 2,, αs n " % % Výpočetní náročnost při m=n: f(n)=n 2, tj. O(n 2 )

Operace s ma@cemi Sčítání maec stejného typu [A + B] ij = [A] ij +[B] ij! A + B = " a 11 + b 11 a 12 + b 12! a 1n + b 1n a 21 + b 21 a 22 + b 22! a 2n + b 2n!! "! a m1 + b m1 a m2 + b m2! a mn + b mn % Výpočetní náročnost při m=n: f(n)=n 2, tj. O(n 2 )

Operace s ma@cemi Transponování maec! A T = " [A T ] ij = [A] ji a 11 a 21! a m1 a 12 a 22! a m2!! "! a 1n a 2n! a mn! A = r 1 " % ( ) T, ( A r ) T 2,, ( A r ) T m Zamění se počet řádků a počet sloupců Výpočetní náročnost: f(n)=0, tj. O(1)! = % " ( A s ) T 1 ( A s ) T 2! ( A s ) T n %

Operace s ma@cemi Násobení maece m x n a vektoru dimenze n [Av] i = [A] i1 [v] 1 +[A] i2 [v] 2 +...+[A] in [v] n =! Av = " a 11 a 12! a 1n a 21 a 22! a 2n!! "! a m1 a m2! a mn! %" v 1 v 2! v n! = % " n k=1 [A] ij [v] j = r i A v a 11 v 1 + a 12 v 2 +...+ a 1n v n a 21 v 1 + a 22 v 2 +...+ a 2n v n! a m1 v 1 + a m2 v 2 +...+ a mn v n % Výpočetní náročnost při m=n: f(n)=n(n+n- 1)=2n 2 - n, tj. O(n 2 )

Výkonnostní test Operace násobení skalárem + násobení vektorem + sčítání vektorů Implementace: y <- αax + βy Výpočetní náročnost: f(n)=3n 2 +n, tj. O(n 2 )! void dgemv(int m, int n, double alpha, double *A, double *x, " " " "double beta, double *y) {! } int i,j;! "for(i=0;i<m;i++) {! y[i] *= beta;! " " for(j=0;j<n;j++)! "}! y[i] += alpha*a[m*i+j]*x[j];!

Výkonnostní test Operace násobení skalárem + násobení vektorem + sčítání vektorů Implementace: y := α(ax) + βy Výpočetní náročnost: f(n)=2n 2 +3n, tj. O(n 2 )! void dgemv(int m, int n, double alpha, double *A, double *x, " " " "double beta, double *y) {! } int i,j; double temp;! "for(i=0;i<m;i++) {! y[i] *= beta; temp=0;! " " for(j=0;j<n;j++)! temp += A[m*i+j]*x[j];! " "y[i] += temp*alpha;! "}!

Výsledky testu procedury DGEMV MY_DGEMV GFLOPs GFLOPs/s time [s] 1000 0,0027949 0,554378 0,0050415 2000 0,0111777 0,560392 0,0199463 4000 0,0447072 0,536932 0,0832642 8000 0,178821 0,520346 0,343658 16000 0,715271 0,535532 1,33563 f (2n) f (n) = 3(2n)2 + 2n 3n 2 + n = 4(3n2 + n) 2n n(3n +1 = 12n2 + 4n 2n 3n 2 + n = 4 = 2n n(3n +1) = 4 2 3n +1 4 Předpona FLOPS yoda 10 24 zeda 10 21 exa 10 18 peta 10 15 tera 10 12 giga 10 9 mega 10 6 kilo 10 3

Výsledky testu procedury DGEMV Předpona FLOPS yoda 10 24 zeda 10 21 exa 10 18 peta 10 15 tera 10 12 giga 10 9 mega 10 6 kilo 10 3

Operace s ma@cemi Násobení maece m x p s maecí p x n AB = A! s B B 1,...,s " n =! As B B ",...,As 1 n [AB] ij = [A] i1 [s j B ] 1 +[A] i2 [s j B ] 2 +...+[A] ip [s j B ] p =! AB = a i1! a ip "! % " b 1 j! b pj p k=1! = r A B i s j % " [A] ik [B] kj = r i A s j B Výpočetní náročnost při m=n=p: f(n)=n 2 (2n- 1)=2n 3 - n 2, tj. O(n 3 ) %

Výkonnostní test Operace násobení skalárem + násobení vektorem + sčítání vektorů Implementace: C := αab + βc Výpočetní náročnost: f(n)=3n 3 +n 2, tj. O(n 3 )! void dgemm(int m, int n, int k, double alpha, double *A, double *B, " " "double beta, double *C) {! } int i,j,c;! for(i=0;i<m;i++) {! for(j=0;j<n;j++) {! C[m*i+j] *= beta;! " " " for(c=0;c<n;c++)! " "}! }! C[m*i+j] += alpha*a[m*i+c]*b[k*c+j];!

Výsledky testu procedury DGEMM VV_DGEMM GFLOPs GFLOP/s time [s] 500 0,349479 0,364412 0,959021 1000 2,7949 0,218035 12,8186 2000 22,3555 0,195408 114,404 4000 178,829 0,168494 1061,34 f (2n) f (n) = 3(2n)3 + 2(2n) 2 3n 3 + 2n 2 = 24n3 +8n 2 +8n 2 8n 2 3n 3 + 2n 2 = = 8(3n3 + 2n 2 ) 8n 2 3n 3 + 2n 2 = 8 8n 2 n 2 (3n +1) = 8 8 3n +1 8 Předpona FLOPS yoda 10 24 zeda 10 21 exa 10 18 peta 10 15 tera 10 12 giga 10 9 mega 10 6 kilo 10 3

Výsledky testu procedury DGEMM Předpona FLOPS yoda 10 24 zeda 10 21 exa 10 18 peta 10 15 tera 10 12 giga 10 9 mega 10 6 kilo 10 3

Basic Linear Algebra Subprograms - BLAS Standardizace nejčastěji používaných operací v lineární algebře, tj. operací s vektory a maecemi Poprvé zmíněno Lawsonem, Hansonem, Kincaidem a Kroghem v roce 1979. Dnes existuje celá řada knihoven implementující velmi efekevně BLAS ACML - AMD Core Math Library ATLAS - Automa@cally Tuned Linear Algebra Sotware cublas BLAS pro NVIDIA GPU karty Intel MKL - Intel Math Kernel Library Netlib BLAS.

Standardizace názvů subrou@n Dle datových typů S... Single precision D... Double precision C... Komplexní čísla Dle typů maec: GE GEneral obecné ma@ce GB General Banded obecná pásová ma@ce SY Symmetric symetrická ma@ce TR Triangular trojúhelníková ma@ce Příklad: DGEMM = Double precision, GEneral matrix, Matrix- Matrix operaeon

BLAS úrovně 1 Operace s vektory a s asymptoeckou náročnost O(n) Název Operace Předpony _SWAP x y S, D, C, Z _SCAL x αx S, D, C, Z, CS, ZD _COPY y x S, D, C, Z _AXPY y αx + y S, D, C, Z _DOT dot x T y S, D, DS _NRM2 nrm2 x 2 S, D, SC, DZ _ASUM asum Re(x) 1 + Im(x) 1 S, D, SC, DZ

BLAS úrovně 2 Operace s vektory a maecemi a s asymptoeckou náročnost O(n 2 ) Název Operace Předpony _GEMV y αax + βy, y αa T x + βy S, D, C, Z _GBMV y αax + βy, y αa T x + βy S, D, C, Z _SYMV y αax + βy S, D _SBMV y αax + βy S, D _TRMV x Ax, x A T x, x A H x S, D, C, Z _TRSV x A -1 x, x A -T x, x A -H x S, D, C, Z _GER A αx T y + A S, D _SYR A αx T x + A S, D

BLAS úrovně 3 Operace s maecemi a s asymptoeckou náročnost O(n 3 ) Název Operace Předpony _GEMM C αop(a)op(b) + βc, op(x)=x, op(x)=x T S, D, C, Z _SYMM C αab + βc, C αab + βc S, D, C, Z _SYRK C αaa T + βc, C αa T A + βc S, D _TRMM B αab, B αa T B, B αba, B αba T S, D, C, Z _TRSM B αa -1 B, B αa -T B, B αba -1, B αba - T S, D, C, Z

! Výkonnostní test DGEMM DGEMM: C := αab + βc implementace Intel Math Kernel Library Výpočetní náročnost: O(n 3 ), paměťové nároky: cca 1,5GB MKL DGEMM GFLOPs GFLOP/s MT time [s] 1T time[s] VV time[s] 500 0,233063 19,2271 0,0121216 0,0124512 0,959021 1000 1,86358 19,0366 0,0978943 0,101953 12,8186 2000 14,9049 21,6213 0,689362 0,769043 114,404 4000 119,224 21,577 5,52551 5,99673 1061,34 8000 953,734 21,6729 44,0057 49,2425 Testováno na MacBook Air, Intel i7, 1.8GHz TeoreEcký výkon: 2 x 1,8GHz x 8 = 28,8 GFLOP/s

Výsledky testu procedury DGEMM

Superpočítač Anselm

Superpočítač Anselm

Superpočítač Anselm X86_64 cluster Bull Extreme CompuAng bullx technology Výpočetní uzly bez akcelerace 180 uzlů 2880 CPU jader 2x Intel Sandy Bridge E5-2665, 8- core, 2.4GHz procesorů na jádro 64 GB fyzické pamě@ na uzel 1x 500GB SATA 2,5 7,2 krpm HDD na uzel Teore@cký výkon:: 19.2 Gflop/s na jádro Výpočetní uzly s akcelerací 27 uzlů 2x Intel Sandy Bridge E5-2470, 8- core, 2.3GHz procesorů na uzel 96 GB fyzické pamě@ na uzel 1x 500GB SATA 2,5 7,2 krpm na uzel 23x GPU accelerator NVIDIA Tesla Kepler K20 1x per node 4x MIC accelerator 1x Intel Phi 5110P per node

! Výkonnostní test DGEMM na Anselmovi DGEMM: C := αab + βc implementace Intel Math Kernel Library Výpočetní náročnost: O(n 3 ), Paměťová náročnost: cca 6GB MKL DGEMM GFLOPs GFLOP/s MT time [s] 1T time [s] MacBook time [s] 500 0,233063 9,32254 0,025 0,015625 0,0121216 1000 1,86358 74,5431 0,025 0,11875 0,0978943 2000 14,9049 198,732 0,075 0,940625 0,689362 4000 119,224 238,448 0,5 7,46562 5,52551 8000 953,734 246,125 3,875 59,3 44,0057 16000 7629,63 255,385 29,875 TeoreEcký výkon 1 uzlu: 16 x 2,4GHz x 8 = 307,2 GFLOP/s

Výsledky testu DGEMM na Anselmovi

Blokové vektory a ma@ce Rozdělení vektoru do nezávislých bloků " v = 1 2 1 0 1 3 2 5 2 % ' v = " v 1 v 2 v 3 % ' Příklad: Blokový výpočet skalárního součinu u = [u 1,u 2,u 3 ]! " v = [v 1,v 2,v 3 ] u v = ' ( α 1 = u 1 v 1 α 2 = u 2 v 2 α 3 = u 3 v 3! " = α 1 +α 2 +α 3

Blokové vektory a ma@ce Rozdělení maec do nezávislých bloků " A = 1 2 1 0 1 1 0 1 0 0 1 3 0 0 1 1! Av = A A 11 12 " A 21 A 22! %" % ' ' ' ' Blokový součin maece vektor: v 1 v 2 + ) = ), % ) ) -) " A = A A 11 12 A 21 A 22 u 1 = A 11 v 1 u 2 = A 12 v 2 u 3 = A 21 v 1 u 4 = A 22 v 2 % ' ' ' ) )! ( = u + u 1 2 ) " u 3 + u 4 ) *) %

Jiný příklad distribuce ma@cových bloků " A = 1 2 1 0 1 1 0 1 0 0 1 3 0 0 1 1 % ' ' ' ' " A = A 11 A 21 A 31 A 41 % ' ' ' ' ' ' Blokový součin maece vektor:! Av = " A 11 A 21 A 31 A 41 v = % '! ) ) ( ) ) *) " u 1 = A 11 v u 2 = A 21 v u 3 = A 31 v u 4 = A 41 v %

Škálovatelnost DGEMM na Anselmovi Silná paralelní škálovatelnost: čas potřebný pro řešení úlohy na N procesorech je T(N) = T(1)/N

Škálovatelnost DGEMM na Anselmovi Slabá paralelní škálovatelnost: čas potřebný pro řešení úlohy se nemění při zachování velikose úlohy na jeden procesor DGEMM weak weak scalability time [s] 1000-1 core 0,125 0,125 2000-2 cores 0,125 0,48125 4000-4 cores 0,125 1,89375 8000-8 cores 0,125 7,49375 16000-16 cores 0,125 30,2188 Chyba!!! Výpočetní náročnost 2x větší úlohy je osminásobná! 2000 musíme spustit na 8 jádrech 4000 musíme spustit na 64 jádrech!!!!

Škálovatelnost DGEMV na Anselmovi Slabá paralelní škálovatelnost: čas potřebný pro řešení úlohy se nemění při zachování velikose úlohy na jeden procesor DGEMV weak scalability weak time [s] 20000-1 core 0,425 0,425 40000-4 cores 0,425 0,425 80000-16 cores 0,425 0,675

Soustavy lineárních rovnic Jedna lineární rovnice o jedné neznámé: ax = b x = b a = a 1 b pokud a 0 2 lineární rovnice o 2 neznámých ax + by = e cx + dy = f Řešení subs@tucí nebo sečtením rovnic Jak se řeší soustavy o Esících, miliónech až miliardách neznámých?

Soustavy lineárních rovnic Soustava m lineárních rovnic o n neznámých a 11 x 1 + a 12 x 2 +! a 1n x n = b 1 a 21 x 1 + a 22 x 2 +! a 2n x n = b 2 " " " " a m1 x 1 + a m2 x 2 +! a mn x n = b m MaEcový zápis Ax = a 11 a 12! a 1n a 21 a 22! a 2n!! "! a m1 a m2! a mn x 1 x 2! x n = b 1 b 2! b m = b

Trojúhelníkový (LU) rozklad Dále budeme uvažovat m=n, tj. n rovnic o n neznámých A=LU, kde L resp. U je tzv. dolní resp. horní trojúhelníková maece a 11 a 12 a 13 A = a 21 a 22 a 23 a 31 a 32 a 33 1 0 0 = l 21 1 0 l 31 l 32 1 a 11 = r 1 L s 1 U = 1 u 11 + 0 0 + 0 0 = u 11 a 12 = r 1 L s 2 U = 1 u 12 + 0 u 22 + 0 0 = u 12 a 13 = r 1 L s 3 U = 1 u 13 + 0 u 23 + 0 u 23 = u 13 u 11 u 12 u 13 0 u 22 u 23 0 0 u 33 a 21 = r 2 L s 1 U = l 21 u 11 +1 0 + 0 0 = l 21 u 11 l 21 = a 21 u 11 = LU a 22 = r 2 L s 2 U = l 21 u 12 +1 u 22 + 0 0 = l 21 u 12 + u 22 u 22 = a 22 l 21 u 12 a 23 = r 2 L s 3 U = l 21 u 13 +1 u 23 + 0 u 33 = l 21 u 13 + u 23 u 23 = a 23 l 21 u 13 a 31 = r 3 L s 1 U = l 31 u 11 + l 32 0 +1 0 = l 31 u 11 l 31 = a 31 u 11 a 32 = r 3 L s 2 U = l 31 u 12 + l 32 u 22 +1 0 = l 31 u 12 + l 32 u 22 l 32 = a 32 l 31 u 12 u 22 a 33 = r 3 L s 3 U = l 31 u 13 + l 32 u 23 +1 u 33 u 33 = a 33 l 31 u 13 l 32 u 23 U=A; L=I;! for k = 1 to n-1! for i = k+1 to n! L[i,k]=U[i,k]/U[k,k]!! for j = k to n!!!u[i,j]=u[i,j]-l[i,k]*u[k,j]!! endfor! endfor! endfor! Výpočetní náročnost: f(n)=⅔n 3, tj.o(n 3 )

Řešení soustav rovnic LU rozkladem Ax = b ( LU)x = b L( Ux) = b Ly = b Ux = y Dopředná subsetuce: Ly=b Zpětná subsetuce: Ux=y l 11 y 1 = b 1 y 1 l 21 y 1 + y 2 = b 2 y 2!!!! l n1 y 1 + l n2 y 2 + " y n = b n y n u 11 x 1 + u 12 x 2 +! u 1n x n = y 1 x 1 " " u n 1,n x n 1 + u n 1,n x n = y n 1 x n 1 u nn x n = y n x n Výpočetní náročnost: O(n 2 )

Knihovny pro řešení soustav lineárních rovnic Snaha o standardizaci stejně jako v případě BLAS LINPACK, LAPACK, ScaLAPACK PLASMA, MAGMA, Intel MKL, LINPACK benchmark J. Dongarra Měření výkonu počítačů www.top500.org HPL High Performance Linpack Výpočetní náročnost 2/3n 3 +2n 2

Test výkonu

Superpočítače PRACE Tier- 0 Tier- 1 Sixth production system available by January 2013: 1 Petaflop/s IBM (MareNostrum) at BSC. Tier- 2 Upgrade: 5.9 Petaflop/s IBM Blue Gene/Q (JUQUEEN) First production system available: 1 Petaflop/s IBM BlueGene/P (JUGENE) at GCS (Gauss Centre for Supercomputing) partner FZJ (Forschungszentrum Jülich) Fifth production system available by August 2011: 2.1 Petaflop/s IIBM BG/Q (FERMI) at CINEC. Second production system available: Bull Bullx CURIE at GENCI partner CEA. Full capacity of 1.7 Petaflop/s reached by late 2011. Fourth production system available by mid 2012: 3.2 Petaflop/s IBM (SuperMUC) at GCS partner LRZ (Leibniz-Rechenzentrum). Third production system available by the end of 2011: 1 Petaflop/s Cray (HERMIT) at GCS partner HLRS (High Performance Computing Center Stuttgart).

www.top500.org

Náš Minisuperpočítač PERMONÍK (1GFLOP/s) 8 ks (900MHz,512MB RAM) + 1 ks + 1 ks + 2 ks + 8 ks + cca týden intenzivní práce D. M. Horáka L. Říhy + = 8 ks

Náš Minisuperpočítač PERMONÍK (1GFLOP/s)

LINPACK benchmark http://software.intel.com/en-us/articles/intel-math-kernel-library-linpack-download

LINPACK benchmark

LINPACK benchmark