Среда выполнения с параллелизмом
Исполняющая среда с параллелизмом для C++ помогает создавать надежные, масштабируемые, быстро реагирующие параллельные приложения. Она повышает уровень абстракции, чтобы пользователю не приходилось управлять подробностями инфраструктуры, связанными с параллелизмом. Ее также можно использовать для указания политик планирования, соответствующих требованиям качества обслуживания приложений. Эти ресурсы помогут вам начать работу с исполняющей средой с параллелизмом.
Справочную документацию см. в разделе Справочные материалы (среда выполнения с параллелизмом).
Совет
Исполняющая среда с параллелизмом интенсивно использует возможности C++11 и соответствует более современному стилю программирования на C++.Для получения дополнительных сведений ознакомьтесь со статьей Возвращение к C++ (современный C++).
Выбор функции среды выполнения с параллелизмом
Объясняет, почему важна среда выполнения с параллелизмом и описывает ее основные компоненты. |
|
Сравнение среды выполнения с параллелизмом с другими моделями параллелизма |
Показывает характеристики среды выполнения с параллелизмом в сравнении с другими моделями параллелизма, например пулом потоков Windows и OpenMP, чтобы использовать ту модель параллелизма, которая лучше всего соответствует требованиям приложения. |
Здесь OpenMP сравнивается с исполняющей средой с параллелизмом, и предоставляются примеры способов миграции существующего кода OpenMP для использования исполняющей среды с параллелизмом. |
|
Здесь представлены общие сведения о работе с PPL, предоставляющей параллельные циклы, задачи и контейнеры. |
|
Здесь приводятся способы использования асинхронных агентов и функций передачи сообщений, позволяющих встроить в приложения потоки данных и обеспечить конвейерную обработку задач. |
|
Содержит описание планировщика заданий, который позволяет точно настроить производительность ваших приложений для настольных систем, использующих исполняющую среду с параллелизмом. |
Параллелизм задач в PPL
Параллелизм задач (среда выполнения с параллелизмом) Практическое руководство. Использование функции parallel_invoke для выполнения параллельных операций Практическое руководство. Создание задачи, выполняемой после задержки |
Содержит описание задач и групп задач, которые могут помочь в создании асинхронного кода и декомпозиции параллельной работы на меньшие части. |
Здесь показано, как объединить возможности исполняющей среды с параллелизмом для выполнения более объемной задачи. |
|
Пошаговое руководство. Удаление задач из потоков пользовательского интерфейса |
Здесь показано, как переместить работу, выполняемую потоком ИП, в рабочий поток в приложении MFC. |
Рекомендации по работе с PPL. |
Параллелизм данных в PPL
Практическое руководство. Написание цикла parallel_for |
Здесь приводится описание 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 8. Примеры на C++ используют функции исполняющей среды с параллелизмом, например задачи PPL, для обработки данных в фоновом режиме с целью сохранения пользовательского интерфейса в откликающемся состоянии. |
Программирование потоков данных в библиотеке асинхронных агентов
Практическое руководство. Реализация различных шаблонов "источник-приемник" Практическое руководство. Предоставление рабочих функций классам call и transformer Практическое руководство. Использование преобразователя в конвейере данных Практическое руководство. Выбор среди завершенных задач Практическое руководство. Отправка сообщений через определенные интервалы Практическое руководство. Использование фильтра блока сообщений |
Здесь описываются асинхронные агенты, блоки сообщений и функции передачи сообщений, которые являются стандартными сборочными блоками для выполнения операций с потоками данных в исполняющей среде с параллелизмом. |
Здесь демонстрируется создание простого приложения на основе агентов. |
|
Здесь показано, как создавать сеть асинхронных блоков сообщений, выполняющих обработку изображений. |
|
Пошаговое руководство. Использование класса join для предотвращения взаимоблокировки |
На примере проблемы обедающих философов показано использование исполняющей среды с параллелизмом для недопущения взаимоблокировок в приложении. |
Пошаговое руководство. Создание пользовательского блока сообщений |
Здесь описано, как создать пользовательский тип блока сообщений, сортирующий входящие сообщения по приоритету. |
Рекомендации по работе с агентами. |
Обработка и отладка исключений
Здесь описана работа с исключениями в среде выполнения с параллелизмом. |
|
Средства диагностики параллельного выполнения (среда выполнения с параллелизмом) |
Описывает способы оптимизации приложений и наиболее эффективного использования среды выполнения с параллелизмом. |
Настройка производительности
Средства диагностики параллельного выполнения (среда выполнения с параллелизмом) |
Описывает способы оптимизации приложений и наиболее эффективного использования среды выполнения с параллелизмом. |
Практическое руководство. Управление экземпляром планировщика Практическое руководство. Задание определенных политик планировщика Практическое руководство. Создание агентов, использующих определенные политики планировщика |
Здесь показаны способы управления экземплярами планировщиков и политиками планировщика. В классических приложениях политики планировщика позволяют связывать определенные правила с определенными типами рабочих нагрузок. Например, можно создать один экземпляр планировщика для выполнения некоторых задач с повышенным приоритетом потока и использовать планировщик по умолчанию для выполнения задач с обычным приоритетом потока. |
Практическое руководство. Использование групп расписаний для определения порядка выполнения |
Демонстрирует использование групп планирования для группировки связанных задач. Например, вам может потребоваться высокая локальность связанных заданий, если эти задания лучше выполнять в одном узле процессора. |
Здесь описывается полезность легковесных задач при создании работы, которая не требует распределения нагрузки или отмены, и как они также могут использоваться для адаптации существующего кода для использования с исполняющей средой с параллелизмом. |
|
Практическое руководство. Использование лимита подписки для устранения задержек |
Здесь приводятся способы управления поведением потоков, управляемых исполняющей средой с параллелизмом. |
Практическое руководство. Использование функций Alloc и Free для повышения производительности памяти |
Здесь описываются функции управления памятью, предоставляемые исполняющей средой с параллелизмом для параллельного выделения и высвобождения памяти. |
Дополнительные ресурсы
Дополнительные сведения о том, как использовалась исполняющая среда с параллелизмом для реализации асинхронных операций в Hilo, приложении Магазин Windows, написанном с помощью C++ и XAML. |
|
Примеры приложений и утилит, демонстрирующих исполняющую среду с параллелизмом. |
|
Содержит дополнительные подробные статьи о параллельном программировании в среде выполнения с параллелизмом. |
|
Позволяет участвовать в обсуждениях сообщества о среде выполнения с параллелизмом. |
|
Описывает модель параллельного программирования, доступную в .NET Framework. |