Сведения о вопросе

FELL

16:03, 1st July, 2020

Теги

Каковы в настоящее время наилучшие варианты распараллеливания приложения CPU-intensive .NET?

Просмотров: 393   Ответов: 5

Это открытый вопрос. Какие подходы я должен рассмотреть?



  Сведения об ответе

P_S_S

18:03, 1st July, 2020

Ваш первый шаг - найти и понять параллелизм в вашей проблеме. Это действительно легко написать многопоточный код, который работает не лучше, чем однопоточный код, который он заменяет. "Patterns for Parallel Programming" (Amazon) - это прекрасное введение в ключевые понятия.

Как только у вас будет работоспособный дизайн, начните читать статьи в теме "Concurrency" в архиве журнала MSDN (ссылка) , особенно все, что написано Джеффом Рихтером. Они дадут вам гайки и болты на резьбовых конструкциях, специфичных для Windows и .NET. (Многопоточный раздел в книге Рихтера "CLR через C# (Amazon)" короткий, но очень проницательный - настоятельно рекомендуется.)


  Сведения об ответе

dump

18:03, 1st July, 2020

Существует несколько параллельных расширений для .NET, которые в настоящее время тестируются и доступны в Центре разработчиков параллельных вычислений Microsoft . У них есть несколько интересных элементов, которые можно было бы ожидать, как Параллель foreach и параллельная версия LINQ под названием PLINQ. Некоторые из лучших сведений о расширениях находятся на канале 9 .


  Сведения об ответе

SSESION

18:03, 1st July, 2020

Я думаю, что мы могли бы также включить не -.NET-конкретные подходы к параллельной обработке, если они являются одними из лучших вариантов для рассмотрения.


  Сведения об ответе

SILA

18:03, 1st July, 2020

@Larsenal

Если вы хотите ветвиться за пределами .NET, было много дискуссий о потоковых строительных блоках Intel, которые являются параллельной библиотекой для C++.


  Сведения об ответе

padenie

18:03, 1st July, 2020

Есть много вариантов, и лучшее решение будет зависеть от характера проблемы, которую вы пытаетесь решить. Если вы пытаетесь решить неприятно параллельную задачу, то разделение и распараллеливание задач будет тривиальным. В этом случае проблема будет заключаться в распространении и управлении используемыми данными.

Некоторые предложения были бы:


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться