Programowanie równoległe i współbieżne
Ćwiczenie:
Ćwiczenie 8
Data oddania:
10.6.2013
Imię, Nazwisko:
Aleksandra Kulecka
Ocena:
Uwagi:
1.
Cel ćwiczenia:
Celem ćwiczenia było wykonanie programu, którego zadaniem było obliczenie całki z funkcji
f(x) = x
2
, na przedzia
le <0, 4> metodą prostokątów oraz metodą trapezów.
2.
Przebieg ćwiczenia:
Dzięki funkcji
MPI_Bcast(&ile, 1, MPI_INT, 0, MPI_COMM_WORLD);
było możliwe
rozesłanie do wszystkich procesów informacji o tym, na ile części podzielony zostanie
przedział.
Funkcja
MPI_Reduce(&calklok,&cal,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);
powodowała zebranie wszystkich wyników z poszczególnych procesów, zsumowanie ich
i zapis do jednej zmiennej o nazwie cal.
Program liczył również błąd względny obliczeń w zależności od wybranej metody obliczeń,
oraz czas obliczeń.
3.
Otrzymane wyniki pomiarów:
Metoda prostokątów, 10, 100 i 1000 przedziałów dla 1 procesu:
Metoda prostokątów dla 10, 100 i 1000 przedziałów dla 2óch procesów:
Metoda trapezów dla 10, 100 i 1000 przedziałów dla 1 procesu:
Metoda trape
zów dla 10, 100 i 1000 przedziałów dla 2óch procesów:
4. Wnioski:
Ilość procesów biorących udział w obliczeniach ma wpływ na długość
czasu obliczeń (im większa ilość tym dłuższy czas obliczeń),
Ilość przedziałów, na które została podzielona dziedzina ma wpływ na
długość obliczeń (wraz ze wzrostem ilości przedziałów wzrastała długość
obliczeń),
Dokładność, z jaką program liczy wartość całki ulega poprawie wraz ze
wzrostem ilości przedziałów,
Wystarczy około 1000 przedziałów, aby dokładność obliczeń była
z
adowalająca.