Спецкурсы

Весенний семестр 2017/2018

Введение в квантовую механику

Вторник, 18:00, для бакалавров

Аудитория 607

Лектор: Ожигов Ю.И.

В спецкурсе будут изложены основные положения квантовой механики для программистов и математиков. Понятие пространства квантовых состояний, вектора состояния, матрицы плотности, унитарной эволюции и измерения. Будут рассмотрены операторы физических величин: координаты, импульса и момента импульса, а также обобщенного момента и спина. Будет дано понятие интеграла по траекториям и доказаны его простейшие свойства. Разбирается формализм кубитов и дается понятие квантового алгоритма - на примере алгоритма Гровера. Спецкурс предназначен для бакалавров, он предполагает знания на уровне 2 курса.

Первая лекция: 13 февраля

Моделирование квантовых систем

Четверг, 18:00, для бакалавров

Аудитория 607

Лектор: Ожигов Ю.И.

В спецкурсе будут рассмотрены основные понятия квантовой электродинамики: квантовый гармонический осциллятор, квантование уравнений Максвелла и переход к конечномерным моделям КЭД. Будет подробно разбираться модель Джейнса-Каммингса и ее модификации, а также контр-интуитивные эффекты: квантовое бутылочное горлышко, DAT и темные состояния, а также их применения в нано-технологиях. Знание основ квантовой механики формально не предполагается, но очень желательно. Спецкурс рассчитан на бакалавров, но фактически предполагает лишь владением материалом 2 курса.

Первая лекция: 15 февраля

Ускорение вычислений по стандарту OPEN-CL на ПЛИС Altera FPGA

Суббота, 11:00-15.00, для магистров

Аудитория 574

Лектор: Висторовский А.

В спецкурсе будет дан обзор современных технологий и аппаратуры ускорения вычислений на ПЛИС с помощью открытого стандартизированного языка программирования гетерогенных вычислительных платформ OPEN-CL. В практической части курса в ходе лабораторных работ на ускорителе Euler Tread разработки АО «Алмаз-СП»  на базе новейшей ПЛИС Intel PSG (Altera FPGA Arria-10 20nm) слушатели научатся настройке программной среды и аппаратуры, познакомятся с основами программирования ПЛИС на OPENCL,  освоят инструменты анализа производительности и методы оптимизации.

Первая лекция: 17 марта

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

Вторник, 18:00, для бакалавров

Аудитория 507

Лектор: Буряк Д.Ю.

Темы, которые будут рассматриваться в рамках спецкурса:

  1. Обзор средств проектирования и реализации НС: библиотеки, среды разработки
  2. Обзор подходов к распараллеливанию обучения и вычисления НС.
  3. Практические особенности построения и обучения НС: выбор архитектуры, алгоритма обучения, подбор параметров, предобработка данных, методы инициализации весов,выбор функции ошибки.
  4. Особенности построения и обучения глубоких сетей: алгоритмы обучения, регуляризация, drop-out, подходы для повышения эффективности обучения, проблемы при обучении.
  5. Пример построения сети для решения задач классификации, аппроксимации.

Первая лекция: 13 февраля

Параллельное программирование для высокопроизводительных вычислительных систем

Понедельник, 16:20, для бакалавров 3-4 курсов

Аудитория 582

Лектор: Попова Н.Н., Бахтин В.А.

Внедрение многоядерных вычислительных кластеров, появление кластеров с гетерогенными узлами, использующих в качестве ускорителей графические процессоры, серьезно усложнило разработку параллельных программ, поскольку потребовало использовать, помимо технологий MPI и SHMEM, еще и низкоуровневые технологии  PThreads, CUDA или OpenCL.  В последнее время большое внимание уделяется высокоуровневым моделям программирования, среди которых особое место занимают модели, реализуемые посредством добавления в программы на стандартных последовательных языках спецификаций, управляющих отображением этих программ на параллельные машины. Эти спецификации, оформляемые в виде комментариев в Фортран-программах или директив компилятору (прагм) в программах на языках Си и Си++, не видны для обычных компиляторов, что значительно упрощает внедрение новых моделей параллельного программирования. Такими моделями для кластеров является DVM-модель, для мультипроцессоров - OpenMP, для ускорителей - OpenACC. В рамках спецкурса будут рассмотрены основные возможности технологий параллельного программирования OpenMP, DVM и OpenACC, а также подходы и инструменты для функциональной отладки и отладки эффективности получаемых  параллельных программ.

Технология параллельного программирования MPI является в настоящее время доминирующей технологией параллельного программирования для многопроцессорных систем. Большая часть  современных параллельных приложений реализуется именно с использованием MPI. В рамках спецкурса будут рассмотрены продвинутые возможности MPI, направленные на построение параллельных приложений для больших систем, обработку  распределенных графов, построение гибридных  параллельных приложений,   динамическое управление процессами.

Первая лекция: 12 февраля

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

Четверг, 18:00, для магистров

Аудитория 515

Лектор: Лацис А.О.

Первая лекция: 15 февраля

Совместная разработка вычислительных алгоритмов и вычислительных архитектур

Четверг, 18:00, для аспирантов

Аудитория 515

Лектор: Лацис А.О.

Предел вычислительной производительности единичного ядра процессора общего назначения практически достигнут, и давно. Необходима альтернатива методу грубой силы (наращиванию числа процессорных ядер до десятков и сотен миллионов и более) при построении суперкомпьютеров, то есть альтернатива процессору общего назначения в виде вычислителя новой архитектуры.

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

Таким образом, с вычислителями новой архитектуры связаны два круга проблем: сложность программирования для них (по определению) и сложность подбора подходящих приложений. О первом круге проблем говорят много и подробно, о втором же часто забывают, как и о том, что по мере развития новых архитектур их универсальность, вероятно, будет падать,  а проблемы второго круга, соответственно, будут обостряться.

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

Свойства алгоритмов легко изучать на конкретных примерах. То же должно быть сделано верным и для архитектур. Практическую пригодность тех или иных архитектурных подходов (в комплексе с технологиями разработки и примерами реализованных алгоритмов) лучше всего проверять на схемотехническом полигоне, оснащенном модулями с FPGA. Такой полигон позволяет провести доказательное натурное моделирование вычислителей новой архитектуры или их элементов, а в некоторых особо удачных случаях может и сам оказаться таким вычислителем. Именно такой полигон со всем необходимым для макетирования вычислительных сопроцессоров предполагается использовать по ходу чтения курса. В частности, будут на практике изучены технологии схемной реализации сопроцессоров - ускорителей вычислений.

Первая лекция: 15 февраля