Аннотация

Учебный курс посвящен основным принципам, методам и технологиям параллельного программирования, ориентированных на решение ресурсоёмких задач физически и нелинейной оптики в частности. В курсе будут подробно разобраны такие популярные технологии параллельного программирования как OpenMP и MPI. Практические занятия будут проводиться на базе выделенного учебного кластера, содержащего 14 процессоров Intel Xeon.

Завершающим этапом курса является работа над индивидуальным заданием, охватывающим весь материал курса. Курс открывает широкие возможности дальнейшего развития на переднем крае науки.

Введение

Современные научные и прикладные исследования в физике часто требуют проведения масштабных ресурсоемких вычислений. Стремительный рост производительности современных вычислительных систем достигается  за счет использование параллельно работающих процессоров или многоядерных систем. Традиционные суперкомпьютеры с оригинальной архитектурой значительно повышают производительность вычислений, однако имеют существенный недостаток – большую цену, чем серьёзно уступают кластерным системам. При существенном снижении стоимости производительность кластерной системы в большом классе задач остается весьма высокой. Так, согласно последнему списку наиболее мощных компьютеров мира (www.top500.org), 81% самых производительных вычислительных систем в мире выполнены по кластерной технологии с использованием стандартных вычислительных узлов.  В тоже время стандартный вычислительный узел уже давно не является однопроцессорной машиной, и эффективность использования многопроцессорной/многоядерной архитектуры для решения одной ресурсоемкой задачи зависит от применяемых средств разработки и методов распараллеливания. Технологией ставшей де-факто стандартной в научных ресурсоёмких приложениях является OpenMP, поддерживаемая всеми современными разработчиками компиляторов

Основная цель предлагаемого курса, побудить студентов-физиков к «параллельному размышлению» над численным решением физической задачи, снабдить их в рамках лекционно-практического курса технологиями и навыками распараллеливания задач. Поскольку не каждую задачу удается эффективно распараллелить, то отдельно в курсе стоит проблема анализа возможных физических задач и поиска таких алгоритмов их решения, которые допускают одновременное использование нескольких узлов кластера. Практические занятия на учебном кластере и современной суперкомпьютере позволят студентам приобрести навыки удаленного использования мощных вычислительных ресурсов и откроют широкие перспективы в научно-исследовательской работе.

Приобретаемые знания и умения

В результате курса слушатели получают знания об популярных технологиях параллельного программирования; знания о современных высокопроизводительных вычислительных системах и практические навыки работы на них.

Образовательные технологии

Курс имеет электронную версию учебных материалов. Практические занятия проводятся с использованием современного сетевого и проекционного оборудования.

Программное обеспечение и ресурсы в интернете

Контроль успеваемости

  • Промежуточная аттестация проводится на 8 неделе в форме проверки решения тестовых задач с оценкой. Критерии формирования оценки – уровень знаний пройденной части курса.
  • Текущая аттестация проводится еженедельно. Критерии формирования оценки – посещаемость занятий, активность студентов на практических занятиях, уровень подготовки к семинарам.

Программа курса

Раздел

Неделя Семестр 3

Обзор технологий параллельных вычислений.

1

Введение в архитектуру высокопроизводительных систем.

2

Операционная система Linux

3-5

Введение в технологии параллельного программирования

6

Технология OpenMP

7-9

Интерфейс передачи сообщений MPI

10-12

Выполнение индивидуального задания с использованием MPI

13-17

Зачет.

18

 

Семестр 4

Выбор методов решения задач курсовой работы и разработка функциональной структуры программы.

1

Выполнение курсовой работы: создание функциональных блоков программы, тесты, проверка взаимодействия блоков между собой, демонстрация базовой функциональности разрабатываемой программы. Консультации.

2-6

Промежуточная аттестация.

7

Выполнение курсовой работы: доработка выявленных недостатков программы, наращивание функциональности. Консультации.

8-15

Защита курсовой работы. Экзамен.

16

Литература

  • Немнюгин С.А., Стесик О.Л. "Параллельное программирование для многопроцессорных вычислительных систем.", СПб, издательство "Петербург", 2002.
  • Калиткин Н.Н. "Численные методы.", Москва, издательство Наука, 1978.
  • Воеводин В.В. "Параллельные структуры алгоритмов и программ.", Москва, издательство ОВМ АН СССР, 1987.
  • Букатов А.А., Дацюк В.Н., Жегуло А.И. "Программирование многопроцессорных вычислительных систем.", Ростов-на-Дону, издательство ООО «ЦВВР», 2003.
  • Антонов А.С. "Параллельное программирование с использованием технологии MPI", Москва, издательство Московского университета, 2004.
  • Корнеев В.Д. "Параллельное программирование в MPI", издательство "Регулярная и хаотическая динамика", 2003.
  • Эндрюс Г.Р. "Основы многопоточного, параллельного и распределенного программирования", издательство "Вильямс", 2003.
  • Богачев К.Ю. "Основы параллельного программирования",  Москва, издательство "Бином. Лаборатория знаний", 2003.
  • Буравлёв А., Чельдиев М., Барыбин А. и др. "Масштабируемые мультипроцессорные вычислительные системы высокой производительности." // Современные технологии автоматизации (СТА), № 3, с.72-77, 2009.
  • Boyde L., Chalut K.J. and Guck J. "Near- and far-field scattering from arbitrary three-dimensional aggregates of coated spheres using parallel computing" // Phys. Rev. E, v. 83, p. 026701, 2011.
  • Fujisawa A., Shimizu A., Itoh K., et al. "Wavelet analyses using parallel computing for plasma turbulence studies." // Phys. Plasmas, v. 17, p. 104503, 2010.
  • Chou Yu-Ch., Nestinger S.S., Cheng H.H. "MPI: Interpretive Parallel Computing in C" // Comput. Sci. Eng., v. 12, p. 54, 2010.
  • Raghunathan S. "Parallel Computing Algorithms and Applications: Scientific Parallel Computing" // Comput. Sci. Eng., v. 9, p. 64, 2007.