Поделиться через


Среда выполнения с параллелизмом

Исполняющая среда с параллелизмом для C++ помогает создавать надежные, масштабируемые, быстро реагирующие параллельные приложения. Она повышает уровень абстракции, чтобы пользователю не приходилось управлять подробностями инфраструктуры, связанными с параллелизмом. Ее также можно использовать для указания политик планирования, соответствующих требованиям качества обслуживания приложений. Эти ресурсы помогут вам начать работу с исполняющей средой с параллелизмом.

Справочную документацию см. в разделе Справочные материалы (среда выполнения с параллелизмом).

Совет

Исполняющая среда с параллелизмом интенсивно использует возможности C++11 и соответствует более современному стилю программирования на C++.Для получения дополнительных сведений ознакомьтесь со статьей Возвращение к C++ (современный C++).

Выбор функции среды выполнения с параллелизмом

Общие сведения о среде выполнения с параллелизмом

Объясняет, почему важна среда выполнения с параллелизмом и описывает ее основные компоненты.

Сравнение среды выполнения с параллелизмом с другими моделями параллелизма

Показывает характеристики среды выполнения с параллелизмом в сравнении с другими моделями параллелизма, например пулом потоков Windows и OpenMP, чтобы использовать ту модель параллелизма, которая лучше всего соответствует требованиям приложения.

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

Здесь OpenMP сравнивается с исполняющей средой с параллелизмом, и предоставляются примеры способов миграции существующего кода OpenMP для использования исполняющей среды с параллелизмом.

Библиотека параллельных шаблонов

Здесь представлены общие сведения о работе с PPL, предоставляющей параллельные циклы, задачи и контейнеры.

Библиотека асинхронных агентов

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

Планировщик задач (среда выполнения с параллелизмом)

Содержит описание планировщика заданий, который позволяет точно настроить производительность ваших приложений для настольных систем, использующих исполняющую среду с параллелизмом.

Параллелизм задач в PPL

Параллелизм задач (среда выполнения с параллелизмом)

Практическое руководство. Использование функции parallel_invoke для написания программы параллельной сортировки

Практическое руководство. Использование функции parallel_invoke для выполнения параллельных операций

Практическое руководство. Создание задачи, выполняемой после задержки

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

Пошаговое руководство. Реализация фьючерсов

Здесь показано, как объединить возможности исполняющей среды с параллелизмом для выполнения более объемной задачи.

Пошаговое руководство. Удаление задач из потоков пользовательского интерфейса

Здесь показано, как переместить работу, выполняемую потоком ИП, в рабочий поток в приложении MFC.

Рекомендации по работе с библиотекой параллельных шаблонов

Общие рекомендации в среде выполнения с параллелизмом

Рекомендации по работе с PPL.

Параллелизм данных в PPL

Параллельные алгоритмы

Практическое руководство. Написание цикла parallel_for

Практическое руководство. Написание цикла parallel_for_each

Практическое руководство. Параллельное выполнение операций сопоставления и сокращения числа элементов

Здесь приводится описание parallel_for, parallel_for_each, parallel_invoke и других параллельных алгоритмов. Используйте параллельные алгоритмы для решения задач параллельных данных, включающих коллекции данных.

Параллельные контейнеры и объекты

Практическое руководство. Использование параллельных контейнеров для повышения эффективности

Практическое руководство. Использование класса combinable для повышения производительности

Практическое руководство. Использование объекта combinable для комбинирования наборов

Здесь приводится описание классов combinable, concurrent_vector, concurrent_queue, concurrent_unordered_map и других параллельных контейнеров. Используйте параллельные контейнеры и объекты, когда требуются контейнеры, предоставляющие потокобезопасный доступ к своим элементам.

Рекомендации по работе с библиотекой параллельных шаблонов

Общие рекомендации в среде выполнения с параллелизмом

Рекомендации по работе с PPL.

Отмена задач и параллельных алгоритмов

Отмена в библиотеке параллельных шаблонов

Здесь описывается роль отмены в PPL, включая способы создания запросов отмены и реагирования на них.

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

Практическое руководство. Использование обработки исключений для выхода из параллельного цикла

Здесь демонстрируются два способа отмены работы с параллельными данными.

Приложения для Магазина Windows

Создание асинхронных операций в C++ для приложений для Магазина Windows

Здесь приводится описание некоторых ключевых аспектов, которые надо учитывать при использовании исполняющей среды с параллелизмом для создания асинхронных операций в приложении Магазин Windows.

Пошаговое руководство. Подключение с использованием задач и HTTP-запросов XML

