domácí úkol

5
1 NPRG054 Vývoj vysoce výkonného software - 2012/2013 David Bednárek Domácí úkol

Upload: davis-deleon

Post on 01-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Domácí úkol. Domácí úkol č. 2. Referenční algoritmus for ( i = 0; i < L; ++ i ) for ( j = 0; j < M; ++ j) { c[ i ][j] = false; for ( k = 0; k < N; ++ k) c[ i ][j] |= a[ i ][k] & b[k][j]; } Toto nen í nejrychlejší algoritmus Nevyhovuje z hlediska cache - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Domácí úkol

NPRG054 Vývoj vysoce výkonného software - 2012/2013 David Bednárek 1

Domácí úkol

Page 2: Domácí úkol

NPRG054 Vývoj vysoce výkonného software - 2012/2013 David Bednárek

Referenční algoritmusfor( i = 0; i < L; ++ i)

for( j = 0; j < M; ++ j)

{

c[i][j] = false;

for( k = 0; k < N; ++ k)

c[i][j] |= a[i][k] & b[k][j];

}

Toto není nejrychlejší algoritmus Nevyhovuje z hlediska cache Uložení po bitech umožňuje

paralelní operace

Násobení booleovských matic

Datová struktura pro matici Plýtvání prostorem povoleno

Očekávaný počet sloupců > 50 Rozměr určen předem

Parametry konstruktoru

Operace násobení

Testovací mechanismus Naplnění/alokace matic Opakované provedení násobení Měření času

Mimo standard C++

Domácí úkol č. 2

2

Page 3: Domácí úkol

NPRG054 Vývoj vysoce výkonného software - 2012/2013 David Bednárek

Předepsané rozhraní matice Umožňuje připojení k jinému

testovacímu mechanismuclass matrix {

public:

matrix(size_t m, size_t n);

size_t vsize() const;

size_t hsize() const;

bool get(size_t i, size_t j) const;

void set(size_t i, size_t j, bool e);

void assign_mul( const matrix & a, const matrix & b);

private: // ...

};

Neřešíme kompletnost a odolnost třídy (copy/move-metody apod.)

Násobení booleovských matic

Datová struktura pro matici Plýtvání prostorem povoleno

Očekávaný počet sloupců > 50 Rozměr určen předem

Parametry konstruktoru

Operace násobení

Testovací mechanismus Naplnění/alokace matic Opakované provedení násobení Měření času

Mimo standard C++

Domácí úkol č. 2

3

Page 4: Domácí úkol

NPRG054 Vývoj vysoce výkonného software - 2012/2013 David Bednárek

DÚ 1 – porovnání výsledků

4

matrix_

zero 128

matrix_

zero 256

matrix_

zero 512

matrix_

zero 1024

matrix_

random 128

matrix_

random 256

matrix_

random 512

matrix_

random 1024

matrix_

one 128

matrix_

one 256

matrix_

one 512

matrix_

one 1024

0.001

0.01

0.1

1

10

100

Page 5: Domácí úkol

NPRG054 Vývoj vysoce výkonného software - 2012/2013 David Bednárek

DÚ2

5

128 zeros

128 random

128 ones

256 zeros

256 random

256 ones

512 zeros

512 random

512 ones

1024 zeros

1024 random

1024 ones

2048 zeros

2048 random

2048 ones

1

10

vzor[err] Brabec Michal[err] Havranek Stepan[err] Herrmann PavelHorky VojtechHosala MichalJiracek ZbynekJirasek JozefKotrc JaroslavKralovec JiriMatena Vladimir[err] Pavlis FilipPetrik OtoSindelar Stepan[err] Skoda Petr[err] Taborsky Dominik[err] Taufer Pavel[err] Tomasek Jan