\documentclass[fleqn,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[slovak]{babel}
\usepackage{amsmath}
% ---------------------------------------------------------------
% pri pouziti pdftex-u s obrazkami jpg pouzit nasledujuci riadok
\usepackage[pdftex]{color,graphicx}
% pri pouziti cslatex-u s obrazkami eps namiesto predosleho riadku 
% pouzit nasledujuci riadok
% \usepackage{color,graphicx}
% ----------------------------------------------------------------
\setlength\textheight{200mm}
\setlength\textwidth{160mm}
\oddsidemargin=0mm\evensidemargin=0mm
\sloppy
\begin{document}
\thispagestyle{empty}
\begin{center}
{\Large Katedra počítačov a informatiky FEI TU v Košiciach}
\end{center}
\vfill
\begin{center}
{\huge Paralelné programovanie}
\end{center}

\begin{center}
{\large 2015/2016}
\end{center}
\vfill

\begin{center}
{\large Peter Babič} \hfill {\large Počítačové modelovanie}
\end{center}

\clearpage

\setcounter{section}{0}
\section{Paralelné hľadanie maxima čísel}

\subsection*{Paralelná dekompozícia problému}

Master proces sa stará o načítanie dát a rozpočítanie počtu prvkov priradených pre slave procesy na približne rovnaké časti. Tie sú následne rozoslané medzi všetky dostupné slave procesy, vrátane master procesu, pomocou funkcie \verb|MPI_Scatterv| Proces so získanej časti nájde maximum. Jednotlivé maximá sú následne spätne získané master procesom pomocou \verb|MPI_Gather|, ktorý z nich nájde absolútne maximum. Po ukončení behu paralelnej časti algoritmu master proces vypíše výsledok na štandardný výstup. 

Program využije všetky dostupné vlákna. Jedinou podmienkou je, aby počet párov vstupných hodnôt bol rovný alebo väčší ako počet vlákien, inak algoritmus nemá zmysel paralelizovať.

\subsection*{Spôsob využitia nových komunikátorov}

Všetky procesy zahrnuté do riešenia sú súčasťou globálneho komunikátora \verb|MPI_COMM_WORLD|.

\subsection*{Spôsob využitia topológie procesov}

V riešení nepoli využité virtuálne topológie.

\subsection*{Hodnotenie efektívnosti výpočtu}

Experimentálne namerané výsledky behu sekvenčného a paralelného algoritmu na processore Intel Core2 Duo Processor T9500 so 4 GB priľahlej RAM sú uvedené v tabuľke \ref{t:efecti}. Vstupom bol súbor obsahujúci 500 000 hodnôt. 

\begin{table}[h!]
\caption{Porovnanie sekvenčného (1) a paralelného (2+) algoritmu}
\label{t:efecti}
\centering
\begin{tabular}{l|rrrrrrrr}
\hline 
Počet procesov & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ 
\hline 
Čas v sekundách & 0.24 & 0.33 & 0.33 & 0.35 & 0.42 & 0.45 & 0.60 & 0.60 \\ 
\hline 
Vyťaženie CPU v \% & 92 & 125 & 140 & 141 & 150 & 156 & 158 & 161 \\ 
\hline 
\end{tabular} 
\end{table}

Výsledky naznačujú, že použitá implementácia algoritmu dosahuje najlepšie výsledky v sekvenčnej forme. S nárastom vlákien sa zvyšuje čas aj vyťaženosť CPU.




\end{document}


