Home Page Syllabus Marcin Paprzycki


Wpisy do indeksu; 4 lutego; godzina 11:00-14:00; B3-13!!!

WWW site; ten sam termin!!!

Projekty Grupowe:

Użyteczne linki:

Omawialiśmy:

1. Geneza programowania równoległego:

2. Początki maszyn wielkiej mocy

3. Równoległość

4. Programowanie komputerów równoległych

Prace domowe:

PRACA DOMOWA 1 (grupowa)
Po pierwsze, proszę o utworzenie grup 3-osobowych. Po drugie, każda grupa musi uzgodnić ze mną temat projektu semestralnego. Temat ten powinien zostać zatwierdzony do piątku, 10 października, 2003; o godzinie 23:55. Po czwarte (rzeczywista praca domowa), każda grupa tworzy WWW-site projektu semestralnego i dostarcza mi "link" (e-mailem) do tejże strony; do 17 października, godzina 23:55 (będę sprawdzał "time-stamp" otrzymania wiadomości na mojej maszynie). WWW-sites będą oceniane pod względem treści i formy. Każda osoba w grupie otrzyma tę samą ocenę.

PRACA DOMOWA 2 (grupowa)
W dniu 22 października na ćwiczeniach każda grupa zaprezentuje wstępne założenia projektu semestralnego. Każda prezentacja powinna mieć 8 minut + 2 minuty na dyskusję. Prezentacje powinny być "profesjonalne" (nabazgranie czegoś na tablicy nie jest prezentacją profesjonalną). Prezentacje będą oceniane pod względem treści i formy. Każda osoba w grupie otrzyma tę samą ocenę.

PRACA DOMOWA 3 (indywidualna)

Otrzymaliście Państwo konta na maszynie tulipan. Na poprzednim wykładzie omawialiśmy 6 wersji mnożenia macierzy i ich potencjalny wpływ na efektywność obliczeń. Celem pracy domowej będzie empiryczne sprawdzenie hipotez postawionych w czasie wykładu. W tym celu należy zaimplementować program wykonujący (bezbłędnie) wszystkie 6 wersji mnożenia macierzy. Równocześnie koniecznym będzie użycie zegara systemowego umożliwiającego ustalenie rzeczywistego zużycia czasu (CPU time vs. Wall-clock time).

Następnie należy ustalić jaki rozmiar macierzy jest już dostatecznie duży aby można było założyć, że wskazania zegara mają sens (wskazania zegara w pobliżu jego rozdzielczości są podejrzane!); proszę zaokrąglić rozmiar macierzy do „ładnego” rozmiaru – rozmiar minimalny.

Następnie należy ustalić maksymalny rozmiar macierzy; taki, dla którego czas mnożenia wynosi około dwu minut i również zaokrąglić tenże rozmiar do „ładnej” liczby – rozmiar maksymalny.

Przedział pomiędzy macierzą minimalna i maksymalną należy podzielić na podprzedziały o równej długości tak, aby otrzymać 8 punktów pomiarowych (przypadających dla „ładnych” rozmiarów macierzy) i dokonać pomiaru czasu mnożenia. Należy zastosować maksymalną optymalizację dostępną w kompilatorze, oraz każdy pomiar powinien być dokonany przynajmniej 3 razy aby wyeliminować fluktuacje spowodowane różnorodnymi czynnikami związanymi z otoczeniem w którym program jest wykonywany.

Wynikiem ma być raport – coś w rodzaju artykułu – w standartowym formacie: tytuł, wprowadzenie, metodologia, wyniki i ich analiza, konkluzje, literatura.

Termin wykonania pracy domowej i metoda dostarczenia: godzina 15:00 (czasu Polskiego), w piątek 14 listopada, 2003; tekst w formacie: pdf, doc, rtf lub ps, przesłany e-mailem do mnie: marcin.paprzycki@ibspan.waw.pl.

PRACA DOMOWA 4 (indywidualna)

  1. Oprogramować adaptacyjną równoległą metodę całkowania numerycznego omówioną w czasie ćwiczeń.
  2. Testowanie efektywności metody przeprowadzić dla funkcji f(x) = sin(kx) * e^(x/4) + π – 2.0, na przedziale [0, 15π] gdzie k jest jednym z parametrów zagadnienia; drugim jest liczba procesorów p (warunek końcowy dla iteracji: EPS = 0.001).
  3. Przetestować efektywność zrównoleglenia procedury całkowania dla zmieniających się wartości k i dla p = 1,2,..., 12
  4. Proponowana miara efektywności to przyspieszenie (speedup); czyli stosunek czasu wykonania programu na jednym procesorze do czasu wykonania programu na p procesorach.
  5. Wynikiem ma być raport – w standartowym formacie: tytuł, wprowadzenie, metodologia, wyniki i ich analiza, konkluzje, literatura (zawierający kod jako zalącznik/appendix)
  6. Termin wykonania pracy domowej i metoda dostarczenia: na ćwiczeniach we środę 10 grudnia, 2003; wydruk dostarczony osobiście do mnie.

PRACA DOMOWA 5 (indywidualna)

Na zajęciach (ćwiczenia) omawialiśmy problem „wyboru przewodniczącego” w asynchronicznym pierścieniu, w którym każdy z uczestników zna tylko swoich sąsiadów po lewej i prawej stronie (nie posiada żadnej innej wiedzy o systemie). W rozdanych materiałach znajdują się dwa algorytmy rozwiązywania tego problemu różniące się ilością przesyłanych wiadomości (zakłada się tutaj, że złożoność algorytmu wyboru przewodniczącego jest zależna od ilości przesyłanych wiadomości). Jeden z nich ma złożoność n2 a drugi złożoność nlogn. Celem pracy domowej jest porównanie obu algorytmów zaimplementowanych używając biblioteki komunikacyjnej MPI i wykonywanych na „tulipanie”.  Tak wiec należy

UWAGA: w eksperymentach i raporcie proszę wziąć pod uwagę moje uwagi na temat Państwa prac wygłoszone na jednym z ostatnich wykładów – mam nadzieję, że tym razem będą to o wiele lepsze raporty, albowiem poprzeczka oceny idzie w górę!!!!

Termin wykonania pracy domowej i metoda dostarczenia: godzina 20:00 (czasu Polskiego), w piątek 9 stycznia, 2004; tekst w formacie: pdf, doc, rtf lub ps, przesłany e-mailem do mnie: marcin@amu.edu.pl.

PRACA DOMOWA 6 (indywidualna)

Na ćwiczeniach omawialiśmy zagadnienie ewolucji czasowej „automatu komórkowego”. Modelem tego zagadnienia jest siatka, w której wartość funkcji węźle jest średnią ważoną otaczających go węzłów i tak:

error-file:tidyout.log

WpływA = 0.8 * (A1(stare)+A2(stare)+A3(stare)+A4(stare))

WpływB = 1.2 * (B1(stare)+B2(stare)+B3(stare)+B4(stare))

C(nowe) =  ( C(stare) + WplywA + WplywB ) / 9

W każdym kroku „ewolucji czasowej” powyższe obliczenia wykonywane są dla każdego wewnętrznego punktu siatki. Zakłada się, ze punkty brzegowe pozostają niezmienione.

Zakłada się że w chwili t0 zmienione zostają wartości brzegowe wyzerowanej siatki i tak zmienione wartości brzegowe pozostają stałe. Ostatecznym wynikiem ewolucji czasowej jest stabilna siatka, w której dla każdego punktu wewnętrznego nie zachodzą już zmiany wartości, tzn. |C(stare) – C(nowe)| < ε.

Zadanie domowe polega na:

a) zaimplementowaniu powyższego modelu tak aby mógł on być wykonywany na 1-12 procesorów tulipana

b) przeprowadzeniu eksperymentów mających na celu ocenę efektywności implementacji

c) zakładamy,  że w momencie t0 wartości niezerowe pojawiają się przynajmniej na dwu brzegach siatki, oraz, że przynajmniej jeden narożnik siatki pozostaje zerowy; natomiast ε = 0.001.

Istotne: zmiany na brzegu jak i wielkosc siatki nalezy tak dobrac aby wyniki czasowe mialy sens!!!!!

Wynikiem ma być raport, który dokładnie opisze przeprowadzone eksperymenty praz ich wyniki, oraz będzie posiadał jako załącznik kod programu.

Termin wykonania pracy domowej i metoda dostarczenia: godzina 17:00 (czasu Polskiego), w poniedziałek 19 stycznia, 2004; tekst w formacie: pdf, doc, rtf lub ps, przesłany e-mailem do mnie: marcin@amu.edu.pl.




Powrót do strony "syllabus"