\subsection{NAS Parallel Benchmarks}

NAS Parallel Benchmarks -- это пакет из десяти программ, разработанных для тестирования производительности многопоточных вычислительных систем, восемь из них написаны на Фортране, остальные -- на языке Си. Тесты на Фортране включают следующие программы:

\begin{itemize}
    \item BT, SP, LU -- 
        \textbf{B}lock \textbf{T}ri-diagonal,
        \textbf{S}calar \textbf{P}entadiagonal,
        \textbf{L}ower-\textbf{U}pper. Решают синтетическую систему нелинейных диффиренциальных уравнений в частных производных (3-мерная система уравнений Навье — Стокса для сжимаемой жидкости или газа), используя три алгоритма: блочная трёхдиагональная схема с методом переменных направлений (BT), скалярная пятидиагональная схема (SP) и метод симметричной последовательной верхней релаксации (алгоритм SSOR, задача LU);
    \item CG -- \textbf{C}onjugate \textbf{G}radient. Приближение к наименьшему собственному значению большой разреженной симметричной положительно-определённой матрицы с использованием метода обратных итераций вместе с методом сопряжённых градиентов в качестве подпрограммы для решения СЛАУ;
    \item EP -- \textbf{E}mbarrassingly \textbf{P}arallel. Генерация независимых нормально распределённых случайных величин;
    \item FT -- \textbf{F}ourier \textbf{T}ransform. Решение трёхмерного уравнения в частных производных при помощи быстрого преобразования Фурье;
    \item MG -- \textbf{M}ulti-\textbf{G}rid. Аппроксимация решения трёхмерного дискретного уравнения Пуассона при помощи V-циклового многосеточного метода;
    \item UA -- \textbf{U}nstructured \textbf{A}daptive mesh. Решение уравнения теплопроводности с учётом диффузии и конвекции в кубе. Источник тепла подвижен, сетка нерегулярна и меняется каждые 5 шагов.
\end{itemize}


Каждая программа пакета имеет параллельные версии на OpenMP и на MPI, созданные разработчиками этого пакета. Кроме того, некоторые тесты имеют несколько вариантов распараллеливания. Так, например, для теста LU можно выбрать конвейерное распараллеливание, распараллеливание по гиперплоскостям или DO-ACROSS версию.

Поскольку распараллеливание произведено разработчиками пакета, профессионалами в области параллельных вычислений, было принято решение взять эти версии за эталон распараллеливания.

Пакет позволяет запускать все тесты на разных \textit{классах данных}, что даёт возможность подбирать для конкретной вычислительной системы оптимальный размер задачи, чтобы тест работал не слишком быстро и не слишком долго. Для удобства в каждую программу встроены средства для замера времени работы теста и самопроверка результатов вычислений.