początek pisania dokumentacji

This commit is contained in:
2016-10-19 23:12:15 +02:00
parent 67a5e577f3
commit 1a0160f61d

View File

@@ -55,28 +55,31 @@
\noindent
\begin{tabular}{|c|p{11cm}|c|} \hline
Grupa 3 & Adam Nowak & \ddmmyyyydate\today \tabularnewline
Grupa 1? & Piotr Dergun, Dominik Waśko & \ddmmyyyydate\today \tabularnewline
\hline
\end{tabular}
\section*{Zadanie 1 - Macierze OMP}
Opis w kilku zdaniach jak to wspaniale działa program. Wyjaśnione tutaj jest w jaki sposób udało się uzyskać równoległe działanie programu. Przytoczony poniżej fragment kodu pokazuje najważniejszy askepkt działania naszego programu.
Celem zadania jest obliczenie iloczynu dwóch macierzy prostokątnych na konkretnej liczbie wątków (dane te podane jako parametry programu). Istotą problemu są trzy pętle, których złożoność obliczeniowa jest O($n^3$)
\begin{lstlisting}
#pragma omp parallel for
for(int i = 0; i < 10000000; i++)
#pragma omp parallel for default(none) shared(A, B, C) firstprivate(rozmiar)private(i, j)
for (i=0; i<rozmiar; ++i)
for (j=0; j<rozmiar; ++j)
{
double * d = new double[100000];
cout << "om nom nom" << endl;
C[i][j] = 0;
for (long k=0; k<rozmiar; ++k)
C[i][j] += A[i][k]*B[k][j];
}
\end{lstlisting}
Zmienna \textit{i} ma za zadanie przechodzić po wierszach macierzy wyjściowej, a zmienna \textit{j} - jej kolumnach. Za przemnażanie wszystkich elementów z wektora macierzy A (po wierszach) i wektora macierzy B (po kolumnach) odpowiedzialna jest wewnętrzna pętla.
Poniżej kodu znajduje się jego opis, który nie jest opisem w stylu "Tak, to nawet działa! Jest pętla i jest kolorowe. Szkoda, że się nie rusza".
(wyjaśnić dyrektywy pragma - jaki wpływ na zrównoleglenie)
Poniżej zamieszone są wykresy na dowód posiadania umiejętności obsługi pakietu biurowego Microsoft Office Excel lub LibreOffice Calc. Można tutaj również pochawlić się znajomością małego lecz potężnego programu gnuplot.
Program został skompilowany i uruchomiony z następującymi parametrami: macierz 1000x1000, ilość wątków 1-15, dla każdego wątku wykonano 10 powtórzeń. Z otrzymanych wyników obliczono przyspieszenie oraz średni czas liczenia macierzy. Poniżej przedstawione są wykresy zależności czasu obliczeń oraz przyspieszenia od ilości wątków.
\begin{figure}[!hbp]
\centering