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}
|
||||
\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]
|
||||
\centering
|
||||
@@ -367,22 +367,23 @@ sacct -j <job_id> --format=JobID,JobName,Partition,State,Start,End,Elapsed,NNode
|
||||
\toprule
|
||||
$N$ & $t_{CUDA}$, мс & Iter & $\|Ax-b\|_{\infty}$ & $R_{CUDA}$, GFLOPS & $t_{Intel}$, c & $R_{Intel}$, GFLOPS & $S_t$ \\
|
||||
\midrule
|
||||
1000 & 5.0083 & 6 & $2.242 \cdot 10^{-6}$ & 133.114 & -- & -- & -- \\
|
||||
1500 & 7.4931 & 6 & $1.107 \cdot 10^{-6}$ & 300.277 & -- & -- & -- \\
|
||||
2000 & 8.3563 & 5 & $2.443 \cdot 10^{-5}$ & 638.244 & -- & -- & -- \\
|
||||
2500 & 10.4837 & 5 & $1.593 \cdot 10^{-5}$ & 993.608 & -- & -- & -- \\
|
||||
3000 & 12.6709 & 5 & $1.288 \cdot 10^{-5}$ & 1420.573 & -- & -- & -- \\
|
||||
3500 & 14.8861 & 5 & $9.516 \cdot 10^{-6}$ & 1920.138 & -- & -- & -- \\
|
||||
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 & 0.020 & 114.360 & 2.67 \\
|
||||
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 & 0.042 & 250.731 & 4.01 \\
|
||||
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 & 0.100 & 286.264 & 6.72 \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
По уже полученным данным CUDA-реализации можно сделать предварительные наблюдения:
|
||||
По полученным результатам можно сделать следующие наблюдения:
|
||||
\begin{itemize}
|
||||
\item все тестовые случаи для размеров от $1000$ до $3500$ успешно сошлись за $5$--$6$ итераций;
|
||||
\item время решения возрастает плавно: от $5.0083$ мс при $N = 1000$ до $14.8861$ мс при $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}
|
||||
|
||||
\subsection{Выводы}
|
||||
@@ -391,7 +392,7 @@ sacct -j <job_id> --format=JobID,JobName,Partition,State,Start,End,Elapsed,NNode
|
||||
|
||||
Дополнительно были подготовлены сценарии пакетного запуска на СКЦ Политехнический: отдельный скрипт для собственной 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}
|
||||
|
||||
Reference in New Issue
Block a user