y
y
f
y
f
b
y
a
b
y
a
Q
y
≤
≤
≤
≤
∈
=
. (5)
Введем функцию
)
,
(
min
)
(
2
1
1
1
2
2
2
y
y
f
y
f
b
y
a
≤
≤
=
. (6)
Как следует из (5), решение исходной задачи (1) может быть полу-
чено посредством минимизации одномерной функции
)
(
1
1
y
f
, т.е.
решения одномерной подзадачи
]
,
[
min,
)
(
1
1
1
1
1
b
a
y
y
f
∈
→
. (7)
При этом каждое вычисление значения функции
)
(
1
1
y
f
в точке y
1
представляет собой решение новой одномерной подзадачи (y
1
фикси-
ровано)
58
]
,
[
min,
)
,
(
2
2
2
2
1
b
a
y
y
y
f
∈
→
(8)
Предположим, что, решая задачу (8) для некоторого
*
1
y
, мы уже
провели решения аналогичных задач для
1
y
и
1
y
таких, что
1
y
<
*
1
y
<
1
y
и
1
y
–
1
y
<
δ
, где
δ
>0 – некоторый параметр, задающий «меру бли-
зости» задач (8), соответствующих координатам
1
y
и
1
y
. Предлагает-
ся начинать решение задачи (8) для
*
1
y
не с самого начала, а с некото-
рого исходного информационного множества, которое строится на
основе значений целевой функции, полученных при оптимизации од-
номерных функций
)
,
(
2
1
y
y
f
и
)
,
(
2
1
y
y
f
и рассматриваемых как
приближенные значения функции
)
,
(
*
2
1
y
y
f
. Методология построения
такого множества может быть различной. Для примера рассмотрим
один из способов его конструирования.
В схеме характеристических алгоритмов в качестве информацион-
ного множества поиска рассматривается набор:
)},
,
(
),...,
,
{(
k
k
k
z
y
z
y
1
1
=
ω
(9)
где
i
y
,
k
i
≤
≤
1
, являются координатами проведенных испытаний, а
величины
i
z
,
k
i
≤
≤
1
, – значениями минимизируемой функции в со-
ответствующих точках
i
y
. В качестве такого начального информаци-
онного множества для задачи
]
,
[
min,
)
,
(
*
2
2
2
2
1
b
a
y
y
y
f
∈
→
(10)
можно выбрать множество
)},
,
(
),...,
,
{(
*
*
*
*
*
k
k
k
z
y
z
y
2
1
1
2
=
ω
(11)
в котором
i
i
i
i
y
y
y
y
y
y
y
y
2
1
1
2
2
1
1
2
+
−
−
−
=
)
/(
)
ˆ
)(
(
*
*
, (12)
j
i
k
j
i
y
y
y
2
2
1
2
−
=
≤
≤
min
ˆ
,
i
i
i
i
i
i
i
i
z
y
y
z
z
y
y
z
+
−
−
−
=
)
ˆ
/(
)
ˆ
)(
(
*
*
2
2
2
2
(13)
)
ˆ
,
(
ˆ
i
i
y
y
f
z
2
1
=
,
59
а величины
,
,
,
k
i
z
y
i
i
≤
≤
1
2
и
,
,
k
j
y
j
≤
≤
1
2
относятся к информацион-
ным множествам (9):
)},
,
(
),...,
,
{(
k
k
k
z
y
z
y
2
1
1
2
=
ω
)},
,
(
),...,
,
{(
k
k
k
z
y
z
y
2
1
1
2
=
ω
полученным при решении одномерных задач (8) для
1
y
и
1
y
соответ-
ственно, причем пара
k
i
i
z
y
ω
∈
)
,
ˆ
(
2
.
Введение информационного множества (11) позволяет заменить
вычисление значений функции
)
,
(
*
2
1
y
y
f
в точках
k
i
y
i
≤
≤
1
2
,
*
по-
строением приближенных величин
*
i
z
, полученных на основе линей-
ной аппроксимации (12), (13). Построив информационное множество
(11), можно продолжить решение задачи (10) характеристическим ме-
тодом оптимизации. При этом метод будет вычислять функцию
)
,
(
*
2
1
y
y
f
в меньшем числе точек по сравнению с ситуацией, когда он
решает задачу (10) «с чистого листа», ибо в предложенной схеме алго-
ритм обладает апостериорной информацией (11), т.е. считает, что в
точках
k
i
y
i
≤
≤
1
2
,
*
значения уже известны.
Вычислительные эксперименты, выполненные на классе сложных
двухмерных функций [4], подтверждают эффективность предложенно-
го подхода, обеспечившего существенное сокращение количества по-
исковых испытаний. При этом наблюдается рост эффективности при
увеличении требуемой точности решения задачи. Параллельная реали-
зация, использующая асинхронные алгоритмы из [5], подтвердила тео-
ретические результаты относительно ускорения, достигаемого при
использовании рассмотренной рекурсивной схемы редукции размер-
ности.
Литература
1. Стронгин Р.Г. Численные методы в многоэкстремальных задачах.
Информационно- статистический подход. М.: Наука, 1978.
2. Strongin R.G., Sergeyev Ya.D. Global optimization with non-convex
constraints: Sequential and parallel algorithms, Kluwer Academic
Publishers, Dordrecht, Netherlands, 2000.
60
3. Strongin R.G., Sergeyev Ya.D., Grishagin V.A. Parallel
Characteristical Algorithms for Solving Problems of Global
Optimization // Journal of Global Optimization,10, 1997. P. 185–206.
4. Гришагин В.А. Операционные характеристики некоторых алго-
ритмов глобального поиска. В сб.: Проблемы статистической оп-
тимизации. Зинатне, Рига, 1978. C. 198–206.
5. Sergeyev Ya.D., Grishagin V.A. Parallel asynchronous global search
and the nested optimization scheme, Journal of Computational Analysis
& Applications, 3(2), 2001. P.123–145.
СПЕЦКУРС «ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ:
ОСНОВЫ ПРОГРАММИРОВАНИЯ И КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ
»
КАК ПРОДОЛЖЕНИЕ И РАЗВИТИЕ ЛИНИИ
«
МОДЕЛИРОВАНИЕ
»
В ПОДГОТОВКЕ
УЧИТЕЛЯ ИНФОРМАТИКИ
А.Г. Деменев
Пермский государственный педагогический университет
Введение
Применение суперкомпьютеров просто необходимо в ракето- и ав-
томобилестроении, нефте- и газодобыче, фармакологии, биотехноло-
гии и других областях человеческой деятельности. Многие из послед-
них успехов фундаментальных исследований в физике, химии, биоло-
гии, которые существенно расширили горизонты наших знаний о ми-
ре, обеспечены компьютерным моделированием на суперЭВМ. Широ-
кое внедрение идей параллелизма и конвейерности в вычислительную
технику привело к значительному пересмотру всей концепции при-
кладного программирования.
Технология создания сложных компьютерных моделей требует,
чтобы эксперт в данной проблемной области ставил перед программи-
стами задачу реализации их в виде программ для ЭВМ. С одной сто-
роны, требуются специалисты, умеющие так сформулировать задачу в
своей области деятельности, чтобы она, в принципе, допускала эффек-
тивную реализацию на современных высокопроизводительных ЭВМ.
С другой стороны, нужны высококвалифицированные программисты,
свободно владеющие технологиями разработки параллельных про-
61
грамм. Есть основания считать, что для подготовки таких специали-
стов в требуемых количестве и качестве, следует знакомить наиболее
талантливых детей с основами параллельных технологий еще в стар-
ших классах специализированных школ. А это означает, что нужны
учителя информатики, готовые вести такую работу.
Современный выпускник вуза с квалификацией «Учитель инфор-
матики» должен иметь достаточно четкие знания о параллельных вы-
числительных системах. В рамках подготовки бакалавров образования
элементы этих знаний могут быть представлены в рамках дисциплины
«Компьютерное моделирование», а при получении специальности
«Учитель информатики» и обучении в магистратуре – в виде различ-
ных спецкурсов.
Спецкурсы, связанные с параллельными вычислениями, читаются
в Пермском государственном педагогическом университете с 1999
года. Слушателями их становятся студенты последних курсов педаго-
гического университета, проходящие обучение с основным профилем
«информатика». Знакомство с основами программирования и компью-
терного моделирования параллельных вычислительных систем осуще-
ствляется в рамках двух спецкурсов для студентов факультета инфор-
матики и экономики. Для студентов, обучающихся по специальности
«Учитель информатики», автором разработан курс «Параллельные
вычислительные системы». Студентам, получающим ученую степень
магистра и квалификацию «Учитель информатики, преподаватель
высшей школы», адресован разработанный автором курс «Программи-
рование для параллельных вычислительных систем». Объем последне-
го из них в два раза больше, и содержание первого практически полно-
стью включено в него. Общий материал, используемый при
проведении занятий в рамках обоих спецкурсов, представлен в
разработанном автором учебном пособии [1].
Основные цели и задачи спецкурса
Спецкурс нацелен на решение следующих проблем:
• подготовка учителя информатики, готового знакомить учеников
специализированных школ с основами параллельных технологий в
рамках профильных курсов по информатике;
• углубление образования в области информатики;
62
• развитие практических навыков в компьютерном моделировании,
информационной культуры.
Курс включает в себя как лекционную часть, так и лабораторную
поддержку.
В лекционной части излагаются основные теоретические понятия
и примеры ПВС, излагаются типичные подходы при программирова-
нии для таких систем.
Чрезвычайно важную роль в курсе играют лабораторные работы.
При их выполнении предусматривается следующие режимы (один из
них или сочетание
по выбору преподавателя): выполнение расчетов
«вручную» с заполнением всех необходимых таблиц для промежуточ-
ных результатов; проведение расчетов в среде, имитирующей ПВС.
При выполнении лабораторных работ должен предусматриваться
следующий режим: проведение расчетов в среде, имитирующей ПВС.
Работа на реальных параллельных компьютерах не обязательна, но
желательна, в первую очередь магистрантам, т.е. студентам, ориенти-
рованным на научную деятельность и преподавательскую работу в
вузах и специализированных школах.
Иметь доступ к нескольким типам параллельных компьютеров –
недешевое удовольствие, а использовать программы, моделирующие
ПВС, на персональных компьютерах могут позволить себе все. Можно
рекомендовать, например, бесплатно распространяемую среду Multi-
Pascal [2].
Методологии программирования обычно иллюстрируются на
сравнительно несложных задачах, например, требующих реализации
отдельных алгоритмов из области линейной алгебры, вычисления оп-
ределенных интегралов и т.д.[3] Все это можно сделать, используя
компьютерное моделирование в Multi-Pascal. Так как разработка па-
раллельных программ практического уровня сложности представляет
собой многоэтапный технологический процесс, то, к сожалению, она
не может быть продемонстрирована во всей полноте на таких задачах.
В силу серьезной ограниченности аудиторного времени на спецкурс,
представляется разумным не ставить задачу разработки параллельных
программ практического уровня сложности, а делать это в рамках кур-
совых и дипломных работ.
63
Содержание лекций
Тема 1 – Введение в ПВС. Представляется важным в рамках дан-
ной темы дать ответы на следующие вопросы: Что такое суперЭВМ?
Зачем нужны суперкомпьютеры? Чем определяются перспективы раз-
вития суперЭВМ? Что делается в России по развитию суперкомпью-
терных технологий? Как устроены современные высокопроизводи-
тельные ЭВМ? Как классифицируются компьютерные архитектуры?
Каковы основные концепции архитектуры высокопроизводительных
вычислительных систем? Что такое конвейер? Какие процессоры на-
зывают суперскалярными? Какие процессоры называют векторными?
Чем различаются векторные компьютеры между собой? Какая опера-
тивная память используется в современных ЭВМ? Что такое разделяе-
мая память? Что такое распределенная память? Как связаны между
собой элементы параллельных вычислительных систем? Что такое
кластеры рабочих станций? Как оценивается производительность вы-
числительных систем?
Тема 2 – Основные парадигмы параллельного программирования.
В рамках данной темы освещаются следующие вопросы: Каковы ос-
новные подходы к распараллеливанию вычислений? Как реализуется
параллелизм данных? Какой набор операций является базовым? Какие
способы векторизации и распараллеливания программ применяются,
чтобы оптимизировать трудовые затраты? На что влияет применение
разных языков программирования? В чем различие и сходство между
распараллеливанием и векторизацией программ? Как реализуется па-
раллелизм задач? Какие виды операционных систем используются на
параллельных вычислительных системах? На каких принципах по-
строены распределенные ОС?
Тема 3 – Программирование систем с разделяемой памятью. В
рамках данной темы дают ответы на следующие вопросы: Какие опе-
рационные системы применяют на мультипроцессорных ЭВМ? Что
понимается под процессом? Как организуется взаимодействие процес-
сов? Как планирование процессоров влияет на производительность
мультипроцессорной системы? Как в среде Multi-Pascal моделируются
многопроцессорные компьютеры с разделяемой памятью? Как в Multi-
Pascal реализуется блокирующее порождение процессов в системах с
Достарыңызбен бөлісу: |