You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.1 KiB
80 lines
3.1 KiB
9 years ago
|
\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}{2}
|
||
|
\section{Paralelné násobenie matíc}
|
||
|
|
||
|
\subsection*{Paralelná dekompozícia problému}
|
||
|
|
||
|
Matice sú v programe reprezentované ako jedno-rozmerné polia. Master proces sa stará o načítanie dát a rozpočítanie počtu riadkov z prvej matice a počtu stĺpcov z druhej matice na približne rovnaké počty, ktoré sú následne rozdelené medzi dostupné procesy pre znásobenie. Rozmery matice sú uložené do poľa a zdieľadné medzi všetkými procesmi pomocou \verb|MPI_Bcast|. Znásobí získané riadky a stĺpce podľa matematických pravidiel pre násobenie matice. Výsledné hodnoty sú 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. Podmienkou je, aby prvá matica mala rovnaký počet riadkov ako druhá matica stĺpcov, a zároveň, aby počet riadkov prvej matice bol väčší alebo rovný ako počet vlákien.
|
||
|
|
||
|
\subsection*{Spôsob využitia nových komunikátorov}
|
||
|
|
||
|
V riešení boli implementované dva nové komunikátory pre riadky a stĺpce.
|
||
|
|
||
|
\subsection*{Spôsob využitia topológie procesov}
|
||
|
|
||
|
Karteziánska (mriežková) virtuálna topológia je použitá na získanie riadkov a stĺpcov z násobených matíc, čo je esenciálne pre implementovaný algoritmus.
|
||
|
|
||
|
\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 boli súbory obsahujúce matice s rozmermi 5 x 10 a 10 x 5, respektíve.
|
||
|
|
||
|
\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.18 & 0.20 & 0.21 & 0.22 & 0.25 & 0.27 & 0.28 & 0.31 \\
|
||
|
\hline
|
||
|
Vyťaženie CPU v \% & 89 & 95 & 106 & 113 & 115 & 116 & 126 & 132 \\
|
||
|
\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}
|
||
|
|
||
|
|