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.

92 lines
3.5 KiB

8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
  1. \documentclass[a4paper,12pt]{article}
  2. \usepackage{amsmath}
  3. \usepackage{amssymb}
  4. \usepackage[polish]{babel}
  5. \usepackage{polski}
  6. \usepackage[utf8]{inputenc}
  7. \usepackage{indentfirst}
  8. \usepackage{geometry}
  9. \usepackage{array}
  10. \usepackage[pdftex]{color,graphicx}
  11. \usepackage{subfigure}
  12. \usepackage{afterpage}
  13. \usepackage{setspace}
  14. \usepackage{color}
  15. \usepackage{wrapfig}
  16. \usepackage{listings}
  17. \usepackage{datetime}
  18. \renewcommand{\onehalfspacing}{\setstretch{1.6}}
  19. \geometry{tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
  20. \setlength{\parindent}{1cm}
  21. \setlength{\parskip}{0mm}
  22. \newenvironment{lista}{
  23. \begin{itemize}
  24. \setlength{\itemsep}{1pt}
  25. \setlength{\parskip}{0pt}
  26. \setlength{\parsep}{0pt}
  27. }{\end{itemize}}
  28. \newcommand{\linia}{\rule{\linewidth}{0.4mm}}
  29. \definecolor{lbcolor}{rgb}{0.95,0.95,0.95}
  30. \lstset{
  31. backgroundcolor=\color{lbcolor},
  32. tabsize=4,
  33. language=C++,
  34. captionpos=b,
  35. tabsize=3,
  36. frame=lines,
  37. numbers=left,
  38. numberstyle=\tiny,
  39. numbersep=5pt,
  40. breaklines=true,
  41. showstringspaces=false,
  42. basicstyle=\footnotesize,
  43. identifierstyle=\color{magenta},
  44. keywordstyle=\color[rgb]{0,0,1},
  45. commentstyle=\color{Darkgreen},
  46. stringstyle=\color{red}
  47. }
  48. \begin{document}
  49. \noindent
  50. \begin{tabular}{|c|p{11cm}|c|} \hline
  51. Grupa 1 & Piotr Dergun, Dominik Waśko & \ddmmyyyydate\today \tabularnewline
  52. \hline
  53. \end{tabular}
  54. \section*{Zadanie 2 - Mnożenie macierzy MPI}
  55. Celem zadania jest obliczenie iloczynu dwóch macierzy prostokątnych o wymiarach n x n, na określonej liczbie procesów p (dane te podane jako parametry programu). Posługując się zapisem matematycznym zadanie można zapisać jako równanie: A*B = C. Kluczowy jest odpowiedni podział obliczeń pomiędzy procesami. Przyjęto, że gdy n/p jest liczbą całkowitą każdy proces oblicza n/p kolumn macierzy C. W przeciwnym wypadku jeden z procesów oblicza n modulo p kolumn macierzy C, a pozostałe procesy otrzymują po [n/p] kolumn macierzy C.
  56. Zadanie zostało uruchomione na klastrze składającego się z 3 komputerów MacPro 3.1 z procesorem Xeon E5462 oraz 3 komputerów iMac14.2 z procesorem i5-4570.Taka konfiguracja daje w sumie 30 rdzeni bez Hyper Threading. Na potrzeby tego zadania wykorzystano jednak tylko 24, ponieważ pozostałe rdzenie były wykorzystywane do innych obliczeń. Program został skompilowany i uruchomiony z następującymi parametrami: macierz 2000x2000, ilość procesów 1-24, dla każdego przypadku wykonano 10 powtórzeń. Z otrzymanych wyników obliczono przyspieszenie oraz średni czas liczenia macierzy.
  57. Rysunek 1 przedstawia wykres zależności przyspieszenia od ilości procesów. Można zauważyć skokowe, nie równomierne przyspieszanie. Jest to spowodowane tym, że wraz z zwiększaniem liści rdzeni dokładane są kolejne maszyny co wymaga komunikacji sieciowej, która powoduje kilkudziesięcio milisekundowe opóźnienia. Rysunek 2 przedstawia wykres zależności czasu obliczeń od liczby procesów.
  58. Z powyższych obserwacji wynika, że wykorzystanie większej liczby rdzeni -zwiększając tym samym liczbę procesów- pozwala znacząco skrócić czas obliczeń. Pomimo, że konieczność komunikacji sieciowej spowalnia działanie programu nadal wzrost przyspieszenia jest duży.
  59. \begin{figure}[!h]
  60. \centering
  61. \includegraphics[width=0.7\textwidth]{dane/przyspieszenie.jpg}
  62. \caption{Wykres zależności przyspieszenia obliczeń od liczby procesów}
  63. \end{figure}
  64. \begin{figure}[!h]
  65. \centering
  66. \includegraphics[width=0.7\textwidth]{dane/czas.jpg}
  67. \caption{Wykres zależności czasu obliczeń od liczby procesów}
  68. \end{figure}
  69. \end{document}