| Вопрос по Курсу: "Параллельное программирование с использованием MS VisualStudia 2010". При компиляции Самостоятельного задания (одновременная отрисовка прямоугольников, эллипсов и выдача в текст-бокс случайного числа) среда предупреждает: suspend - устаревшая команда; примените monitor, mutex и т.п. Создаётся впечатление, что Задание создано в более поздней среде, чем VS 2010. | 
Автор: Томский политехнический университет 
    
Форма обучения: 
дистанционная
 Стоимость самостоятельного обучения: 
бесплатно
 Доступ: 
свободный
 Документ об окончании: 
   Вам нравится?   Нравится 27 студентам  
Уровень: 
Для всех
 Длительность: 
12:09:00
 Студентов: 
1163
 Выпускников: 
195
 
                Данный курс, посвящен описанию создания многопоточных приложений в среде Visual Studio 2010 с использованием .NET Framework. В частности, какие библиотеки, и какие классы необходимы для создания многопоточных приложений, какие инструменты Visual Studio 2010 используются для отладки этих приложений.     
    
                На сегодняшний день, многоядерные процессоры используются не только в серверных платформах, но и  в  персональных компьютерах, которые позволяют  нескольким потокам выполняться одновременно. И в будущем, число ядер в процессоре будет только увеличиваться. Уже сегодня можно использовать возможности аппаратного обеспечения – и распараллеливать код, чтобы распределить работу между несколькими процессорами. Ранее распараллеливание требовала низкого уровня обработки потоков и блокировок. Visual Studio 2010 и .NET Framework 4 поддерживают параллельное программирование путем предоставления новой среды CLR, новые типы библиотек классов и новые средства диагностики. Данные возможности упрощают разработку параллельных программ, так что можно написать эффективное и масштабируемое приложение без необходимости работать непосредственно с потоками или пулом потоков.     
    
                Темы: Программирование    
    
                Специальности: Программист, Архитектор программного обеспечения    
Дополнительные курсы
- Работа в Microsoft Visual Studio
- Управление жизненным циклом разработки приложения с использованием Visual Studio Team System и Team Foundation Server
- Программирование на языке C в Microsoft Visual Studio 2010
- Методология синхронной разработки приложений в Microsoft Visual Studio 2010
- Параллельное программирование
- Теория и практика параллельных вычислений
- Введение в методы параллельного программирования
- Основы параллельных вычислений
        План занятий        
      Занятие
Заголовок <<
Дата изучения
 Лекция 1
13 минут
Введение в параллельное программирование
      В рамках данной лекции будут рассмотрены следующие вопросы: определение, назначение параллельного программирования; многоядерные вычисления; множественные потоки команд/данных; ускорение; закон Амадал; закон Густафсона-Барсиса.
  Оглавление
    -
 Лекция 2
10 минут
Параллельное программирование в .NET Framework 4.0
      В рамках данной лекции будут рассмотрены следующие вопросы: введение в параллельное программирование .NET Framework 4; библиотека PFX; компоненты библиотеки PFX; библиотека параллелизма  задач и данных (TPL)
  Оглавление
    -
 Самостоятельная работа 1
9 минут
Создание первого приложения
      В данном практическом занятии, будет создано простое многопоточное приложение, в котором будет реализовано три различных потока.
  Оглавление
    -
 Лекция 3
19 минут
Многопоточность в .NET Framework
      В рамках данной лекции будут рассмотрены следующие вопросы: определение многопоточности; основы многопоточной обработки; класс Thread; создание вторичных потоков; назначение приоритета потока; управление потоками; пул потоков CLR.
  Оглавление
    -
 Лекция 4
39 минут
Синхронизация потоков
      В рамках данной лекции будут рассмотрены следующие вопросы: оператор lock; классы синхронизации в .NET Framework; Interlocked; класс Monitor; методы класса Monitor: Wait, Pulse и PulseAll; класс Mutex; класс  Semaphore; класс Barrier; класс ReaderWriterLockSlim; события синхронизации потоков. При использовании в программе нескольких потоков иногда необходимо  координировать их выполнение. Процесс координации потоков называется синхронизацией. К синхронизации прибегают в тех случаях, когда двум или большему числу потоков необходимо получить доступ к общему ресурсу, который в каждый момент времени может использовать только один поток. Синхронизацию потоков можно осуществлять несколькими способами описанных в данной лекции.
  Оглавление
    -
 Лекция 5
16 минут
Введение в асинхронные задачи
      В рамках данной лекции будут рассмотрены следующие вопросы: использование класса Task; класс TaskFactory; примеры различных сортировок массива с использованием принципа параллелизма.
  Оглавление
    -
 Лекция 6
20 минут
Параллелизм задач
      В рамках данной лекции будут рассмотрены следующие вопросы:определение параллелизма задач; создание и запуск задачи; создание вложенных задач; ожидание задач; обработка ошибок в задачах; отмена выполнения заданий; продолжения; продолжения и Task <TResult>; продолжения и дочерние задачи; продолжения предыдущих задач; несколько продолжений одной задачи; планировщики заданий и пользовательский интерфейс.
  Оглавление
    -
 Самостоятельная работа 2
