diff --git a/coursework_report/coursework_report.pdf b/coursework_report/coursework_report.pdf index 2abafdc..feb9453 100644 Binary files a/coursework_report/coursework_report.pdf and b/coursework_report/coursework_report.pdf differ diff --git a/coursework_report/main.tex b/coursework_report/main.tex index f29241e..d95b90b 100644 --- a/coursework_report/main.tex +++ b/coursework_report/main.tex @@ -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$. @@ -224,7 +224,7 @@ \section{ Алгоритмы } \begin{algorithm} - \caption{PA0 Алгоритм (Код для процессора $q$)} + \caption{PA1 Алгоритм (Код для процессора $q$)} \label{algo:PA0} \begin{algorithmic}[1] @@ -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$} @@ -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$}