Какие-нибудь хорошие образцы для распределенного параллелизма? - PullRequest
0 голосов
/ 14 февраля 2011

У меня есть цикл for, который я хочу распараллелить с чем-то вроде PLINQ's Parallel.ForEach ().

Ключевым моментом здесь является то, что библиотека C ++, которую я вызываю для выполнения вычислений, определенно не является поточно-ориентированной, поэтому любые планы по распараллеливанию этой необходимости необходимо выполнять для нескольких процессов.

Я думал об использовании WCF для создания «распределительного» процесса, к которому «клиент» и несколько «калькуляторов» могли бы одновременно подключать и добавлять / удалять элементы в / из очереди, а затем «калькулятор» отправлял результаты напрямую вернуться к клиенту, который мог бы обновлять графический интерфейс по мере его получения. Эта архитектура позволила бы мне подключить к сети столько «калькуляторов», сколько и процессоров, и, как я вижу, даже подключить их к нескольким компьютерам, создав потенциальную ферму вычислительной мощности, которой могли бы делиться все клиенты.

Мне просто интересно, имел ли кто-нибудь опыт в этом деле, и существуют ли уже существующие блоки приложений или инфраструктуры, которые я могу использовать для создания этого для меня. PLINQ делает это в процессе. там как DPLINQ (распределенный) или что-то?

Также, если этого не существует, кто-нибудь хочет высказать мнение о моей предложенной архитектуре? Есть ли очевидные подводные камни? Кто-нибудь думает, что это сработает!?!?!?

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Похоже, вы могли бы искать Дриада .Сейчас это исследовательский проект Microsoft, но у них есть «академическая версия».Насколько я понимаю, они также находятся в процессе улучшения его производства (возможно, какая-то интеграция с Azure) для RTM где-то ближе к концу 2011 года. Мэри Джо Фоули рассказывает больше об этом здесь .

2 голосов
/ 25 февраля 2011

Долгосрочный стандарт для управления / диспетчеризации распределенной работы - MPI .Я когда-либо использовал его только в C ++, но существуют реализации из многих языков.Быстрый Google предполагает, что MPI.Net может быть хорошей реализацией для .Net!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...