В прошлом распараллеливание алгоритмов требовало управления потоками и взаимоблокировками на низком уровне. Visual Studio 2010 и .NET Framework 4
улучшают поддержку параллельного программирования, путем предоставления новой среды выполнения, новых типов библиотек класса (TPL) и новых средств диагностики (Concurrency Visualizer). Эти возможности упрощают параллельную разработку, что позволяет разработчикам писать эффективный, детализированный и масштабируемый параллельный код с помощью естественных выразительных средств без необходимости непосредственной работы с потоками или пулом потоков. На Рис. 2.1 представлен общий обзор архитектуры параллельного программирования в .NET Framework 4.
(рис 2.1) Архитектура параллельного программирования в .NET Framework 4
Библиотека PFX (Parallel Extensions to the .NET Framework) была разработана фирмой Microsoft, данная библиотека позволяет распараллеливать задачи, в которых могут использоваться специальные координирующие структуры данных, таким образом, упрощая написание параллельных программ, и обеспечивая увеличение производительности при увеличении числа ядер или числа процессоров. Существует две стратегии разделения работы между потоками:
Примечание. Параллелизм данных проще и лучше масштабируется на высокопроизводительном оборудовании, поскольку уменьшает или полностью устраняет совместное использование. Кроме того, параллелизм данных основывается на том факте, что данных обычно значительно больше, чем отдельных задач, что увеличивает возможности параллельной обработки.
Библиотека PFX включает в себя два уровня функциональности (Рис. 2.2):
(рис 2.2) Компоненты библиотеки PFX
Примечание. Подробное описание потоков и пулов CLR приведено в лекции № 3
Одним из самых главных среди нововведений, внедренных в среду .NET Framework 4.0, является
Проще говоря, TPL предоставляет возможности для автоматического масштабирования приложений с целью эффективного использования ряда доступных процессоров.
Главной причиной появления нововведений, таких как TPL и PLINQ, служит возросшее значение параллелизма в современном программировании. В настоящее время многоядерные процессоры уже стали обычным явлением. Кроме того, постоянно растет потребность в повышении производительности программ. Все это, в свою очередь, вызвало растущую потребность в механизме, который позволял бы с выгодой использовать несколько процессов для повышения производительности программного обеспечения.
Библиотека TPL определена в пространстве имен System.Threading.Tasks (Рис. 2.3). Но для работы с ней обычно требуется также включать в программу класс System.Threading, поскольку он поддерживает синхронизацию и другие средства многопоточной обработки, в том числе и те, что входят в класс Interlocked.
(рис 2.3) Пространство имен System.Threading.Tasks
Библиотека TPL позволяет автоматически распределять нагрузку приложений между доступными процессорами в динамическом режиме, используя пул потоков CLR. Библиотека TPL занимается распределением работы, планированием потоков, управлением состоянием и прочими низкоуровневыми деталями. В результате появляется возможность максимизировать производительность приложений .NET. не имея дела со сложностями прямой работы с потоками.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.