|
|
Раздел посвящён студентам и содержит полезную практическую информацию по курсам лекций, читаемым преподавателями кафедры. Информация доступна по следующим предметам:
|
Специальные главы дискретной математики
Бально-рейтинговая система
Долги можно посмотреть тут.
Доступны для скачивания следующие материалы:
Расчетно-Графическое Задание для
студентов 2-го курса ФПМИ:
- Вариант задания определяется номером
в журнале посещаемости группы.
- Работы принимаются в письменном или печатном виде, обязательно
с титульным листом, на котором указываются
ФИО и номер группы студента.
- Для получения допуска к экзамену необходимо сдать РГЗ в конце
декабря.
- Все студенты, не имеющие неотработанных пропусков,
имеют возможность, защитив РГЗ, получить оценку по практике
досрочно. Защита предварительно планируется на конец декабря.
При защите преимущества имеют студенты, посетившие все семинарские
занятия и активно на них работавшие.
- Кроме решенных задач для защиты необходимо знать основные
понятия, формулы и определения, которые вводились на семинарах,
уметь ими оперировать.
- По всем вопросам нужно обращаться к преподавателю
либо по email, либо на семинарах.
- Варианты заданий:
Литература:
- Э. Рейнгольд, Ю. Нивергельт, Н. Нео. Комбинаторные алгоритмы:
теория и практика. Мир, 1980.
- Т.Кормен, Ч.Лейзерсон, Р.Ривест. Алгоритмы: построение и анализ.
МЦНМО, Москва, 2000.
- Ч.Хоар. Взаимодействующие последовательные процессы. Мир,
1989.
- Комбинаторный анализ. Задачи и упражнения. Под ред. Рыбникова.
- М.: Наука, 1982. - 368 с.
- И.А. Лавров, Л.Л. Максимова. Задачи по теории множеств, математической
логике и теории алгоритмов. - М.: ФИЗМАТЛИТ, 2001. - 256 с.
- Андерсон Дж. Дискретная математика и комбинаторика. Изд-во Вильямс, 2004 г.
- Малышкин В.Э., Корнеев В.Д. Параллельное программирование мультикомпьютеров. Изд-во НГТУ, 2006 г.
Программа семинаров на 2008 год:
Семинар |
Тема |
Семинар №1 |
Теория множеств. Начало отношений. |
Семинар №2 |
Отношения и функции. |
Семинар №3 |
Комбинаторика. |
Семинар №4 |
Комбинаторика. |
Семинар №5 |
Теория предикатов первого порядка. |
Семинар №6 |
Динамическое программирование. |
Семинар №7 |
Теория алгоритмов. |
Семинар №8 |
Теория взаимодействия параллельных процессов. |
Семинар №9 |
Сети Петри. |
|
|
Параллельные вычислительные методы
Доступны для скачивания следующие материалы:
|
Архитектура ЭВМ и ВС
Доступны для скачивания следующие материалы:
|
Математическое обеспечение высокопроизводительных вычислительных систем
Вопросы к экзамену
Куликов И.М.
-
Назначение библиотек AMD Core Math Library и Intel Math Kernel Library. Структура библиотек, основные функции.
-
Матрично-векторные операции в Intel MKL. Оптимизация матрично-векторных операций: последовательный обход памяти, использование кэша данных при работе с векторами, оптимизация работы циклов.
-
Возможности библиотеки Intel MKL для решения разреженных СЛАУ, полученных в результате конечно-объёмных аппроксимаций.
Городничев М.А.
-
Динамические свойства параллельных программ, необходимость динамических свойств.
-
Представление задачи в виде графа. Планирование распределения
вычислительной загрузки с помощью разбиения графа задачи. Задача оптимизации разбиения.
- Методы разбиения графов. Сравнение геометрических методов и методов, основанных на теории графов.
Корнеев В.Д.
-
Модель параллелизма в языке HPF (DVM).
-
Семантика директивы задания массива процессоров (пример).
-
Семантика директив отображения данных на массив процессоров (простой пример).
-
Семантика директив параллельных циклов (пример).
Малышкин Н.В.
-
Определение Grid, отличие от мультикомпьютера. Зачем необходимо строить Grid. Перечислить несколько известных grid проектов и их основные цели и идеи.
-
Описание задачи для запуска Grid. Общая идея.
-
Основные проблемы программирования для неоднородных Grid.
-
Построение Grid систем. Требования к Grid системам, основные компоненты, структура. Сформулируйте основные проектные решения по конструированию Grid системы.
-
Как оценивается производительность Grid системы? Как замеряется производительность Grid системы.
-
Утилиты для запуска/удаления/управления задачами в Globus Toolkit. Чем управление задачами в Grid отличается управления задачами в ОС?
Динамические свойства параллельных программ (Городничев М.А.)
Лекция №1. Динамические свойства. Задача статического распределения вычислительной загрузки.
Лекция №2. Динамическая балансировка вычислительной загрузки.
Лабораторная работа №1. Программный пакет ParMETIS для параллельного разбиения графов и переупорядочивания разреженных матриц.
Цель работы:
Познакомиться с библиотекой ParMETIS --- одним из средств параллельного разбиения графов, которое может служить как инструмент для планирования распределения вычислений в параллельных программах.
Порядок выполнения работы:
- Получить дистрибутив библиотеки ParMETIS у преподавателя, здесь, или в ином месте.
- Установить библиотеку согласно инструкции (файл INSTALL в корневом каталоге дистрибутива).
Краткий перевод инструкции на русский язык:
- В файле Makefile.in в корневой директории дистрибутива установить значение переменной CC равным имени команды для компиляции программ MPI. По умолчанию стоит mpicc, должно в большинстве случаев работать.
Проверить и исправить в случае необходимости значения других переменных, в частности LD должна указывать на правильный редактор связей (линковщик).
- В корневой директории дистрибутива запустить команду make. В результате будут получены файлы библиотеки ParMETIS: libmetis.a и libparmetis.a.
- Далее, есть 2 варианта выполнения лабораторной работы. Студент произвольно выбирает из них один. Подробное руководство по применению ParMETIS находится в каталоге Manual.
- Вариант 1. Необходимо разобраться с устройством тестовой программы ptest.с (каталог Programs в дистрибутиве), осуществить запуск этой программы
с помощью средства для запуска программ MPI (обычно mpirun, mpiexec или run.sh на кластере ФПМИ НГТУ) и проанализировать результатов.. Исполняемый код программы должен быть
в файле ptest в каталоге Graphs после успешного выполнения вышеупомянутой команды make. Нужно обратить внимание на то,
что ptest требует параметра: название файла с описанием графа. Для тестов могут использоваться в этом качестве файлы bricks.hex3d, rotor.graph из каталога Graphs. Например: "mpirun -np 4 ptest rotor.graph".
Файл rotor.graph.xyz служит для тестировании функций разбиения, использующих информацию о координатах. Способ его применения нужно установить самостоятельно.
Разбирать программу нужно не всю, а только в той части, где тестируются функции ParMETIS_V3_PartKway(), ParMETIS_V3_PartGeomKway, ParMETIS_V3_PartGeom.
- Вариант 2.
Написать свою программу для тестирования тех же трех функций, что и в первом варианте: ParMETIS_V3_PartKway(), ParMETIS_V3_PartGeomKway, ParMETIS_V3_PartGeom.
Порядок предоставления отчета о выполненой работе:
Письменного отчета не требуется. В зависимости от выбора варианта, нужно продемонстрировать преподавателю работу (запустить) тестовой программы из пакета или своей программы, пояснить результаты выполнения программы, показать понимание её исходного кода.
В детальном описании нуждаются способы использования трех функций, перечисленных в вариантах заданий.
Студент должен объяснить разницу в алгоритмах разбиения, используемых этими тремя функциями.
Лабораторная работа №2. Обеспечение надежности распределенных вычислений.
Цель работы:
Познакомиться с задачей обеспечения надежности крупномасштабных распределенных вычислений.
Задание
Разработать проект системы распределенных вычислений, неформальные требования к которой таковы:
- имеется сервер, осуществляющий управление вычислениями, и клиенты, выполняющие вычисления по заданию сервера;
- вся задача вычислений заключается в том, что должен быть выполнен ряд независимых заданий;
- список заданий, и сами задания находятся на сервере;
- сервер считается надежным;
- взаимодействие сервера с клиентами осуществляется одним из двух способов (продумать либо первый, либо второй):
-
клиент подключается к серверу, берет у него задание,отключается, когда результат готов, подключается к серверу и отдает результат;при этом в любой момент времени с клиентом может случиться неприятность, сервер же должен контролировать выполнение заданий и в случае необходимости обеспечить переназначение задания другому клиенту;
- клиент подключается к серверу и сохраняет с ним постоянную связь до некоторого момента времени (выключение, поломка клиента); в то время, пока сохраняется связь, возможно общение между сервером и клиентом по инициативе обеих сторон;подключившись, клиент получает задание от сервера, возвращает результат, и повторяет это итеративно; клиент можен погибнуть в любой момент; клиент, потерявший связь с сервером, в случае повторного подкючения к серверу считается новым клиентом;
В качестве средства организации взаимодействия предлагается использовать протокол tcp. Поскольку изучение протокола не входит в цели работы, части кода для реализации соединения сервера и клиента предоставляются. Здесь можно посмотреть пример с реализацией серверной части соединения, а здесь--- клиентской.
Порядок предоставления отчета о работе
Необходимо представить проект системы в письменном виде и ответить преподавателю на его вопросы по поводу проекта. Под "письменным видом" подразумевается, что идеи должны быть содержательно и понятно представлены (текст, диаграммы и проч.) на бумаге (в файле). Иных требований к форме представления нет.
Проект должен описывать основные объекты системы и протокол их взаимодействия. Необходимо на компьютере продемонстрировать работу прототипа системы.
Литература и сайты:
- Y. F. Hu and R. J. Blake. Load Balancing for Unstructured Mesh
- Hu, Y.F., Blake, R.J.: An improved diffusion algorithm for dynamic load balancing, Parallel Computing 25, 1999, pp. 417--444.
- K.Barker, N. Chrisochoides. An evaluation of a framework for the dynamic load balancing of highly adaptive and irregular parallel applications. In proceedings of SC2003, November, Phoenix, Arizona, USA.
- Johan Steensland, Stefan Soederberg, Michael Thune, Comparison of dynamic load balancing techniques for a parallel SAMR algorithm, in Proceedings of PARA2000, Workshop on Applied Parallel Computing, volume 1947 of LNCS. Springer Verlag.
- M. Bhandarkar, R.Brunner, L.Kale. Run-time Support for Adaptive Load Balancing.
- М.А.Корнилина, М.В.Якобовский. Динамическая балансировка загрузки процессоров при моделировании задач горения. Материалы конференции "Высокопроизводительные вычисления и их приложения", 30 октября – 2 ноября 2000 года, Черноголовка.
- PARTY Partitioning Library.
- ParMETIS - Parallel Graph Partitioning and Fill-reducing Matrix Ordering.
|
|