Это открытый вопрос. Какие подходы следует учитывать?
Каковы текущие наилучшие параметры для параллелизации приложения .NET с интенсивным использованием процессора?
Ответ 1
Ваш первый шаг - найти и понять parallelism в вашей проблеме. Очень легко написать многопоточный код, который не лучше, чем однопоточный код, который он заменяет. "Шаблоны для параллельного программирования" (Amazon) - отличное введение в ключевые понятия.
Как только у вас будет работоспособный дизайн, начните читать статьи в разделе "Concurrency" в архивах журнала MSDN (ссылка), особенно что-либо, написанное Джеффом Рихтером. Это даст вам материал для орехов и болтов на конструкциях резьбы, специфичных для Windows и .NET. (Многопоточная секция в Richter "CLR через С# (Amazon) является коротким, но очень проницательным - настоятельно рекомендуется.)
Ответ 2
Есть несколько параллельных расширений для .NET, которые в настоящее время тестируются и доступны в Microsoft Parallel Computing Developer Center. У них есть несколько интересных элементов, которые вы ожидаете как Parallel foreach и параллельная версия LINQ, называемая PLINQ. Некоторая лучшая информация о расширениях находится на Channel 9.
Ответ 3
Я думаю, что мы могли бы также включать в себя не-.NET-подходы к параллельной обработке, если они относятся к числу лучших вариантов для рассмотрения.
Ответ 4
@Larsenal
Если вы хотите выйти за пределы .NET, было много дискуссий о Intel Threading Building Blocks, который является параллельной библиотекой для С++.
Ответ 5
Существует много вариантов, и лучшее решение будет зависеть от характера проблемы, которую вы пытаетесь решить. Если вы пытаетесь решить проблему неудобно параллельную, то разделение и параллелизация задач будет тривиальным. В этом случае задача будет заключаться в распределении и управлении используемыми данными.
Некоторые предложения были бы следующими:
- ICE Grid, которая имеет привязки для .Net и других распространенных языков
- Скорость, которая является версией Microsoft Oracle (Tangersol) Coherence
- Предстоящее предложение HPC от Microsoft Вычислить сервер кластеров
- Data Synapse Grid Server
Ответ 6
Я знаю, что это старый поток. Но, размещая здесь все равно. Проверьте этот сеанс pdc:
Ответ 7
также проверьте проект на codeplex, который является учебным пособием по распараллеливанию с использованием .net между прочим: