Параллельное программирование

Курс рассматривает принципы и возможности многопоточного программирования в теории и на практике: классическое многопоточное программирование, алгоритмы и шаблоны || программирования, иные методы повышения производительности систем
Средний уровень

Чему вы научитесь

  • Обоснованно выбирать архитектурные решения, обеспечивающие необходимую производительность приложения, на основе ряда объективных критериев
  • Применять подходящие технологии и структуры данных в зависимости от требований времени отклика и средней производительности
  • Реализовывать классические многопоточные приложения с корректными применением примитивов и алгоритмов синхронизации
  • Диагностировать сложные проблемы производительности
  • Понимать взаимосвязь между устройством компьютера и проблемами высокопроизводительных вычислений

О курсе

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

Курс ставит задачу сформировать общее представление о мире высокопроизводительных вычислений на основе:

  1. Широкого спектр технологий: от расширений процессора до наиболее высокоуровневых библиотек асинхронного программирования
  2. Глубокого понимания базы || программирования: от базовым примитивов синхронизации до моделей памяти
  3. Формирования представления о теории и алгоритмической части современного || программирования: от классических алгоритмов синхронизации различных структур данных до сложных lock и wait-free подходов

В курсе мы встретимся с практическими заданиями на темы:

  1. POSIX threads и condition variables
  2. Lock-free алгоритмы
  3. Coroutines
  4. ...

Для кого этот курс

Курс предназначен для будущих профессиональных разработчиков программного обеспечения и программных архитекторов

Начальные требования

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

  • Операционные системы
  • Сети
  • C++ / Java

Наши преподаватели

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

загружаем...

Что вы получаете

  • Понимание того, когда нужно обоснованно применять методы многопоточного программирования, а когда достаточно обойтись одним потоком с, возможно, некоторыми архитектурными изменениями существующего приложения
  • Набор инструментов и технологий, которые можно применить для обеспечения необходимого уровня производительности
  • Осознание в целом как устроено || программирование и в каких направлениях имеет смысл развиваться в дальнейшем изучении области HPC
Price: Бесплатно

Расскажите о курсе друзьям

Price: Бесплатно