10 минут
Создание приложения с распараллеливанием задач
      В данном практическом занятии будет рассмотрен процесс создания простого приложения с использованием многозадачности. 
  Оглавление
    -
 Лекция 7
14 минут
Параллелизм данных
      В рамках данной лекции будут рассмотрены следующие вопросы: Класс Parallel; Parallel.Invoke; Parallel.For; Parallel.FoReach.
  Оглавление
    -
 Самостоятельная работа 3
11 минут
Создание приложения с распараллеливанием данных
      В рамках данного практического задания будет рассмотрен пример использования параллельных циклов Parallel.For и Parrallel.Foreach для распараллеливания данных.
  Оглавление
    -
 Лекция 8
25 минут
Parallel LINQ (PLINQ)
      В рамках данной лекции будут рассмотрены следующие вопросы: описание LINQ; примеры LINQ - запросов; работа с простыми массивами данных; работа с массивами и коллекциями классов; введение в PLINQ; метод AsParallel; пример использования PLINQ запроса.
  Оглавление
    -
 Лекция 9
25 минут
PLINQ Операторы и методы
      В рамках данной лекции будут рассмотрены следующие вопросы: перечесление ParallelExecutionMode; метод WithDegreeOfParallelism; метод AsOrdered; метод Range; метод Repeat; метод AsUnordered; метод AsSequential; метод WithMergeOptions; метод ForAll.
  Оглавление
    -
 Самостоятельная работа 4
16 минут
Создание приложения с использованием PLINQ
      В рамках данного практического занятия, будет создано консольное приложение, которое получает из СУБД  MS SQL данные по сотрудникам и  оформленными ими заказами (стоимость, количество, наименования продукта) с помощью LINQ и PLINQ запросов.
  Оглавление
    -
 Лекция 10
21 минута
Параллельные коллекции
      В рамках данной лекции будут рассмотрены следующие вопросы: классы параллельных коллекций; интерфейс  IProducerConsumerCollection<T>; пример использования обычной коллекции с применением параллелизма.
  Оглавление
    -
 Лекция 11
1 час 6 минут
Параллельные коллекции. Низкоуровневая синхронизация
      В рамках данной лекции будут рассмотрены следующие вопросы: SpinLock; SpinWait; параллельные коллекции; ConcurrentQueue; ConcurrentStack; ConcurrentBag; ConcurrentDictionary; BlockingCollection; создание экземпляра класса BlockingCollection; создание поставщика; создание потребителя.
  Оглавление
    -
 Самостоятельная работа 5
14 минут
Создание Windows приложения с использованием элемента BackgroundWorker
      В данном практическом занятии, будет подробно рассмотрен процесс создания простого многопоточного Windows приложения с использованием элемента управления BackgroundWorker.
  Оглавление
    -
 Самостоятельная работа 6
17 минут
Создание многопоточного Windows - приложения
      В рамках данного практического задания реализуется многопоточное  Windows приложение, которое асинхронно выполняет три различных  метода.
  Оглавление
    -
 Самостоятельная работа 7
12 минут
Создание многопоточного Silverlight - приложения
      В рамках данного практического будет создан простой Silverlight проект, выполняющий асинхронно три различных потока. 
  Оглавление
    -
 Лекция 12
33 минуты
Отладка приложений в Visual Studio 2010
      В данной лекции будут рассмотрены следующие вопросы: отладка приложения в Visual Studio 2010; установка точки останова; запуск отладчика; пошаговое выполнение программы; окно Autos; окно Locals; окно Watch; окно Immediate; окно Threads; окно Parallel Task; окно Parallel Stacks.
  Оглавление
    -
 Самостоятельная работа 8
9 минут
Отладка однопоточного приложения в Visual Studio 2010
      В рамках данного практического занятия, будет рассмотрен процесс создания и отладки однопоточного приложения с использованием Visual Studio 2010.
  Оглавление
    -
 Самостоятельная работа 9
5 минут
Отладка многопоточного приложения
      В данном практическом занятии будет рассмотрен процесс отладки многопоточного приложения с использование окна Threads.
  Оглавление
    -
 Самостоятельная работа 10
7 минут
Отладка многопоточного приложения с использованием окна стеков
      В рамках данного практического занятия, будет рассмотрен пример отладки параллельного приложения, с использованием окна вызова стеков.
  Оглавление
    -
 Самостоятельная работа 11
7 минут
Отладка многопоточного приложения с использованием окна задач
      Практическое занятие посвящено процессу отладки параллельного приложения с использованием инструмента Parallel Task.
  Оглавление
    -
 Лекция 13
18 минут
Отладка приложений в Visual Studio 2010
      В рамках данной лекции будут рассмотрены следующие вопросы: введение в Concurrency Visualizer; представление  использования центрального процессора (CPU Utilization); введение в Concurrency Visualizer; представление потоков (Threads); представление Cores; секция отчетов.
  Оглавление
    -
 Самостоятельная работа 12
11 минут
Пример оптимизации параллельного приложения
      В данном практическом занятии будет рассмотрен пример оптимизации параллельного приложения с использованием Currency Visualizer.
  Оглавление
    -
  
                             