Skip to content

Commit 7c59126

Browse files
committed
tableOfContents ready
1 parent 776c0ba commit 7c59126

File tree

10 files changed

+57
-2
lines changed

10 files changed

+57
-2
lines changed

images/lab5Example1.png

10 KB
Loading

images/lab5Example2.png

24.2 KB
Loading

introduction.tex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{ %introduction
2-
\LARGE\noindent\textbf{\space\space\spaceВведение}
3-
\newline
2+
\phantomsection
3+
\section*{Введение}
4+
\addcontentsline{toc}{section}{Введение}
45
\Large\parВ настоящее время большинство выпускаемых микропроцессоров являются многоядерными. Это касается не только настольных компьютеров, но и в том числе мобильных телефонов и планшетов (исключением пока являются только встраиваемые вычислительные системы). Для полной реализации потенциала многоядерной системы программисту необходимо использовать специальные методы параллельного программирования, которые становятся всё более востребованными в промышленном программировании. Однако методы параллельного программирования ощутимо сложнее для освоения, чем традиционные методы написания последовательных программ.
56
\parЦелью настоящего учебного пособия является описание практических заданий (лабораторных работ), которые можно использовать для закрепления теоретических знаний, полученных в рамках лекционного курса, посвященного технологиям параллельного программирования. Кроме этого, в пособии в сжатой форме излагаются основные принципы параллельного программирования, при этом теоретический материал даётся тезисно и поэтому для полноценного освоения требуется использовать конспекты лекций по соответствующей дисциплине.
67
\parПри программировании многопоточных приложений приходится решать конфликты, возникающие при одновременном доступе к общей памяти нескольких потоков. Для синхронизации одновременного доступа к общей памяти в настоящее время используются следующие три концептуально различных подхода:

main.pdf

49.3 KB
Binary file not shown.

main.synctex.gz

32.4 KB
Binary file not shown.

section8.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{ %section8
2+
\section{Лабораторная работа №5. «Сравнительный анализ технологий OpenMP и Pthreads»}
3+
\input{section8_1}
4+
\input{section8_2}
5+
\input{section8_3}
6+
}

section8_1.tex

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{ %section8_1
2+
\subsection{Порядок выполнения работы}
3+
\Large
4+
\begin{enumerate}
5+
\itemНа языке Си написать программу для вычисления числа A по формуле:
6+
$$A\;=\;2\;\cdot\;\frac2{\sqrt2}\;\cdot\;\frac2{\sqrt{2\;+\;\sqrt2}}\;\cdot\;\frac2{\sqrt{2\;+\;\sqrt{2\;+\;\sqrt2}}}\;\cdot\;\dots,$$
7+
при этом пусть в вычислении используется N первых множителей, где N должно задаваться в программе в виде параметра.
8+
\itemПосле вычисления А программа должна вычислить число В по формуле:
9+
$$B\;=\;\frac6A\;{\textstyle\prod_ {i=1}^M}\left(\frac{2i\;+\;3}{2i\;+\:1}\right)^{2i\;+\;1}\left(\frac i{i\;+\:1}\right)^{2i}$$
10+
при этом пусть в вычислении используется M первых множителей.
11+
\parДополнительные указания: в расчётах числа B не следует использовать целочисленное деление; программа должна использовать циклы for, записанные только в канонической форме; результаты вычисления А и В должны быть выведены в консоль:
12+
\begin{figure}[H]
13+
\includegraphics[width=1\linewidth]{lab5Example1}
14+
\end{figure}
15+
\parДополнительные указания: в расчётах числа B не следует использовать целочисленное деление; программа должна использовать циклы for, записанные только в канонической форме; результаты вычисления А и В должны быть выведены в консоль:
16+
\itemРаспараллелить программу из п.1, используя следующие директивы OpenMP:
17+
\begin{figure}[H]
18+
\includegraphics[width=1\linewidth]{lab5Example2}
19+
\end{figure}
20+
где значение C1 и C2 следует выбрать самостоятельно, приведя в отчёте обоснование сделанного выбора. Привести графики параллельного ускорения для различных N и M.
21+
\itemПереписать программу из п.2, используя Pthreads вместо OpenMP. Способ распараллеливания должен быть идентичен тому, что используется в п.2. Дополнительные указания: для реализации операции, соответствующей OpenMP-директиве reduction(...), следует использовать Pthreads-мьютекс; перед выводом числа А на экран следует использовать функцию pthread\textunderscore barrier\textunderscore wait; перед выводом числа В на экран следует использовать pthread\textunderscore join.
22+
\itemПровести сравнительный анализ программы из п.2 и п.3 (сравнить размер исполняемого файла, параллельное ускорение для разных N и M, количество строк кода, добавленного при распараллеливании и прочее).
23+
\itemЗадание на "четвёрку" и "пятёрку": параллельное ускорение в п.2 и п.4 должно быть измерено в виде доверительного интервала с доверительной вероятностью 0.95.
24+
\itemЗадание на "пятёрку": вместо директивы schedule(static...) в п.2 и п.3 следует использовать директиву schedule(dynamic...), если итерации внутри соответствующего цикла различаются по сложности вычислений.
25+
\end{enumerate}
26+
}

section8_2.tex

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{ %section8_2
2+
\subsection{Состав отчета}
3+
\Large
4+
\begin{enumerate}
5+
\itemТитульный лист с названием вуза, ФИО студентов и названием работы. Содержание отчета (с указанием номера страниц и т.п.).
6+
\itemКраткое описание решаемой задачи.
7+
\itemХарактеристика использованного для проведения экспериментов процессора, операционной системы и компилятора GCC (точное название, номер версии/модели, разрядность, количество ядер и т.п.).
8+
\itemПолный текст распараллеленной программы (для п.2 и п.3).
9+
\itemПодробные выводы с анализом каждого из приведённых графиков.
10+
\end{enumerate}
11+
\parОтчёт предоставляется в бумажном или электронном виде вместе с полным текстом программы. По требованию преподавателя нужно быть готовыми скомпилировать и запустить этот файл на компьютере в учебной аудитории (или своём ноутбуке).
12+
\par
13+
}

section8_3.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{ %section8_3
2+
\subsection{Подготовка к защите}
3+
\Large
4+
\parУметь объяснить каждую строку программы, представленной в отчёте. Уметь объяснить выводы, полученные в результате работы.
5+
\par
6+
}

tableOfContents.tex

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{ %tableOfContents
2+
\tableofcontents{}
3+
}

0 commit comments

Comments
 (0)