Parallel Extensions для .net 3.5
http://habrahabr.ru/blogs/net/45732/
На мой взгляд самая удачная статья для ознакомления с библиотекой Parallel Extensions. Описывается структура библиотеки и введение в Task Parallel Library.
Оптимизация управляемого кода для многоядерных компьютеров
http://msdn.microsoft.com/ru-ru/magazine/cc163340.aspx
Достаточно объемная статья. Интересен пример, в котором показывается три варианта реализации алгоритма: однопоточный, многопоточный с использованием стандартного API в .NET, многопоточный с использованием Parallel Extensions.
Несколько полнее описан Task Parallel Library. Описываются задания (Task) и диспетчер заданий (TaskManager), правда с момента написания статьи произошли небольшие изменения в API.
Блог команды, которая занимается разработкой Parallel Extensions
http://blogs.msdn.com/pfxteam/default.aspx
В блоге доступна обширная информация по API библиотеки и описаны типовые сценарии.
Multiple thread-local state elements in a loop
http://blogs.msdn.com/pfxteam/archive/2008/05/28/8556655.aspx
Описывается работа с типом ParallelState
Coordination Data Structures Overview
http://blogs.msdn.com/pfxteam/archive/2008/06/18/8620615.aspx
Coordination Data Structures – LazyInit
http://blogs.msdn.com/pedram/archive/2008/06/02/coordination-data-structures-lazyinit-t.aspx
По двум ссылкам выше, описываются структуры, которые можно использовать в многопоточных сценариях. Как правило эти структуры достаточно слабо описывают в статьях, которые посвящены библиотеке Parallel Extensions.
Waltzing Through the Parallel Extensions June CTP: Synchronization Primitives
http://blogs.microsoft.co.il/blogs/sasha/archive/2008/06/11/waltzing-through-the-parallel-extensions-june-ctp-synchronization-primitives.aspx
Есть элементы синхронизации в .NET, а есть и в Parallel Extensions. :)
Да, я знаю что это такое и зачем это нужно, но мне лень это описывать :)
TaskManager – The Range Rover of the .Net 4 Parallel Extensions
http://www.lovethedot.net/2009/03/taskmanager-range-rover-of-net-4.html
Очень хорошо описывается интерфейс класса TaskManager. Этот класс нужно использовать, если вам необходимо явно указать сколько процессоров/потоков вы готовы отдать планировщику. По-умолчанию планировщик использует все доступные ресурсы CPU.
1 комментарий:
Отправить комментарий