|
\documentclass[a4paper,12pt]{article}
|
|
\usepackage{amsmath}
|
|
\usepackage{amssymb}
|
|
\usepackage[polish]{babel}
|
|
\usepackage{polski}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{indentfirst}
|
|
\usepackage{geometry}
|
|
\usepackage{array}
|
|
\usepackage[pdftex]{color,graphicx}
|
|
\usepackage{subfigure}
|
|
\usepackage{afterpage}
|
|
\usepackage{setspace}
|
|
\usepackage{color}
|
|
\usepackage{wrapfig}
|
|
\usepackage{listings}
|
|
\usepackage{datetime}
|
|
|
|
\renewcommand{\onehalfspacing}{\setstretch{1.6}}
|
|
|
|
\geometry{tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
|
|
\setlength{\parindent}{1cm}
|
|
\setlength{\parskip}{0mm}
|
|
|
|
\newenvironment{lista}{
|
|
\begin{itemize}
|
|
\setlength{\itemsep}{1pt}
|
|
\setlength{\parskip}{0pt}
|
|
\setlength{\parsep}{0pt}
|
|
}{\end{itemize}}
|
|
|
|
\newcommand{\linia}{\rule{\linewidth}{0.4mm}}
|
|
|
|
\definecolor{lbcolor}{rgb}{0.95,0.95,0.95}
|
|
\lstset{
|
|
backgroundcolor=\color{lbcolor},
|
|
tabsize=4,
|
|
language=C++,
|
|
captionpos=b,
|
|
tabsize=3,
|
|
frame=lines,
|
|
numbers=left,
|
|
numberstyle=\tiny,
|
|
numbersep=5pt,
|
|
breaklines=true,
|
|
showstringspaces=false,
|
|
basicstyle=\footnotesize,
|
|
identifierstyle=\color{magenta},
|
|
keywordstyle=\color[rgb]{0,0,1},
|
|
commentstyle=\color{Darkgreen},
|
|
stringstyle=\color{red}
|
|
}
|
|
|
|
\begin{document}
|
|
|
|
\noindent
|
|
\begin{tabular}{|c|p{11cm}|c|} \hline
|
|
Grupa 1? & Piotr Dergun, Dominik Waśko & \ddmmyyyydate\today \tabularnewline
|
|
\hline
|
|
\end{tabular}
|
|
|
|
|
|
\section*{Zadanie 1 - Macierze OMP}
|
|
|
|
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 default(none) shared(A, B, C) firstprivate(rozmiar)private(i, j)
|
|
for (i=0; i<rozmiar; ++i)
|
|
for (j=0; j<rozmiar; ++j)
|
|
{
|
|
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.
|
|
|
|
(wyjaśnić dyrektywy pragma - jaki wpływ na zrównoleglenie)
|
|
|
|
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
|
|
\includegraphics[width=0.7\textwidth]{dane/wykres.eps}
|
|
\caption{Profesjonalna prosta czerwona kreska z kropkami}
|
|
\end{figure}
|
|
|
|
\begin{wrapfigure}{r}{0.5\textwidth}
|
|
\vspace{-20pt}
|
|
\begin{center}
|
|
\includegraphics[width=0.45\textwidth]{dane/pomiar.pdf}
|
|
\end{center}
|
|
\vspace{-20pt}
|
|
\caption{Krzywa niebieska kreska}
|
|
\vspace{-10pt}
|
|
\end{wrapfigure}
|
|
|
|
|
|
W celu ułatwienia pracy Prowadzącemu warto wykresy podpisać, aby Prowadzący omyłkowo nie przyjął, że dany wykres przedstawia średnią miesięczną temperaturę w Bangladeszu na przełomie lat 1975-1982, ponieważ taki wykres byłby nieodpowiedni, przez co sprawozdanie byłoby niezaliczone. Łatwo zauważyć, że każdy wykres w przestrzeni 2D posiada dwie osie i z grzeczności należy je opisać. Osie posiadają jednostki, które też warto przytoczyć.
|
|
|
|
Czasem w sprawozdaniu warto przytoczyć kilka zalet danego rozwiązania i wypisać je jako lista:
|
|
\begin{lista}
|
|
\item Pierwszą zaletą jest to, że jest.
|
|
\item Druga zaleta jest również obecna.
|
|
\item Trzecia zaleta jest już troche naciągana.
|
|
\item Czwarta zaleta jest wadą, czyli zaletą ujemną.
|
|
\end{lista}
|
|
|
|
Jeśli zaszłaby konieczność zestawienia danych wartości w tabeli to również jest taka możliwość.
|
|
|
|
\begin{table}[!hbp]
|
|
\centering
|
|
\begin{tabular}{|p{5cm}|c|}
|
|
\hline
|
|
Zalety & Wady \tabularnewline
|
|
\hline
|
|
Ładne, kolorowe & Brak\tabularnewline
|
|
Szybkie, działające & Brak\tabularnewline
|
|
\hline
|
|
\end{tabular}
|
|
\caption{Podpis bardzo wartoścowej tabeli z danymi}
|
|
\end{table}
|
|
|
|
|
|
W sprawozdaniu muszą znaleźć się wnioski. Wnioski stanowią przesłankę, o tym iż osoba je pisząca, która ubiega się o tytuł magistra inżyniera, wie co robi. Osoba taka często jest w stanie określić czemu miało służyć dane ćwiczenie, a także ocenić w jakim stopniu udało się rozwiązać dane zagadnienie i gdzie napotkano problemy.
|
|
|
|
\end{document}
|