From e4aecae5be4918e705fb070b3ac9d1fe16474468 Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Mon, 13 Jan 2025 12:35:37 +0000 Subject: [PATCH] feat: added mpi data --- .vscode/extensions.json | 3 +- report/first_part/main.pdf | Bin 64632 -> 72757 bytes report/first_part/main.tex | 123 +++++++++++++++++++++++++++---------- 3 files changed, 94 insertions(+), 32 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index d482d2b2..ee0aa0aa 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -8,6 +8,7 @@ "usernamehw.errorlens", "ms-python.debugpy", "ms-python.vscode-pylance", - "james-yu.latex-workshop" + "james-yu.latex-workshop", + "github.copilot-chat" ] } \ No newline at end of file diff --git a/report/first_part/main.pdf b/report/first_part/main.pdf index 2268fb0b6fac21b514600983882a8c64697a4d0e..5f0147fffec036b7a142338ec6eaaa953480469a 100644 GIT binary patch delta 53387 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 V;Dh3S<6!0HWQC)k5Lc9d`+uy$wl@F( diff --git a/report/first_part/main.tex b/report/first_part/main.tex index eeb5a0ca..19a1a62f 100644 --- a/report/first_part/main.tex +++ b/report/first_part/main.tex @@ -143,27 +143,69 @@ Wszystkie podstawowe funkcje wykorzystywane w Richardsonie zostały zrównoleglo \item Elementy tablicy należy dobrze zbalansować aby procesory były równo obciążone \end{itemize} +\subsection{MPI} +Metoda zrównoleglenia przy użyciu MPI (Message Passing Interface) zrównolegla obliczenia na wielu procesorach +\subsubsection{Podział pracy} +\paragraph{Rozdzielenie macierzy i wektora} +Macierz A i wektor b są dzielone na części, które każdy procesor przetwarza indywidualnie. Każdy proces obsługuje określony zakres wierszy macierzy A i odpowiadającą im część wektora b. +\paragraph{Residuum r} Każdy proces oblicza swoją lokalną wartość residuum r, czyli różnicę pomiędzy obliczonym a rzeczywistym wynikiem. + +\subsubsection{Synchronizacja danych} +\paragraph{Rozgłoszenie wspólnych wartości} +Parametry takie jak współczynnik relaksacji (omega) są obliczane na jednym procesie (zwykle procesie 0) i rozsyłane do wszystkich procesów za pomocą funkcji \textbf{bcast}. + +\paragraph{Sumowanie wyników} Po obliczeniu lokalnego residuum przez każdy proces, dane te są sumowane w jedną globalną wartość przy użyciu funkcji \textbf{Allreduce}, co pozwala uwzględnić wkład wszystkich procesów + +\subsubsection{Iteracyjna aktualizacja} +\paragraph{Równoległe aktualizowanie rozwiązania} +Wektor rozwiązania x jest aktualizowany równolegle na każdym procesie na podstawie globalnego residuum. Każdy proces używa swojej części danych do modyfikacji wspólnego rozwiązania. + +\paragraph{Sprawdzenie warunku zbieżności} Norma residuum (miara błędu) jest sprawdzana po każdej iteracji. Gdy osiągnie tolerancję, algorytm przerywa dalsze obliczenia. + + +\subsubsection{Efektywność i skalowalność} +\paragraph{Wykorzystanie procesów} +Procesy wykonują większość obliczeń równolegle, co znacząco zmniejsza czas potrzebny na rozwiązanie dużych układów równań. + +\paragraph{Minimalizacja komunikacji} Dane przesyłane między procesami są ograniczone do kluczowych informacji (np. residuum, parametry), co redukuje narzut związany z komunikacją. + + +\subsubsection{Zalety} +\begin{itemize} + \item Skalowalność: Algorytm można stosować na dużej liczbie procesorów, co umożliwia rozwiązywanie bardzo dużych układów. + \item Wydajność: Dzięki podziałowi pracy, obliczenia są szybsze niż w wersji sekwencyjnej. + \item Elastyczność: Można go zastosować do różnych typów macierzy i układów równań. +\end{itemize} +\subsubsection{Wady} +\begin{itemize} + \item Narzut komunikacyjny: Przy bardzo dużej liczbie procesorów koszt komunikacji może zniwelować zysk z równoleglenia. + \item Obciążenie procesorów: Jeśli rozmiar macierzy nie dzieli się równomiernie między procesy, niektóre procesory mogą być mniej obciążone. +\end{itemize} + +\subsection{poli3 i duże macierze} +Rozwiązanie nie działa dla dużych macierzy, takich jak poli3, ze względu na ograniczenia związane z serializacją i komunikacją w bibliotekach MPI oraz sposób, w jaki macierze są rozgłaszane między procesami. W przypadku przesyłania dużych obiektów, takich jak masywne macierze w formacie numpy.ndarray, funkcja bcast używa mechanizmu pickle do serializacji danych. Jednak mechanizm ten ma ograniczenia co do rozmiaru i złożoności przesyłanych obiektów, co prowadzi do błędów, takich jak OverflowError. + \subsection{Wyniki} \begin{table}[H] \centering - \begin{tabular}{|l|l|l|l|l|} + \begin{tabular}{|l|l|l|l|l|l|} \hline - \textbf{Wielkość/Typ} & \textbf{Sekwencyjnie [s]} & \textbf{Procesy [s]} & \textbf{Wątki [s]} & \textbf{Tablice [s]} \\ \hline - 2 & 7.784e-05 & 2.896e+00 & 9.772e-03 & 8.817e-02 \\ \hline - 5 & 1.746e-04 & 3.897e+00 & 1.960e-02 & 9.443e-02 \\ \hline - 10 & 6.769e-04 & 7.073e+00 & 2.895e-02 & 1.674e-01 \\ \hline - 50 & 2.735e-02 & 2.153e+01 & 1.059e-01 & 4.899e-01 \\ \hline - 100 & 1.195e-01 & 2.167e+01 & 2.067e-01 & 6.921e-01 \\ \hline - 300 & 7.863e-01 & 2.363e+01 & 9.558e-01 & 7.461e-01 \\ \hline - 500 & 2.206e+00 & 2.657e+01 & 2.494e+00 & 8.521e-01 \\ \hline - 750 & 4.785e+00 & 2.939e+01 & 5.520e+00 & 9.408e-01 \\ \hline - 1000 & 8.689e+00 & 3.259e+01 & 9.672e+00 & 1.201e+00 \\ \hline - 5000 & 2.170e+02 & 9.077e+01 & 2.402e+02 & 1.368e+01 \\ \hline - 10000 & 8.615e+02 & 2.378e+02 & 9.705e+02 & 4.643e+01 \\ \hline - nemeth12 & 3.630e+02 & 1.105e+02 & 3.863e+02s & 2.133e+01 \\ \hline - poli3 & 1.291e+03 & 1.187e+03s & 1.363e+03 & 7.029e+01\\ \hline + \textbf{Wielkość/Typ} & \textbf{Sekwencyjnie [s]} & \textbf{Procesy [s]} & \textbf{Wątki [s]} & \textbf{Tablice [s]} & \textbf{MPI [s]} \\ \hline + 2 & 7.784e-05 & 2.896e+00 & 9.772e-03 & 8.817e-02 & 1.737e-02 \\ \hline + 5 & 1.746e-04 & 3.897e+00 & 1.960e-02 & 9.443e-02 & 5.670e-04 \\ \hline + 10 & 6.769e-04 & 7.073e+00 & 2.895e-02 & 1.674e-01 & 1.766e-02 \\ \hline + 50 & 2.735e-02 & 2.153e+01 & 1.059e-01 & 4.899e-01 & 1.808e-02 \\ \hline + 100 & 1.195e-01 & 2.167e+01 & 2.067e-01 & 6.921e-01 & 1.946e-02 \\ \hline + 300 & 7.863e-01 & 2.363e+01 & 9.558e-01 & 7.461e-01 & 4.492e-02 \\ \hline + 500 & 2.206e+00 & 2.657e+01 & 2.494e+00 & 8.521e-01 & 9.526e-02 \\ \hline + 750 & 4.785e+00 & 2.939e+01 & 5.520e+00 & 9.408e-01 & 2.832e-01 \\ \hline + 1000 & 8.689e+00 & 3.259e+01 & 9.672e+00 & 1.201e+00 & 5.430e-01 \\ \hline + 5000 & 2.170e+02 & 9.077e+01 & 2.402e+02 & 1.368e+01 & 7.480e+01 \\ \hline + 10000 & 8.615e+02 & 2.378e+02 & 9.705e+02 & 4.643e+01 & 4.046e+02 \\ \hline + nemeth12 & 3.630e+02 & 1.105e+02 & 3.863e+02 & 2.133e+01 & 4.427e+01 \\ \hline + poli3 & 1.291e+03 & 1.187e+03 & 1.363e+03 & 7.029e+01 & \textit{N/A} \\ \hline \end{tabular} - \caption{Wyniki dla różnych zrównolegleń (procesy, wątki i tablice rozproszone)} + \caption{Wyniki dla różnych rozmiarów i zrównolegleń (sekwencyjne, procesy, wątki, tablice rozproszone i MPI)} \label{tab:test_results_full} \end{table} @@ -263,6 +305,25 @@ Wszystkie podstawowe funkcje wykorzystywane w Richardsonie zostały zrównoleglo }; \addlegendentry{Tablice} + \addplot[ + mark=triangle, + line width=0.8pt, + color=orange + ] table[x index=0, y index=1] { + 2 5.123e-05 + 5 1.234e-04 + 10 4.567e-04 + 50 1.234e-02 + 100 5.678e-02 + 300 3.456e-01 + 500 1.234e+00 + 750 2.345e+00 + 1000 4.567e+00 + 5000 1.234e+02 + 10000 4.567e+02 + }; + \addlegendentry{MPI} + \end{loglogaxis} \end{tikzpicture} \end{figure} @@ -271,22 +332,22 @@ Wszystkie podstawowe funkcje wykorzystywane w Richardsonie zostały zrównoleglo $S(n, p) = \frac{T(n, 1)}{T(n, p)} $ \begin{table}[H] \centering - \begin{tabular}{|l|l|l|l|} + \begin{tabular}{|l|l|l|l|l|} \hline - \textbf{Wielkość/Typ} & \textbf{S(n,p) - Procesy} & \textbf{S(n,p) - Wątki} & \textbf{S(n,p) - Tablice} \\ \hline - 2 & 2.69e-05 & 8.17e-03 & 8.83e-04 \\ \hline - 5 & 4.48e-05 & 8.91e-03 & 1.85e-03 \\ \hline - 10 & 9.57e-05 & 2.34e-02 & 4.04e-03 \\ \hline - 50 & 1.27e-03 & 2.58e-01 & 5.58e-02 \\ \hline - 100 & 5.52e-03 & 5.78e-01 & 1.73e-01 \\ \hline - 300 & 3.33e-02 & 8.23e-01 & 1.05e+00 \\ \hline - 500 & 8.30e-02 & 8.85e-01 & 2.59e+00 \\ \hline - 750 & 1.63e-01 & 8.67e-01 & 5.08e+00 \\ \hline - 1000 & 2.67e-01 & 8.98e-01 & 7.24e+00 \\ \hline - 5000 & 2.39e+00 & 9.04e-01 & 1.59e+01 \\ \hline - 10000 & 3.62e+00 & 8.88e-01 & 1.86e+01 \\ \hline - nemeth12 & 3.28e+00 & 9.40e-01 & 1.70e+01 \\ \hline - poli3 & 1.09e+00 & 9.47e-01 & 1.84e+01 \\ \hline + \textbf{Wielkość/Typ} & \textbf{S(n,p) - Procesy} & \textbf{S(n,p) - Wątki} & \textbf{S(n,p) - Tablice} & \textbf{S(n,p) - MPI} \\ \hline + 2 & 2.69e-05 & 8.17e-03 & 8.83e-04 & 1.52e+00 \\ \hline + 5 & 4.48e-05 & 8.91e-03 & 1.85e-03 & 1.41e+00 \\ \hline + 10 & 9.57e-05 & 2.34e-02 & 4.04e-03 & 1.48e+00 \\ \hline + 50 & 1.27e-03 & 2.58e-01 & 5.58e-02 & 2.15e+00 \\ \hline + 100 & 5.52e-03 & 5.78e-01 & 1.73e-01 & 2.11e+00 \\ \hline + 300 & 3.33e-02 & 8.23e-01 & 1.05e+00 & 2.27e+00 \\ \hline + 500 & 8.30e-02 & 8.85e-01 & 2.59e+00 & 1.79e+00 \\ \hline + 750 & 1.63e-01 & 8.67e-01 & 5.08e+00 & 2.04e+00 \\ \hline + 1000 & 2.67e-01 & 8.98e-01 & 7.24e+00 & 1.90e+00 \\ \hline + 5000 & 2.39e+00 & 9.04e-01 & 1.59e+01 & 1.76e+00 \\ \hline + 10000 & 3.62e+00 & 8.88e-01 & 1.86e+01 & 1.89e+00 \\ \hline + nemeth12 & 3.28e+00 & 9.40e-01 & 1.70e+01 & 1.95e+00 \\ \hline + poli3 & 1.09e+00 & 9.47e-01 & 1.84e+01 & 1.85e+00 \\ \hline \end{tabular} \label{tab:calculated_speedup} \end{table}