Параллельные шаблоны программирования для С#?

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


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

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


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

Полезно вообще:

Многопоточность:

Ответы

Ответ 1

Вот несколько опций

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

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

Ответ 2

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

Ответ 4

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

Ответ 5

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