Планировщик задач (среда выполнения с параллелизмом)
Подразделы в этом разделе документации описывают важные функции планировщика заданий среды выполнения с параллелизмом. Планировщик заданий позволяет оптимизировать производительность существующего кода, использующего среду выполнения с параллелизмом.
Важно!
Планировщик заданий не доступен из приложения Магазин Windows.Для получения дополнительной информации см. Создание асинхронных операций в C++ для приложений для Магазина Windows.
Совет
Среда выполнения с параллелизмом предоставляет планировщик по умолчанию, поэтому вам не обязательно создавать собственный.Так как планировщик заданий помогает оптимизировать производительность приложений, рекомендуется начать с раздела Библиотека параллельных шаблонов или Библиотека асинхронных агентов, если вы не знакомы со средой выполнения с параллелизмом.
Планировщик заданий планирует и координирует задачи во время выполнения. Задача — это единица работы, выполняющая конкретные действия. Обычно различные задачи могут выполняться параллельно. В качестве примера задачи можно привести работу, выполняемую элементами группы задач, параллельными алгоритмами и асинхронными агентами.
Планировщик заданий осуществляет управление подробностями задач эффективного планирования на компьютерах с большим объемом вычислительных ресурсов. Планировщик заданий также использует новейшие возможности базовой операционной системы. Таким образом, приложения, использующие среду выполнения с параллелизмом, автоматически масштабируют и совершенствуют оборудование с расширенными возможностями.
В разделе Сравнение среды выполнения с параллелизмом с другими моделями параллелизма описываются различия между механизмами планирования с вытеснением и совместной работой. Планировщик заданий использует совместное планирование и алгоритм переноса нагрузки вместе с планировщиком с вытеснением, предоставленным операционной системой, чтобы обеспечить максимально эффективное использование ресурсов для обработки.
Среда выполнения с параллелизмом предоставляет планировщик по умолчанию, что устраняет необходимость в управлении подробностями инфраструктуры. Поэтому планировщик заданий обычно не используется непосредственно. Однако для удовлетворения качественных требований приложения можно использовать планировщик заданий, чтобы предоставить собственную политику планирования или связать определенные планировщики с конкретными задачами. Например, рассмотрим параллельную операцию сортировки, который невозможно использовать более чем с четырьмя процессорами. Можно использовать политики планировщика, чтобы создать планировщик, не создающий более четырех параллельных задач. Выполнение операции сортировки с этим планировщиком позволяет другим активным планировщикам использовать остающиеся вычислительные ресурсы.
Связанные разделы
Название |
Описание |
---|---|
Описывает экземпляры планировщиков и управление ими с помощью классов concurrency::Scheduler и concurrency::CurrentScheduler. Экземпляры планировщика используются, когда нужно связать явные политики планирования с определенными типами рабочих нагрузок. |
|
Описывает роль политик планировщика. Политики планировщика используются, когда нужно управлять стратегией, которую планировщик использует при управлении задачами. |
|
Описывает роль групп расписаний. Группы расписаний используются, когда требуется высокая локальность заданий, например если группу связанных заданий лучше выполнять в одном узле процессора. |
|
Описывает роль упрощенных задач. Упрощенные задачи удобно использовать при адаптации существующего кода для использования функции планирования в среде выполнения с параллелизмом. |
|
Описывает роль контекстов, функции concurrency::wait и класса concurrency::Context. Эти функции используются, если нужно управлять контекстами, когда они блокируются, разблокируются и передают выполнение, а также если нужно превысить лимит подписки в приложении. |
|
Описывает функции concurrency::Alloc и concurrency::Free. Эти функции могут улучшить производительность памяти, параллельно выделяя и высвобождая память. |
|
Сравнение среды выполнения с параллелизмом с другими моделями параллелизма |
Описывает различия между механизмами планирования с вытеснением и совместной работой. |
Описывает использование в приложении различных параллельных шаблонов, например параллельных алгоритмов. |
|
Описывает использование в приложениях асинхронных агентов. |
|
Описывает среду выполнения с параллелизмом, которая упрощает процесс параллельного программирования, и содержит ссылки на соответствующие разделы. |