Демонстрация использования задач PPL в сочетании с интерфейсами IXMLHTTPRequest2 и IXMLHTTPRequest2Callback для отправки запросов HTTP GET и POST веб-сервису в приложении Магазин Windows.

Примеры приложений Магазина Windows

Содержит загружаемые примеры кода и демонстрационные приложения для Windows 8. Примеры на C++ используют функции исполняющей среды с параллелизмом, например задачи PPL, для обработки данных в фоновом режиме с целью сохранения пользовательского интерфейса в откликающемся состоянии.

Программирование потоков данных в библиотеке асинхронных агентов

Асинхронные агенты

Асинхронные блоки сообщений

Функции передачи сообщений

Практическое руководство. Реализация различных шаблонов "источник-приемник"

Практическое руководство. Предоставление рабочих функций классам call и transformer

Практическое руководство. Использование преобразователя в конвейере данных

Практическое руководство. Выбор среди завершенных задач

Практическое руководство. Отправка сообщений через определенные интервалы

Практическое руководство. Использование фильтра блока сообщений

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

Пошаговое руководство. Создание приложения на основе агента

Пошаговое руководство. Создание агента потоков данных

Здесь демонстрируется создание простого приложения на основе агентов.

Пошаговое руководство. Создание сети обработки изображений

Здесь показано, как создавать сеть асинхронных блоков сообщений, выполняющих обработку изображений.

Пошаговое руководство. Использование класса join для предотвращения взаимоблокировки

На примере проблемы обедающих философов показано использование исполняющей среды с параллелизмом для недопущения взаимоблокировок в приложении.

Пошаговое руководство. Создание пользовательского блока сообщений

Здесь описано, как создать пользовательский тип блока сообщений, сортирующий входящие сообщения по приоритету.

Рекомендации по работе с библиотекой асинхронных агентов

Общие рекомендации в среде выполнения с параллелизмом

Рекомендации по работе с агентами.

Обработка и отладка исключений

Обработка исключений в среде выполнения с параллелизмом

Здесь описана работа с исключениями в среде выполнения с параллелизмом.

Средства диагностики параллельного выполнения (среда выполнения с параллелизмом)

Описывает способы оптимизации приложений и наиболее эффективного использования среды выполнения с параллелизмом.

Настройка производительности

Средства диагностики параллельного выполнения (среда выполнения с параллелизмом)

Описывает способы оптимизации приложений и наиболее эффективного использования среды выполнения с параллелизмом.

Экземпляры планировщика

Практическое руководство. Управление экземпляром планировщика

Политики планировщика

Практическое руководство. Задание определенных политик планировщика

Практическое руководство. Создание агентов, использующих определенные политики планировщика

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

Группы расписаний

Практическое руководство. Использование групп расписаний для определения порядка выполнения

Демонстрирует использование групп планирования для группировки связанных задач. Например, вам может потребоваться высокая локальность связанных заданий, если эти задания лучше выполнять в одном узле процессора.

Упрощенные задачи

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

Контексты

Практическое руководство. Использование класса Context для реализации семафора, поддерживающего параллельный доступ

Практическое руководство. Использование лимита подписки для устранения задержек

Здесь приводятся способы управления поведением потоков, управляемых исполняющей средой с параллелизмом.

Функции управления памятью

Практическое руководство. Использование функций Alloc и Free для повышения производительности памяти

Здесь описываются функции управления памятью, предоставляемые исполняющей средой с параллелизмом для параллельного выделения и высвобождения памяти.

Дополнительные ресурсы

Шаблоны асинхронного программирования и советы в Hilo (приложения для Магазина Windows с использованием C++ и XAML)

Дополнительные сведения о том, как использовалась исполняющая среда с параллелизмом для реализации асинхронных операций в Hilo, приложении Магазин Windows, написанном с помощью C++ и XAML.

Примеры кода для исполняющей среды с параллелизмом и библиотеки параллельных шаблонов в Visual Studio 2010

Примеры приложений и утилит, демонстрирующих исполняющую среду с параллелизмом.

Блог о параллельном программировании в машинном коде

Содержит дополнительные подробные статьи о параллельном программировании в среде выполнения с параллелизмом.

Форум по параллельным вычислениям в C++ и машинном коде

Позволяет участвовать в обсуждениях сообщества о среде выполнения с параллелизмом.

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

Описывает модель параллельного программирования, доступную в .NET Framework.

См. также

Другие ресурсы

Справочные материалы (среда выполнения с параллелизмом)