Skip to content

Commit

Permalink
Fix issues on report.
Browse files Browse the repository at this point in the history
  • Loading branch information
ypodlesov committed May 18, 2024
1 parent 2c39f9b commit 66e98d4
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
Binary file modified coursework_report/coursework_report.pdf
Binary file not shown.
20 changes: 10 additions & 10 deletions coursework_report/main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -145,23 +145,23 @@

\chapter{ Введение }

Стоимость вычислительного алгоритма включает в себя как арифметику, так и обмен данными. Термин <<обмен данными>> используется в общем смысле для обозначения перемещения данных либо между уровнями иерархии памяти - <<последовательный>>, либо между несколькими процессорами - <<параллельный>>. Затраты на связь намного превышают арифметические затраты, и вместе с технологическим развитием разрыв быстро увеличивается. Это говорит о том, что для достижения наилучшей производительности алгоритмы должны минимизировать обмен данными, даже если для этого могут потребоваться некоторые избыточные арифметические операции. Такие алгоритмы называются <<избегающими общения>>.
Стоимость вычислительного алгоритма включает в себя как арифметику, так и обмен данными. Термин <<обмен данными>> используется в общем смысле для обозначения перемещения данных либо между уровнями иерархии памяти - <<последовательный>>, либо между несколькими процессорами - <<параллельный>>. Затраты на связь намного превышают арифметические затраты, и вместе с технологическим развитием разрыв быстро увеличивается. Это говорит о том, что для достижения наилучшей производительности алгоритмы должны минимизировать обмен данными, даже если для этого могут потребоваться некоторые избыточные арифметические операции. Такие алгоритмы называются <<избегающими обменов>>.

Методы подпространств Крылова (KSM) - это итерационные алгоритмы для решения больших разреженных линейных систем и задач на собственные значения. Современные KSM-системы тратят большую часть своего времени на такие операции, как умножение разреженной матрицы на вектор (SpMV) и векторно-векторные операции (включая скалярные произведения и суммы векторов). Кроме того, зависимости данных между этими операциями означают, что только небольшая часть этих коммуникаций может быть скрыта. Многие важные научные и инженерные вычисления выполняются в основном с использованием методов Крылова, поэтому производительность многих кодов можно было бы повысить, внедрив KSM, которые обеспечивают меньшее количество коммуникаций.
Методы подпространств Крылова - это итерационные алгоритмы для решения больших разреженных линейных систем и задач на собственные значения. Современные методы подпространств Крылова тратят большую часть своего времени на такие операции, как умножение разреженной матрицы на вектор (SpMV) и векторно-векторные операции (включая скалярные произведения и суммы векторов). Кроме того, зависимости данных между этими операциями означают, что только небольшая часть этих коммуникаций может быть скрыта. Многие важные научные и инженерные вычисления выполняются в основном с использованием методов Крылова, поэтому производительность многих кодов можно было бы повысить, внедрив эти методы, обеспечивающие меньшее количество обменов.

Наша цель - выполнить s итераций KSM с тем же количеством коммуникаций что было за 1 итерацию. Это можно сделать при определенных предположениях о матрице и для определенных KSM, в теории для многих KSM, на практике для некоторых KSM. \textbf{Эта работа объясняет, как избежать коммуникаций в этих методах Крылова на операции SpMV}.
Наша цель - выполнить s итераций метода с тем же количеством коммуникаций что было за 1 итерацию. Это можно сделать при определенных предположениях о матрице и для определенных методов подпространств Крылова, в теории для многих методов такого типа, на практике для некоторых. \textbf{Эта работа объясняет, как избежать коммуникаций в этих методах Крылова на операции SpMV}.

\chapter{ Методы подпространств Крылова }

\section{ Структура Крыловских методов }
Методы подпространства Крылова (KSM) - это большой класс итерационных алгоритмов, которые работают с конечными матрицами и векторами в вещественной и сложной арифметике. Они имеют множество применений, включая решение линейных систем, задач наименьших квадратов, задач на собственные значения и задач с сингулярными значениями. В этой работе обсуждается решение линейных систем $Ax = b$ и задач на собственные значения $Ax = \lambda x$. В данной работе представляются методы Крылова, избегающие коммуникаций.
Методы подпространства Крылова - это большой класс итерационных алгоритмов, которые работают с конечными матрицами и векторами в вещественной и сложной арифметике. Они имеют множество применений, включая решение линейных систем, задач наименьших квадратов, задач на собственные значения и задач с сингулярными значениями. В этой работе обсуждается решение линейных систем $Ax = b$ и задач на собственные значения $Ax = \lambda x$. В данной работе представляются методы Крылова, избегающие обменов.

KSM работают, используя одно или несколько матрично-векторных произведений на каждой итерации для добавления вектора (ов) к базису для одного или нескольких так называемых <<подпространств Крылова>> с желаемыми свойствами. Подпространство Крылова относительно квадратной матрицы $A_{n \times n}$ и вектора $v$ длины $n$ является следующим подпространством:
Методы подпространства Крылова работают, используя одно или несколько матрично-векторных произведений на каждой итерации для добавления вектора (ов) к базису для одного или нескольких так называемых <<подпространств Крылова>> с желаемыми свойствами. Подпространство Крылова относительно квадратной матрицы $A_{n \times n}$ и вектора $v$ длины $n$ является следующим подпространством:
$$ K_k(A, v) = \{\, v,\, Av,\, A^2v,\, \ldots,\, A^{k-1}v\, \}$$
где $k$ - целое положительное число. В KSM используется одно или несколько подпространств Крылова. Предполагается, что каждая итерация KSM увеличивает размерность этих подпространств. Они используются в качестве расширяющегося пространства, из которого с помощью проекции вычисляется приближенное решение $x_k$ (если решается $Ax = b$) или приближенные собственные значения и векторы (если решается $Ax = x$).
где $k$ - целое положительное число. В методах подпространств Крылова используется одно или несколько подпространств Крылова. Предполагается, что каждая итерация метода увеличивает размерность этих подпространств. Они используются в качестве расширяющегося пространства, из которого с помощью проекции вычисляется приближенное решение $x_k$ (если решается $Ax = b$) или приближенные собственные значения и векторы (если решается $Ax = x$). Ниже речь пойдет о конкретном методе споряженных градиентов.

\section{ Модель стоимостей вычислительных операций в Крыловских методах }
Каждая итерация KSM может состоять из
Каждая итерация метода сопряженных градиентов может состоять из
\begin{enumerate}
\item $SpMV(A, b)$ - умножение разреженной матрицы $A_{n \times n}$ на вектор $v$ длины $n$.
\item $InnerProduct(a, b)$ - скалярное произведение векторов $a$ и $b$.
Expand Down Expand Up @@ -224,7 +224,7 @@
\section{ Алгоритмы }

\begin{algorithm}
\caption{PA0 Алгоритм (Код для процессора $q$)}
\caption{PA1 Алгоритм (Код для процессора $q$)}
\label{algo:PA0}
\begin{algorithmic}[1]

Expand All @@ -244,7 +244,7 @@
\end{algorithm}

\begin{algorithm}
\caption{PA1 Алгоритм (Код для процессора $q$)}
\caption{PA2 Алгоритм (Код для процессора $q$)}
\label{algo:segment}
\begin{algorithmic}[1]
\ForAll{processors $r \neq q$}
Expand All @@ -264,7 +264,7 @@
\end{algorithm}

\begin{algorithm}
\caption{PA2 algorithm (Code for processor q)}
\caption{PA3 algorithm (Code for processor q)}
\label{algo:PA2}
\begin{algorithmic}[1]
\For{$i = 1$ to $s$}
Expand Down

0 comments on commit 66e98d4

Please sign in to comment.