
- •010400 « Прикладная математика и информатика»
- •Содержание программы
- •Непрерывные математические модели
- •Тема 1. Прямые методы интегрирования солитонных уравнений
- •Тема 2. Преобразование Беклунда
- •Тема 3. Метод обратной задачи теории рассеяния
- •Сетевые технологии
- •Объектно-ориентированные технологии разработки по
- •Тема 1. Основные понятия дисциплины
- •Тема 2. Анализ и проектирование программного обеспечения
- •Тема 3. Языки разработки программного обеспечения
- •Тема 4. Разработка и применение библиотек классов
- •Тема 5. Информационные технологии коллективной разработки программного обеспечения
- •Литература
- •Комбинаторная оптимизация (Ивановский) Пр, бч
- •Тема 1. Нижние границы сложности комбинаторных алгоритмов
- •Тема 2. Классы сложности задач комбинаторной оптимизации
- •Тема 3. Преобразования задач из класса np
- •Тема 4. Np-полные задачи и криптография.
- •Тема 5. Приближенные алгоритмы для np-полных задач
- •Литература
- •Java-технологии
- •Литература
- •Многопоточное и распределенное программирование
- •Литература:
- •010400 “Прикладная математика и информатика”
Литература
Ноутон П., Шилдт Г. Java 2: Пер. с англ.- СПб.; БХВ-Петербург, 2006.
Брюс Эккел.ь Философия Java. 4-е издание. СПбю. Питер, 2009. Формат:
Т.В. Герасимова. Программирование на языке Java: учебное пособие. СПб.; Изд-во СПбГЭТУ «ЛЭТИ», 2006, 75 с (ЛЭТИ - ХТУ)
К.С. Хорстманн, Г. Корнелл. Библиотека профессионала. Java 2. Том 1-2. Тонкости программирования. – М. Вильямс, 2002
Многопоточное и распределенное программирование
Тема 1. Основы программирования потоков
1.1 Основные отличия процесса и потока
1.2 Корректное завершение потоков
1.3 Обработка исключений в потоках
Тема 2. Синхронизация
1.1 Основные примитивы синхронизации: мьютекс, семафор, условные переменные
1.2 Виды алгоритмов синхронизации: грубая, тонкая, оптимистичная, ленивая, неблокирующая
1.3 Виды мьютексов: рекурсивный/нерекурсивный, spin, read/write, именованный
1.4 Алгоритмы Петерсона и Лампорта
Тема 3. Ошибки параллельного программирования
1.1 Основные ошибки многопоточного программирования: гонки данных, взаимная блокировка
1.2 Неявные ошибки: блокировки при fork многопоточных программ, проблема ABA инверсия приоритетов
Тема 4. Технологии многопоточного программирования
1.1 OpenMP: назначение, основные ограничения, примеры директив
1.2 Intel TBB: планировщик, создание задач, контейнеры
1.3 Java.util.concurrent: пулы потоков, атомики, Future, контейнеры
Тема 5. Кластерные вычисления
1.1 Виды кластеров
1.2 Стандарт MPI: назначение и основные механизмы обмена сообщениями, редукция
1.3 Стандарт MPI: группы и коммуникаторы, операции коллективного взаимодействия процессов
Литература:
Камерон Хьюз, Трейси Хьюз. Параллельное и распределенное программирование с использованием C++. 2004 г.
Richard Gerber, Aart J.C. Bik... The Software Optimization Cookbook. 2005 г.
Brian Goetz, Tim Peierls, Joshua Bloch... Java Concurrency in Practice. 2006 г.
Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill. Patterns for Parallel Programming. 2004 г.
V. K. Garg. Concurrent and Distributed Computing in Java. 2004 г.
Maurice Herlihy, Nir Shavit. The Art of Multiprocessor Programming. 2008 г.
http://code.google.com/p/hpcource/wiki/Materials
Руководитель направления
010400 “Прикладная математика и информатика”
к.т.н., доцент А.. Лисс
Руководитель магистерской программы
010479.68 – " Математическое и программное обеспечение вычислительных машин"
д.т.н., профессор Ю.Д. Григорьев
Зав. каф. МО ЭВМ
к.т.н., доцент С.А. Ивановский
Программа одобрена методической комиссией факультета Компьютерных технологий и информатики «_______» _____ 2013 г, протокол № _________
Председатель методической комиссии факультета Компьютерных технологий и информатики
к.т.н., доцент В.А. Михалков