Компьютерные науки

Параллельное программирование с помощью языка C#

Программа о разработке многопоточных приложений на платформе .NET с использованием языка C#. Рассматриваются возможности библиотеки Task Parallel Library и современные шаблоны проектирования.
Студентов 2183 Выпускников 608 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Суперкомпьютерные технологии, Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Эта учебная программа посвящена написанию надежного параллельного кода в среде C# и платформе .NET. В учебной программе рассматриваются механизмы синхронизации, управление потоками, возможности TPL, работа с задачами, конкурентными коллекциями и технология PLINQ. Обучение включает теоретические блоки о проблемах многопоточности и лабораторные работы для закрепления навыков на реальных примерах. Учебная программа ориентирована на разработчиков десктопных и серверных приложений.
Цели
  • Сформировать навыки создания многопоточных приложений на C#.
  • Дать понимание шаблонов параллелизма и методов синхронизации доступа.
  • Помочь освоить инструменты отладки и визуализации в Visual Studio.
Чему я научусь?
  • Использовать библиотеку TPL для управления асинхронными задачами.
  • Применять конкурентные коллекции для безопасного обмена данными.
  • Оптимизировать запросы к данным с помощью технологии PLINQ.

Авторы

Туральчук Константин Анатольевич
Туральчук Константин Анатольевич
Ассистент кафедры Компьютерных интеллектуальных технологий в проектировании, СПбГПУ.
Чему я научусь?
  • Использовать библиотеку TPL для управления асинхронными задачами.
  • Применять конкурентные коллекции для безопасного обмена данными.
  • Оптимизировать запросы к данным с помощью технологии PLINQ.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Введение в параллельные вычисления Архитектура ВС. Классификация вычислительных систем. Пути достижения параллелизма. Параллелизм на уровне команд, потоков, приложений. Анализ эффективности... Архитектура ВС. Классификация вычислительных систем. Пути достижения параллелизма. Параллелизм на уровне команд, потоков, приложений. Анализ эффективности параллельных вычислений. Закон Амдала. ещё
2 Проблемы разработки параллельных приложений Основными этапами разработки параллельных приложений являются: декомпозиция, выявление информационных зависимостей между подзадачами, масштабирование подзадач и балансировка... Основными этапами разработки параллельных приложений являются: декомпозиция, выявление информационных зависимостей между подзадачами, масштабирование подзадач и балансировка нагрузки для каждого процессора. ещё
Проблемы разработки параллельных приложений тест для курса Параллельное программирование с помощью языка C# 30 мин
3 Работа с потоками Создание потоков, ожидания завершения потоков. Пул потоков ThreadPool.
Работа с потоками тест для курса Параллельное программирование с помощью языка C# 30 мин
4 Знакомство с многопоточной обработкой Работа с потоками.
5 Средства синхронизации Критическая секция. Конструкция Lock. Атомарные операторы. Класс Interlocked Семафоры. Semaphore и SemaphoreSlim Классы Monitor и Mutex... Критическая секция. Конструкция Lock. Атомарные операторы. Класс Interlocked Семафоры. Semaphore и SemaphoreSlim Классы Monitor и Mutex Сообщения ManualResetEvent, AutoResetEvent Классы SpinLock и SpinWait ещё
6 Поиск простых чисел Применение средств синхронизации для организации взаимодействия потоков.
7 Конкурентные коллекции Потокобезопасные коллекции пространства имен System.Collections.Concurrent
Конкурентные коллекции тест для курса Параллельное программирование с помощью языка C# 40 мин
8 Синхронизация доступа к одноэлементному буферу Применение потокобезопасных структур данных в приложении
9 Работа с задачами Основные возможности TPL: асинхронные задачи, императивный параллелизм, декларативный параллелизм Работа с задачами. Вложенные задачи. Задачи-продолжения. Обработка... Основные возможности TPL: асинхронные задачи, императивный параллелизм, декларативный параллелизм Работа с задачами. Вложенные задачи. Задачи-продолжения. Обработка исключений в задачах. Механизм отмены задач ещё
Работа с задачами тест для курса Параллельное программирование с помощью языка C# 30 мин
10 Синхронизация приоритетного доступа к многоэлементному буферу Реализация параллельных вычислений с помощью задач.
11 Шаблоны параллелизма Parallel "Параллельные циклы Parallel.For, Parallel.ForEach Дополнительные возможности циклов: досрочный выход из цикла, пакетная обработка диапазонов, реализация агрегированных... "Параллельные циклы Parallel.For, Parallel.ForEach Дополнительные возможности циклов: досрочный выход из цикла, пакетная обработка диапазонов, реализация агрегированных вычислений. Методы Parallel.Invoke для реализации алгоритмов Эразделяй-и-властвуй""." ещё
Шаблоны параллелизма Parallel тест для курса Параллельное программирование с помощью языка C# 30 мин
12 Клеточная модель Игра Жизнь Дж.Конвея Применение шаблонов Paralle.For, Parallel.Invoke.
13 Технология PLINQ Параллелизм PLINQ-запросов. Анализ оптимальности. Вынужденный параллелизм. Упорядочивание элементов в PLINQ-запросах Разделение данных при выполнении PLINQ-запросов: разделение... Параллелизм PLINQ-запросов. Анализ оптимальности. Вынужденный параллелизм. Упорядочивание элементов в PLINQ-запросах Разделение данных при выполнении PLINQ-запросов: разделение по диапазону, блочное разделение, хеш-секционирование. Буферизация выполнения PLINQ-запросов. Агрегированные вычисления с помощью PLINQ-запросов. ещё
Технология PLINQ тест для курса Параллельное программирование с помощью языка C# 30 мин
14 Знакомство с Визуализатором параллелизма в Visual Studio 12 Реализация PLINQ-запросов.
15 Планировщик задач Организация планировщика: глобальная очередь задач, локальные очереди рабочих потоков. Стратегии планировщика: WorkStealing, Inlined threading, Inject threads... Организация планировщика: глобальная очередь задач, локальные очереди рабочих потоков. Стратегии планировщика: WorkStealing, Inlined threading, Inject threads Опции задач: LongRunning, PreferFairness. ещё
16 Типовые модели параллельных приложений Шаблон MapReduce. Реализация с помощью PLINQ-запросов. Шаблон Scan/Fold. Реализация с помощью Parallel.For. Распараллеливание рекурсивных алгоритмов.
Типовые модели параллельных приложений тест для курса Параллельное программирование с помощью языка C# 35 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

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

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.