ВУЗ:
Составители:
Рубрика:
- 44 -
4 Лабораторная работа 4. Простые MPI-программы
(численное интегрирование)
Цель работы – приобретение практических знаний и навыков в разработ-
ке несложных MPI-программ, анализе точности вычисляемых значений.
Теоретическая часть. Среди задач численного анализа встречается немало
задач, распараллеливание которых очевидно. Например, численное интегри-
рование сводится фактически к (многочисленному) вычислению подинте-
гральной функции (что естественно доверить отдельным процессам), при
этом главная ветвь управляет процессом вычислений (определяет стратегию
распределения точек интегрирования по процессам и ‘собирает’ частичные
суммы). Подобным же ‘интуитивным распараллеливанием’ обладают задачи
поиска и сортировки в линейном списке, численного нахождения корней
функций, поиск экстремумов функции многих переменных, вычисление ря-
дов и др. Трудности распараллеливания возникают, например, в случае ре-
курсивных алгоритмов и при последовательном просчете по формулам.
Необходимое оборудование – вычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.
Порядок проведения работы – студент подготавливает исходные тексты
MPI-программ, компилирует их в исполнимое приложение, запускает на
счет, анализирует (и по заданию преподавателя представляет
в графическом
виде) выходные данные.
Часть 1 работы. Широкоизвестно, что
∫
π
+
=−=
1
0
2
1
)0()1(
4
x
dx
arctgarctg
. Заменяя
вычисление интеграла конечным суммированием, имеем
∑
∫
=
=
+
≈
+
nj
j
j
x
x
n
dx
1
2
1
0
2
1
11
1
,
где
n
x
j
j
/)5,0( −=
, n – число участков суммирования при численном интегри-
ровании.
Площадь каждого участка (вертикальной ‘полоски’ -
stripe
) вычисляется
функцией
COMPUTE_INTERVAL
как произведение ширины ‘полоски’ (
width)
на значение функции в центре ‘полоски’, далее площади суммируются глав-
ным процессом (используется равномерная сетка).
С целью уяснения принципов распределения вычислений рекомендуется
проанализировать текст
COMPUTE_INTERVAL
(здесь
j
– номер участка интег-
рирования,
myrank
– номер данного вычислительного узла,
intervals
– общее
число интервалов численного интегрирования,
ntasks
– общее число вычис-
лительных узлов, значение локальных сумм накапливается в
localsum
):
- 44 -
4 Лабораторная работа 4. Простые MPI-программы
(численное интегрирование)
Цель работы – приобретение практических знаний и навыков в разработ-
ке несложных MPI-программ, анализе точности вычисляемых значений.
Теоретическая часть. Среди задач численного анализа встречается немало
задач, распараллеливание которых очевидно. Например, численное интегри-
рование сводится фактически к (многочисленному) вычислению подинте-
гральной функции (что естественно доверить отдельным процессам), при
этом главная ветвь управляет процессом вычислений (определяет стратегию
распределения точек интегрирования по процессам и ‘собирает’ частичные
суммы). Подобным же ‘интуитивным распараллеливанием’ обладают задачи
поиска и сортировки в линейном списке, численного нахождения корней
функций, поиск экстремумов функции многих переменных, вычисление ря-
дов и др. Трудности распараллеливания возникают, например, в случае ре-
курсивных алгоритмов и при последовательном просчете по формулам.
Необходимое оборудование – вычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.
Порядок проведения работы – студент подготавливает исходные тексты
MPI-программ, компилирует их в исполнимое приложение, запускает на
счет, анализирует (и по заданию преподавателя представляет в графическом
виде) выходные данные.
π 1
dx
Часть 1 работы. Широкоизвестно, что = arctg (1) − arctg (0) = ∫ 2
. Заменяя
4 0 1 + x
1 dx 1 j =n 1
2 n ∑ 1+ x2
вычисление интеграла конечным суммированием, имеем ∫ ≈ ,
0 1 + x j =1 j
где x j = ( j − 0,5) / n , n – число участков суммирования при численном интегри-
ровании.
Площадь каждого участка (вертикальной ‘полоски’ - stripe) вычисляется
функцией COMPUTE_INTERVAL как произведение ширины ‘полоски’ (width)
на значение функции в центре ‘полоски’, далее площади суммируются глав-
ным процессом (используется равномерная сетка).
С целью уяснения принципов распределения вычислений рекомендуется
проанализировать текст COMPUTE_INTERVAL (здесь j – номер участка интег-
рирования, myrank – номер данного вычислительного узла, intervals – общее
число интервалов численного интегрирования, ntasks – общее число вычис-
лительных узлов, значение локальных сумм накапливается в localsum):
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »
