Шаблоны параллельного программирования для C #? - PullRequest
18 голосов
/ 17 марта 2010

С выпуском Intel процессора Hexa-Core (6) для настольных компьютеров, похоже, мы больше не можем ждать, пока Microsoft сделает многоядерное программирование "простым". Я просто заказываю копию книги Джо Даффи «Параллельное программирование в Windows». Похоже, это отличное место для начала, но я надеюсь, что некоторые из вас, которые нацелены на много / много основных систем, укажут мне на хорошие ресурсы, которые помогли бы или помогли бы в ваших проектах?


Вы дали несколько хороших ответов, но позвольте мне добавить к тому, что я имею в виду под "хорошими ресурсами". То, что у нас 6, 12 или 48 ядер, не означает, что наши приложения выиграют от использования всех из них. Я продолжаю слышать, что текущая парадигма программирования изменится, когда в наших системах будет множество ядер.

Какие блоги / книги я должен читать, чтобы лучше понять шаблоны и когда их использовать. Есть ли хорошие подкасты или веб-трансляции, которые могут помочь.


Вот несколько ссылок, которые мне показались интересными:

Обычно полезно:

Multi-Threading:

Ответы [ 5 ]

13 голосов
/ 17 марта 2010

Вот несколько вариантов

  • F # действительно хорошо поддерживает одновременный код
  • Параллельные LINQ и задачи в .NET 4 являются полезными абстракциями.

См. Блог pfxteam для получения дополнительной информации о новых инструментах параллельного программирования в .NET 4.

8 голосов
/ 17 марта 2010

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

5 голосов
/ 17 марта 2010

Вы можете проверить шаблоны параллельного программирования. Бесплатная загрузка PDF.

http://www.microsoft.com/downloads/details.aspx?FamilyID=86b3d32b-ad26-4bb8-a3ae-c1637026c3ee&displaylang=en

4 голосов
/ 17 марта 2010

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

2 голосов
/ 17 марта 2010

Я согласен с Брайаном и Рвилденом в использовании параллельной библиотеки задач. Хотя TPL - это функция .NET 4, если вы нацелены на 3.5, она доступна как часть Реактивных расширений для .NET (Rx) .

.
...