assignment3.tex finished + som fixes on previous

master
Peter Babič 9 years ago
parent 0ac6403fe4
commit 12e3812684
  1. BIN
      assignment1.pdf
  2. 2
      assignment1.tex
  3. BIN
      assignment2.pdf
  4. 2
      assignment2.tex
  5. BIN
      assignment3.pdf
  6. 79
      assignment3.tex

BIN
assignment1.pdf (Stored with Git LFS)

Binary file not shown.

@ -39,7 +39,7 @@
\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 pralelnej časti algoritmu master proces vypíše výsledok na štandardný výstup.
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ť.

BIN
assignment2.pdf (Stored with Git LFS)

Binary file not shown.

@ -39,7 +39,7 @@
\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é indexya tie sú následne spätne získané master procesom pomocou \verb|MPI_Gatherv|. Po ukončení behu pralelnej časti algoritmu master proces vypíše výsledok na štandardný výstup.
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.

BIN
assignment3.pdf (Stored with Git LFS)

Binary file not shown.

@ -0,0 +1,79 @@
\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}
Loading…
Cancel
Save