Fill task1 report with Intel LINPACK results
This commit is contained in:
@@ -355,9 +355,9 @@ sacct -j <job_id> --format=JobID,JobName,Partition,State,Start,End,Elapsed,NNode
|
|||||||
\caption{Сведения Slurm о выполнении Intel LINPACK}
|
\caption{Сведения Slurm о выполнении Intel LINPACK}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
На момент подготовки отчёта успешно выполнен CUDA-запуск задания \texttt{6616336} на узле \texttt{n02p009}. Для него получены корректные значения времени, производительности и точности решения. Попытка запуска Intel LINPACK заданием \texttt{6616338} завершилась неуспешно из-за отсутствия бинарного файла \texttt{xlinpack\_xeon64} по ожидаемому пути; после уточнения реального расположения пакета на кластере столбцы Intel LINPACK могут быть заполнены без изменения остальной структуры отчёта.
|
Для сравнения были использованы два фактических запуска на СКЦ Политехнический: собственная CUDA-реализация (задание \texttt{6616336}, узел \texttt{n02p009}, раздел \texttt{tornado-k40}) и стандартный Intel LINPACK (задание \texttt{6616818}, узел \texttt{n01p090}, раздел \texttt{tornado}). Для Intel LINPACK использовался отдельный входной файл, содержащий те же размеры задач, что и в CUDA-реализации.
|
||||||
|
|
||||||
Численные результаты удобно свести в таблицу \ref{tab:task1-results}. Значения для столбцов CUDA берутся из файла \texttt{results/task1-cuda-6616336.csv}, а значения для столбцов Intel LINPACK --- из секции \texttt{Performance Summary} в выходном файле CPU-задания после успешного запуска.
|
Численные результаты сведены в таблицу \ref{tab:task1-results}. Для столбцов CUDA использованы значения из файла \texttt{results/task1-cuda-6616336.csv}. Для Intel LINPACK в таблицу внесены минимальное время из серии прогонов и максимальная производительность из секции \texttt{Performance Summary}.
|
||||||
|
|
||||||
\begin{table}[H]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
@@ -367,22 +367,23 @@ sacct -j <job_id> --format=JobID,JobName,Partition,State,Start,End,Elapsed,NNode
|
|||||||
\toprule
|
\toprule
|
||||||
$N$ & $t_{CUDA}$, мс & Iter & $\|Ax-b\|_{\infty}$ & $R_{CUDA}$, GFLOPS & $t_{Intel}$, c & $R_{Intel}$, GFLOPS & $S_t$ \\
|
$N$ & $t_{CUDA}$, мс & Iter & $\|Ax-b\|_{\infty}$ & $R_{CUDA}$, GFLOPS & $t_{Intel}$, c & $R_{Intel}$, GFLOPS & $S_t$ \\
|
||||||
\midrule
|
\midrule
|
||||||
1000 & 5.0083 & 6 & $2.242 \cdot 10^{-6}$ & 133.114 & -- & -- & -- \\
|
1000 & 5.0083 & 6 & $2.242 \cdot 10^{-6}$ & 133.114 & 0.010 & 67.331 & 2.00 \\
|
||||||
1500 & 7.4931 & 6 & $1.107 \cdot 10^{-6}$ & 300.277 & -- & -- & -- \\
|
1500 & 7.4931 & 6 & $1.107 \cdot 10^{-6}$ & 300.277 & 0.020 & 114.360 & 2.67 \\
|
||||||
2000 & 8.3563 & 5 & $2.443 \cdot 10^{-5}$ & 638.244 & -- & -- & -- \\
|
2000 & 8.3563 & 5 & $2.443 \cdot 10^{-5}$ & 638.244 & 0.028 & 193.276 & 3.35 \\
|
||||||
2500 & 10.4837 & 5 & $1.593 \cdot 10^{-5}$ & 993.608 & -- & -- & -- \\
|
2500 & 10.4837 & 5 & $1.593 \cdot 10^{-5}$ & 993.608 & 0.042 & 250.731 & 4.01 \\
|
||||||
3000 & 12.6709 & 5 & $1.288 \cdot 10^{-5}$ & 1420.573 & -- & -- & -- \\
|
3000 & 12.6709 & 5 & $1.288 \cdot 10^{-5}$ & 1420.573 & 0.069 & 260.451 & 5.45 \\
|
||||||
3500 & 14.8861 & 5 & $9.516 \cdot 10^{-6}$ & 1920.138 & -- & -- & -- \\
|
3500 & 14.8861 & 5 & $9.516 \cdot 10^{-6}$ & 1920.138 & 0.100 & 286.264 & 6.72 \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
По уже полученным данным CUDA-реализации можно сделать предварительные наблюдения:
|
По полученным результатам можно сделать следующие наблюдения:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item все тестовые случаи для размеров от $1000$ до $3500$ успешно сошлись за $5$--$6$ итераций;
|
\item все тестовые случаи для размеров от $1000$ до $3500$ успешно сошлись за $5$--$6$ итераций;
|
||||||
\item время решения возрастает плавно: от $5.0083$ мс при $N = 1000$ до $14.8861$ мс при $N = 3500$;
|
\item время решения возрастает плавно: от $5.0083$ мс при $N = 1000$ до $14.8861$ мс при $N = 3500$;
|
||||||
\item производительность в GFLOPS монотонно увеличивается и достигает $1920.138$ GFLOPS на размере $N = 3500$;
|
\item производительность в GFLOPS монотонно увеличивается и достигает $1920.138$ GFLOPS на размере $N = 3500$;
|
||||||
\item ошибка по известному решению остаётся на уровне порядка $10^{-9}$--$10^{-8}$, а невязка --- на уровне $10^{-6}$--$10^{-5}$, что подтверждает корректность полученного решения.
|
\item ошибка по известному решению остаётся на уровне порядка $10^{-9}$--$10^{-8}$, а невязка --- на уровне $10^{-6}$--$10^{-5}$, что подтверждает корректность полученного решения;
|
||||||
|
\item на всех рассмотренных размерах задач собственная CUDA-реализация оказывается быстрее Intel LINPACK, а ускорение по времени $S_t$ возрастает от $2.00$ до $6.72$.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Выводы}
|
\subsection{Выводы}
|
||||||
@@ -391,7 +392,7 @@ sacct -j <job_id> --format=JobID,JobName,Partition,State,Start,End,Elapsed,NNode
|
|||||||
|
|
||||||
Дополнительно были подготовлены сценарии пакетного запуска на СКЦ Политехнический: отдельный скрипт для собственной CUDA-реализации и отдельный скрипт для стандартного Intel LINPACK. Это позволяет провести воспроизводимое сравнение двух подходов и получить необходимые для отчёта доказательства выполнения работы: логин пользователя, конфигурацию узла, время выполнения и число задействованных узлов.
|
Дополнительно были подготовлены сценарии пакетного запуска на СКЦ Политехнический: отдельный скрипт для собственной CUDA-реализации и отдельный скрипт для стандартного Intel LINPACK. Это позволяет провести воспроизводимое сравнение двух подходов и получить необходимые для отчёта доказательства выполнения работы: логин пользователя, конфигурацию узла, время выполнения и число задействованных узлов.
|
||||||
|
|
||||||
На текущем этапе можно зафиксировать, что собственная CUDA-реализация корректно работает на узле \texttt{tornado-k40}, обеспечивает сходимость на всём исследованном диапазоне размеров и достигает производительности до $1920.138$ GFLOPS. После успешного запуска Intel LINPACK останется дополнить сравнительную часть таблицы \ref{tab:task1-results} и окончательно сформулировать вывод о преимуществе или проигрыше GPU-варианта относительно эталонного CPU-теста.
|
На текущем этапе можно зафиксировать, что собственная CUDA-реализация корректно работает на узле \texttt{tornado-k40}, обеспечивает сходимость на всём исследованном диапазоне размеров и достигает производительности до $1920.138$ GFLOPS. В сопоставлении со стандартным Intel LINPACK на CPU она показывает меньшее время решения на всех исследованных размерах: ускорение возрастает от $2.00$ при $N = 1000$ до $6.72$ при $N = 3500$, а достигнутая производительность существенно выше во всём рассмотренном диапазоне.
|
||||||
|
|
||||||
|
|
||||||
\section{Задача 2}
|
\section{Задача 2}
|
||||||
|
|||||||
Reference in New Issue
Block a user