MN06LAB

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania


BLAS, LAPACK, pamięć podręczna

<<< Powrót do strony głównej przedmiotu Metody numeryczne

Oglądaj wskazówki i rozwiązania __SHOWALL__
Ukryj wskazówki i rozwiązania __HIDEALL__

Warto w tym momencie wrócić także do zadań z poprzedniego wykładu, wymagających wykorzystania BLASów i LAPACKa.

Ćwiczenie: Nie tylko ATLAS

Jeśli korzystasz z komputera z procesorem Intela lub AMD, masz możliwość sięgnięcia po procedury matematyczne zoptymalizowane właśnie na te architektury, zgromadzone w bibliotekach, odpowiednio, MKL i ACML. Spróbuj przeprowadzić testy wydajnościowe procedury mnożenia dwóch macierzy za pomocą takiej biblioteki w porównaniu do ATLASa dla Twojej architektury.

Wskazówka

Ćwiczenie: Szybkie mnożenie macierzy przez wektor

Zaimplementuj samodzielnie algorytm mnożenia macierzy kwadratowej przez wektor:

i zbadaj czas jego działania. Następnie wykonaj to samo przy użyciu procedury BLAS (jakiej?). Sprawdź na losowym wektorze i losowej macierzy, że w obu przypadkach dostajesz ten sam wynik. Jeśli jest taka potrzeba, spróbuj wprowadzić kilka optymalizacji do swojego kodu.

Wskazówka
Wskazówka
Wskazówka
Wskazówka

Ćwiczenie: Strassen kontra DGEMM

Zaimplementuj algorytm Strassena mnożenia dwóch macierzy i porównaj czas jego działania z czasem działania procedury DGEMM, najlepiej zoptymalizowanej na Twoją architekturę.

testuj dla macierzy wymiaru , gdzie .

Wskazówka

Opis algorytmu Strassena znajdziesz np. w rozdziale 28 klasycznego podręcznika

  • T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Wprowadzenie do algorytmów, Wydawnictwa Naukowo-Techniczne, Warszawa, 2005, ISBN 83-204-3149-2.

Ćwiczenie: Czy Twoje programy działają naprawdę szybko?

Rozwiąż układ równań liniowych programując, niczym Zosia-Samosia, wszystko od początku do końca w czystym C (a może wolałbyś w Pythonie?!). Porównaj czasy działania twojego programu i programu wywołującego po prostu procedurę biblioteczną LAPACKa DGESV, najlepiej wspartą dobrze podrasowanymi BLASami.

Wskazówka
Rozwiązanie