Programowanie równoległe i współbieżne
Ćwiczenie:
Ćwiczenie 2
Data oddania:
27.4.2013
Imię, Nazwisko:
Dawid Misiniec
Ocena:
Uwagi:
1.
Cel ćwiczenia
Celem ćwiczenia było zbadanie czasu potrzebnego do obliczenia liczby π, w zależności od
zaangażowanych procesów, ilości interwałów poświeconych tym obliczeniom oraz dobory języka
programowania, w którym został skonstruowany program.
2.
Przebieg ćwiczenia
Po ukończeniu konfiguracji MPI na dostępnych komputerach (SO: Windows XP 32 bit, procesory 4-ro
rdzeniowe), uruchamiano dwa pliki, których zadaniem było obliczanie liczby π. Programy były
uruchamiane z konsoli MPICH, jako pliki po operacji debugowania. Przygotowane programy były
napisane w języku C oraz C++.
3.
Wyniki badań
Poniżej przedstawiono wyniki badań w formie tabel i wykresów.
Język C
Tabela 1 Czasy obliczeń dla 15 bilionów interwałów C
Ilość procesów
Czas obliczeń [s]
1
5,21
2
4,43
3
2,95
4
2,22
5
2,19
6
2,04
7
1,98
8
1,87
Średni czas
2,86125
Tabela 2 Czasy obliczeń dla 200 milionów interwałów C
Ilość procesów
Czas obliczeń [s]
1
19,56
2
9,89
3
6,5
4
4,95
5
5,33
6
5,07
7
4,97
8
4,95
Średni czas
7,6525
Język C++
Ilość procesów
Czas obliczeń [s]
1
19,7
2
9,82
3
6,55
4
4,91
5
5,34
6
4,92
7
4,97
8
4,93
Średni czas
7,6425
Tabela 3 Czasy obliczeń dla 15 bilionów interwałów C++
Ilość procesów
Czas obliczeń [s]
1
5,25
2
4,48
3
3,01
4
2,23
5
2,21
6
2,01
7
1,98
8
1,86
Średni czas
2,87875
Tabela 4 Czasy obliczeń dla 200 milionów interwałów C++
Wykres 1 Czas obliczeń
0
2
4
6
8
10
12
14
16
18
20
1
2
3
4
5
6
7
8
Czas obliczeń [s]
150 bil. C
150 bil. C++
200 mln. C
200 mln. C++
4. Wnioski
J
ęzyk programowania ma znaczenie w czasie obliczeń (widać niewielkie różnice w czasach
obliczeń między językiem C a C++),
Czas obliczeń spadał wraz ze wzrostem zaangażowanych procesów,
Czas obliczeń spadał wraz ze zmianą ilości interwałów,
Czas obliczeń był wyższy dla języka C++, a prędkość niższa niż dla języka C,
Średnie czasy obliczeń są porównywalne dla obydwóch języków, z niewielką przewagą na
rzecz C++
przy dużej ilości interwałów, a dla C dla małej ilości interwałów,
Widać drobne różnice w czasach obliczeń między językiem C i C++