\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}{1} \section{Paralelné transponovanie matice} \subsection*{Paralelná dekompozícia problému} Matica je v programe reprezentovaná ako jedno-rozmerné pole. Riešenie netrenasponuje aktuálne dáta, iba indexy. Master proces sa stará o načítanie dát a rozpočítanie počtu indexov priradených pre slave procesy na približne rovnaké časti. Tie sú následne indivuálne rozoslané medzi všetky dostupné slave procesy, vrátane master procesu, blokujúcou komunikáciou \verb|MPI_Send| a \verb|MPI_Receive|. Rozmery matice sú uložené do poľa a zdieľadné medzi všetkými procesmi pomocou \verb|MPI_Bcast|. Proces transponuje všetky získané indexy a tie sú následne spätne získané master procesom pomocou \verb|MPI_Gatherv|. 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. \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 maticu s rozmermi 5 x 9. \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 ms & 0.15 & 0.16 & 0.17 & 0.20 & 0.20 & 0.20 & 0.29 & 0.35 \\ \hline Vyťaženie CPU v \% & 88 & 99 & 105 & 111 & 112 & 115 & 125 & 127 \\ \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}