sprawozdanie lab5

Celem ćwiczenia było nabycie umiejętności pisania programów przetwarzanych równolegle. Naszym zadaniem było napisanie programu liczącego całkę metodą trapezów, wykorzystując różną liczbę wątków.

Zadanie można było podzielić na dwie części. Przygotowanie oprogramowania oraz opracowanie wyników.

W pierwszej części należało przygotować funkcję pozwalającą obliczyć całkę metodą trapezów w sposób sekwencyjny. Wykonanie takiej funkcji pozwoliło przypomnieć sobie numeryczną metodę oraz skonfrontować wyniki otrzymane w sposób sekwencyjny i równoległy.

Następna funkcja korzystała już z wątków. Zależnie od ustawionej liczby wątków funkcja dzieliła pętle liczącą całkę na części. Każdy wątek dostawał część iteracji do wykonania, a ich wyniki zostały zsumowane.

Celem trzeciej funkcji była dekompozycja. Zadaną całkę dzieliła na mniejsze całki, których liczba była równa liczbie wątków. Każdy wątek dostawał swoją mniejszą całkę do policzenia. Wyniki, które zwróciły wątki zostały zsumowane, a wynik wyświetlony.

W moim programie liczbę wątków można było zmienić przez zmianę stałej zdefiniowanej na początku programu, bądź poprzez uruchomienie programu z liczbą wątków podaną jako pierwszy parametr.

Funkcją, dla której liczyliśmy całkę oznaczoną była funkcja 1/(1+x^2) w granicach od 0 do 1. Wynikiem tej całki jest liczba pi.

Jako drugą część zadania należało dokonać pomiarów czasu wykonania dla różnej liczby wątków i iteracji. Należało też policzyć błąd numeryczny w obliczeniach, który był zależny od liczby iteracji.

Wykresy tych pomiarów zostały przedstawione na załączniku do sprawozdania.


Zadanie to nauczyło nas podstawowych zastosowań programowania równoległego. Pokazało nam również, że istnieją różne możliwości jego zastosowania. Wybór metody powinien być uwarunkowany zagadnieniem jakie rozpatruje programista. Analizując zebrane dane zauważyłem, że równoległe wykonanie obliczeń dla całki nie miało sensu dla małych liczby iteracji. Czas potrzebny na utworzenie i obsługę wątków znacznie przekraczał złożoność obliczeniową zagadnienia. Warto również zauważyć, że liczba wątków większa niż 4 nie gwarantowała szybszego czasu obliczeniowego dla mojego procesora. Delikatny zysk można jeszcze zauważyć przy 8 wątkach gdyż w procesorze została zastosowana technologia hyper threading, która dla każdego rdzenia tworzy dodatkowy rdzeń wirtualny.

Specyfikacja komputera:

CPU: Intel i7 x4 + hyper threading

12GB RAM

Fedora 21


Kod: http://wklej.to/OPYBw


Wyszukiwarka

Podobne podstrony:
G312A-K04-P5, Studia PŚK informatyka, Semestr 5, semestr 5, SI 2, Sprawozdanie lab5
Sprawozdanie lab5, WAT, SEMESTR VI, Technol.sieci teleinformat
Sprawozdanie lab5 BGP I8G1S1
Sprawozdanie lab5 Seweryn,Sokołowski
I9G2S1 Węgrecki Wojciech sprawozdanie lab5
sprawozdanie lab5 bsi
Sprawozdanie LAB5 WDA
Lab5 sprawozdanie
Lab5 sprawozdanie
Lab5 Procesory sygnałowe sprawozdanie PWR, PWr, sprawozdania
Lab5-biuro, studia, studia, sprawozdania, pomoce, Lab
lab5 sprawozdanie
sprawozdanie5, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki, l
lab5, SPRAWOZDANIA czyjeś
Sprawozdanie5PO, AGH WIMIR AiR, Semestr 3, JPO, lab5 JPO
2010 LAB5 Sprawozdanieid 27064 Nieznany
Rafał Polak 12k2 lab5, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
sprawozdanie programowanie lab5 fin
Sidor, miu technologiczne lab5 sidor sprawozdanie, Krytyczna

więcej podobnych podstron