Lista zadań nr 3S 

Ocena końcowa = 2 + suma uzyskanych punktów.

Zadanie 1 (1 pkt)

Zmodyfikuj kod transformujący współrzędne punktów (lista 1) w taki sposób, aby używał mapowania pamięci zamiast kopiowania danych pomiędzy hostem i urządzeniem. Powtórz pomiary, zbierz i zaprezentuj wyniki.

Zadanie 2 (2 pkt)

Jednym ze sposobów (rzadko stosowanym) obliczania wartości liczby π jest iloczyn nieskończony (tzw. iloczyn Wallisa) o poniższej postaci:



Twoim zadaniem jest:
  1. Napisanie kodu, który w sposób sekwencyjny, działając wyłącznie w ramach hosta, oblicza wartość π z dokładnością eps (eps jest parametrem progamu, a interpretuje się go jako maksymalną akceptowalną różnicę pomiędzy dwoma kolejnym przybliżeniami - jeśli wartość bezwzględna tej różnicy jest mniejsza od eps, kończy się obliczenia); zmierz czas obliczeń.
  2. Napisanie kodu, który oblicza wartość π równolegle, działając w wykorzystaniem sprzętu urządzenia CUDA; załóż, że każdy z wątków oblicza wartość jednego wyrazu iloczynu; podejmij właściwe decyzje odnośnie podziału problemu na bloki wątków; zdecyduj, kto jest odpowiedzialny za mnożenie wyrazów - kod hosta czy kod wątku; zmierz czas obliczeń, porównaj wydajność obu rozwiązań.