-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathsection8_1.tex
More file actions
22 lines (22 loc) · 2.8 KB
/
section8_1.tex
File metadata and controls
22 lines (22 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{ %section8_1
\subsection{Порядок выполнения работы}
\begin{enumerate}
\itemВзять в качестве исходной OpenMP-программу из ЛР-4, в которой распараллелены все этапы вычисления. Убедиться, что в этой программе корректно реализован одновременный доступ к общей переменной, используемой для вывода в консоль процента завершения программы.
\itemИзменить исходную программу так, чтобы вместо OpenMP-директив применялся стандарт «POSIX Threads»:
\begin{itemize}
\itemдля получения оценки \textbf{«3»} достаточно изменить только один этап (Generate, Map, Merge, Sort), который является узким местом (bottle neck), а также функцию вывода в консоль процента завершения программы;
\itemдля получения оценки \textbf{«4»} и \textbf{«5»} необходимо изменить всю программу, но допускается в качестве расписания циклов использовать «schedule static»;
\itemдля получения оценки \textbf{«5»} необходимо хотя бы один цикл распараллелить, реализовав вручную расписание «schedule dynamic» или «schedule guided».
\end{itemize}
\itemПровести эксперименты и по результатам выполнить сравнение работы двух параллельных программ («OpenMP» и «POSIX Threads»), которое должно описывать следующие аспекты работы обеих программ (для различных $N$):
\begin{itemize}
\itemполное время решения задачи;
\itemпараллельное ускорение;
\itemдоля времени, проводимого на каждом этапе вычисления («нормированная
диаграмма с областями и накоплением»);
\itemколичество строк кода, добавленных при распараллеливании, а также грубая оценка
времени, потраченного на распараллеливание (накладные расходы программиста);
\itemостальные аспекты, которые вы выяснили самостоятельно (\textbf{Обязательный пункт});
\end{itemize}
\end{enumerate}
}