Нижегородский государственный университет им. Н.И. Лобачевского Факультет вычислительной математики и кибернетики ННГУ Учебно-исследовательская лаборатория "Математические и программные технологии для современных компьютерных систем (Информационные технологии)" "Методы Монте-Карло и параллельные вычисления" Программа курса Нижний Новгород 2005 "Введение в технологию программирования". Программа курса Лист регистрации версий документа Дата 17.02.05 Автор изменения Майданов С.А. Номер версии 1.0 Комментарии Создание Учебно-исследовательская лаборатория "Информационные технологии" 2 "Введение в технологию программирования". Программа курса Общая характеристика курса Цели и задачи курса Курс предназначен для стажеров ИТЛаб.. Целью курса является ознакомление с некоторыми задачами статистического моделирования и методами генерации случайных чисел, а также рассмотрение основных методов распараллеливания данных задач. Знакомство с некоторыми индустриальными математическими пакетами, позволяющими решать задачи статистического моделирования. В результате изучения теоретической части курса студент будет знать: Основные классы линейных генераторов, основные методы генерации случайных чисел неравномерных распределений, способы их применения в параллельных вычислениях. Приемы тестирования качества генераторов случайных чисел. Некоторые приемы вычисления многомерных интегралов методом Монте-Карло, некоторые задачи стохастической оптимизации (в частности, моделирование «закалки»), некоторые задачи финансовой математики. В результате освоения практической части курса студент будет уметь: Использовать библиотеку Intel® MKL для решения задач статистического моделирования (в том числе на системах с общей и разделяемой памятью). Самостоятельно реализовывать генераторы случайных чисел различных распределений. Проводить тестирование качества генераторов случайных чисел. Дисциплины, изучение которых необходимо при освоении данного курса Для освоения материала курса необходимо знание теории вероятностей (определения вероятности, случайные величины, функция распределения, плотность распределения, ряд распределения, основные непрерывные и дискретные распределения, основные предельные теоремы, математическое ожидание и дисперсия, условное математическое ожидание) и математической статистики (оценки математического ожидания и дисперсии, смещенные и несмещенные оценки, асимптотически несмещенные оценки). Содержание курса 1. Введение Оценивание пи методом статистического моделирования (Задача Бюффона, другие примеры). Случайность. Неопределенность. Хаос. Имитация случайности. Учебно-исследовательская лаборатория "Информационные технологии" 3 "Введение в технологию программирования". Программа курса 2. Генераторы случайных чисел. Равномерное распределение. Важность равномерного распределения Некоторые классы линейных генераторов (Мультипликативный, Линейный конгруэнтный, Обобщение мультипликативного генератора (рекурсия более высокого порядка). GFSR генераторы. R250 и MT). Меры качества генераторов Эмпирические тесты. Примеры (случайное блуждание, Craps, парковка, и др.) Генераторы в параллельных вычислениях (Метод «лягушки», Блочный метод, Параметризация генераторов. WH, MT). 3. Генераторы случайных чисел неравномерных распределений Метод обратной функции Метод принятия/отклонения альтернатив Использование свойств распределений Intel® Math Kernel Library. VSL. 4. Монте-Карло интегрирование Квадратурные формулы и статистический подход Методы уменьшения дисперсии (Антитетические переменные, Квазислучайные числа, Выборка по важности, Расслоенная выборка) 5. Стохастическая оптимизация Изингова модель. «Закалка» как задача глобальной оптимизации. Методы распараллеливания. Пакет parSA Примеры задач (Задача коммивояжера. Задача о композиции микросхем. Задача о расписании (на примере авиакомпании) 6. Имитационное моделирование, приложения в задачах финансовой математики. Классическая модель Блэка-Шоулса. Имитационное моделирование БлэкаШоулса. План курса Лекции № 1 2 3 4 5 6 Тема Часов Введение Генераторы случайных чисел. Равномерное распределение. Генераторы случайных чисел неравномерных распределений Монте-Карло интегрирование Стохастическая оптимизация Имитационное моделирование, приложения в задачах финансовой математики. 2 4 2 2 4 2 Итого: 16 Практические занятия № 1 2 Тема Монте-Карло. Оценивание пи методами сходимости методов. Реализация мультипликативного Часов Сравнение генератора скорости 2 «минимального 2 Учебно-исследовательская лаборатория "Информационные технологии" 4 "Введение в технологию программирования". Программа курса 3 4 5 6 стандарта». Оптимизация средствами компилятора. Реализация эмпирических тестов (Runs-Up тест и др.) и тестирование базовых генераторов библиотеки MKL. Параллельные реализации методов оценивания пи. Применение генераторов и сервисных функций библиотеки MKL. Вычисление многомерных интегралов. Сравнение квадратурных формул, прямого моделирования методом Монте-Карло, квази-МонтеКарло. Выборка по важности. Решение задач финансовой математики методом Монте-Карло. 2 2 2 2 Итого: 12 Лабораторные работы № 1 Тема Реализация метода «закалки» для одной из рассмотренных задач (коммивояжера, компоновка микросхем, задача о расписании) Часов Итого: Рекомендуемая литература Основная литература 1. Г.Крамер. Математические методы статистики. М: «Мир», 1975 2. James E. Gentle. Random Number Generation and Monte Carlo Methods. SpringerVerlag NY, 1998 3. С.М. Ермаков, Г.А. Михайлов. Статистическое моделирование. М: «Наука», 1982 4. D. E. Knuth. The Art of Computer Programming, Volume 2, Seminumerical Algorithms, 2nd edition, Addison-Wesley Publishing Company, Reading, Massachusetts, 1981. 5. Numerical Recipes in C: The Art of Scientific Computing. William H. Press, et al. Hardcover. http://www.library.cornell.edu/nr/bookcpdf.html Дополнительная литература 6. VSL Notes. http://www.intel.com/software/products/mkl/docs/vslnotes.htm 7. MKL Reference Manual. http://www.intel.com/software/products/mkl/docs/mklman.htm 8. P. L'Ecuyer. Uniform Random Number Generation. Annals of Operations Research, 53 (1994), pp. 77-120. Учебно-исследовательская лаборатория "Информационные технологии" 5 "Введение в технологию программирования". Программа курса 9. Sergey A. Maidanov, Andrey Naraikin. Making the Monte Carlo Approach Even Easier and Faster. NASA Tech Briefs, May 2004, vol. 28, No. 5, pp. 55-57 (e-version: http://cache-www.intel.com/cd/00/00/09/55/95571_95571.pdf). 10. Sergey A. Maidanov. Monte Carlo European Options Pricing Implementation Using Various Industry Library Solutions. http://cachewww.intel.com/cd/00/00/06/13/61382_61382.pdf Сведения об авторах 1. Майданов Сергей Александрович, нижегородский филиал компании Интел, руководитель проекта, URL: E-mail: sergey.maidanov@intel.com Тел. 16-24-44, доп. 2247 2. Николаев Андрей Феликсович, нижегородский филиал компании Интел, инженер по программному обеспечению URL: E-mail: andrey.nikolaev@intel.com Тел. Учебно-исследовательская лаборатория "Информационные технологии" 6