Среда выполнения с параллелизмом
Исполняющая среда с параллелизмом для C++ помогает создавать надежные, масштабируемые, быстро реагирующие параллельные приложения. Она повышает уровень абстракции, чтобы пользователю не приходилось управлять подробностями инфраструктуры, связанными с параллелизмом. Ее также можно использовать для указания политик планирования, соответствующих требованиям качества обслуживания приложений. Эти ресурсы помогут вам начать работу с исполняющей средой с параллелизмом.
Справочную документацию см. в справочнике.
Совет
Исполняющая среда с параллелизмом интенсивно использует возможности C++11 и соответствует более современному стилю программирования на C++. Дополнительные сведения см. в статье Добро пожаловать в C++.
Выбор возможности среды выполнения с параллелизмом
Статья | Описание |
---|---|
Обзор | Объясняет, почему важна среда выполнения с параллелизмом и описывает ее основные компоненты. |
Сравнение с другими моделями параллелизма | Показывает характеристики среды выполнения с параллелизмом в сравнении с другими моделями параллелизма, например пулом потоков Windows и OpenMP, чтобы использовать ту модель параллелизма, которая лучше всего соответствует требованиям приложения. |
Переход от OpenMP к среде выполнения с параллелизмом | Здесь OpenMP сравнивается с исполняющей средой с параллелизмом, и предоставляются примеры способов миграции существующего кода OpenMP для использования исполняющей среды с параллелизмом. |
Библиотека параллельных шаблонов | Здесь представлены общие сведения о работе с PPL, предоставляющей параллельные циклы, задачи и контейнеры. |
библиотеку асинхронных агентов | Здесь приводятся способы использования асинхронных агентов и функций передачи сообщений, позволяющих встроить в приложения потоки данных и обеспечить конвейерную обработку задач. |
Планировщик заданий | Содержит описание планировщика задач, который позволяет точно настроить производительность ваших приложений для настольных систем, использующих исполняющую среду с параллелизмом. |
Параллелизм задач в PPL
Статья | Описание |
---|---|
Параллельное выполнение задач Как использовать parallel_invoke для написания параллельной подпрограммы сортировки Инструкции. Использование parallel_invoke для выполнения параллельных операций Как создать задачу, которая завершается после задержки |
Содержит описание задач и групп задач, которые могут помочь в создании асинхронного кода и декомпозиции параллельной работы на меньшие части. |
Пошаговое руководство. Реализация фьючерсов | Здесь показано, как объединить возможности исполняющей среды с параллелизмом для выполнения более объемной задачи. |
Пошаговое руководство. Удаление работы из потока User-Interface | Здесь показано, как переместить работу, выполняемую потоком ИП, в рабочий поток в приложении MFC. |
Рекомендации в библиотеке параллельных шаблонов Общие рекомендации в среда выполнения с параллелизмом |
Рекомендации по работе с PPL. |
Параллелизм данных в PPL
Статья | Описание |
---|---|
Параллельные алгоритмы Руководство. Создание parallel_for Loop Руководство. Создание parallel_for_each Loop Как выполнять операции Map и reduce в параллельном режиме |
Здесь приводится описание parallel_for , parallel_for_each , parallel_invoke и других параллельных алгоритмов. Используйте параллельные алгоритмы для решения задач параллельных данных , включающих коллекции данных. |
Параллельные контейнеры и объекты Как использовать параллельные контейнеры для повышения эффективности Как использовать комбинирование для повышения производительности Как использовать комбинирование для объединения наборов |
Здесь приводится описание классов combinable , concurrent_vector , concurrent_queue , concurrent_unordered_map и других параллельных контейнеров. Используйте параллельные контейнеры и объекты, когда требуются контейнеры, предоставляющие потокобезопасный доступ к своим элементам. |
Рекомендации в библиотеке параллельных шаблонов Общие рекомендации в среда выполнения с параллелизмом |
Рекомендации по работе с PPL. |
Отмена задач и параллельных алгоритмов
Статья | Описание |
---|---|
Отмена в библиотеке параллельных шаблонов | Здесь описывается роль отмены в PPL, включая способы создания запросов отмены и реагирования на них. |
Как использовать отмену для разбиения от параллельных Loop Как использовать обработку исключений для разрыва из параллельной Loop |
Здесь демонстрируются два способа отмены работы с параллельными данными. |
Приложения универсальной платформы Windows
Статья | Описание |
---|---|
Создание асинхронных операций в C++ для приложений UWP | Описывает некоторые ключевые моменты, которые следует учитывать при использовании среда выполнения с параллелизмом для создания асинхронных операций в приложении UWP. |
Пошаговое руководство. подключение с помощью задач и HTTP-запросов XML | Показывает, как объединять задачи PPL с IXMLHTTPRequest2 интерфейсами и IXMLHTTPRequest2Callback для отправки запросов HTTP GET и POST к веб-службе в приложении UWP. |
примеры приложений среда выполнения Windows | содержит загружаемые примеры кода и демонстрационные приложения для среда выполнения Windows. |
Программирование потоков данных в библиотеке асинхронных агентов
Обработка и отладка исключений
Статья | Описание |
---|---|
Обработка исключений | Здесь описана работа с исключениями в среде выполнения с параллелизмом. |
Средства диагностики параллельного выполнения | Описывает способы оптимизации приложений и наиболее эффективного использования среды выполнения с параллелизмом. |
Настройка производительности
Статья | Описание |
---|---|
Средства диагностики параллельного выполнения | Описывает способы оптимизации приложений и наиболее эффективного использования среды выполнения с параллелизмом. |
Экземпляры планировщика Руководство. Управление экземпляром планировщика Политики планировщика Как указать конкретные политики планировщика Как создавать агенты, использующие определенные политики планировщика |
Здесь показаны способы управления экземплярами планировщиков и политиками планировщика. В классических приложениях политики планировщика позволяют связывать определенные правила с определенными типами рабочих нагрузок. Например, можно создать один экземпляр планировщика для выполнения некоторых задач с повышенным приоритетом потока и использовать планировщик по умолчанию для выполнения задач с обычным приоритетом потока. |
Планирование групп Как использовать группы расписаний для влияния на порядок выполнения |
Демонстрирует использование групп планирования для группировки связанных задач. Например, вам может потребоваться высокая локальность связанных задач, если эти задачи лучше выполнять в одном узле процессора. |
Упрощенные задачи | Здесь описывается полезность легковесных задач при создании работы, которая не требует распределения нагрузки или отмены, и как они также могут использоваться для адаптации существующего кода для использования с исполняющей средой с параллелизмом. |
Контексты Как использовать класс контекста для реализации параллельного семафора Как использовать превышение лимита подписки для смещения задержки |
Здесь приводятся способы управления поведением потоков, управляемых исполняющей средой с параллелизмом. |
Функции управления памятью Как использовать Alloc и Free для повышения производительности памяти |
Здесь описываются функции управления памятью, предоставляемые исполняющей средой с параллелизмом для параллельного выделения и высвобождения памяти. |
Дополнительные ресурсы
Статья | Описание |
---|---|
Шаблоны асинхронного программирования и советы по Hilo (приложения Магазина Windows на C++ и XAML) | узнайте, как мы использовали среда выполнения с параллелизмом для реализации асинхронных операций в Hilo, среда выполнения Windows приложении с использованием C++ и XAML. |
Блог Parallel Programming in Native Code | Содержит дополнительные подробные статьи о параллельном программировании в среде выполнения с параллелизмом. |
Форум Parallel Computing in C++ and Native Code | Позволяет участвовать в обсуждениях сообщества о среде выполнения с параллелизмом. |
Параллельное программирование | учебник по модели параллельного программирования, доступной в платформа .NET Framework. |