У меня есть цикл for, который я хочу распараллелить с чем-то вроде PLINQ's Parallel.ForEach ().
Ключевым моментом здесь является то, что библиотека C ++, которую я вызываю для выполнения вычислений, определенно не является поточно-ориентированной, поэтому любые планы по распараллеливанию этой необходимости необходимо выполнять для нескольких процессов.
Я думал об использовании WCF для создания «распределительного» процесса, к которому «клиент» и несколько «калькуляторов» могли бы одновременно подключать и добавлять / удалять элементы в / из очереди, а затем «калькулятор» отправлял результаты напрямую вернуться к клиенту, который мог бы обновлять графический интерфейс по мере его получения. Эта архитектура позволила бы мне подключить к сети столько «калькуляторов», сколько и процессоров, и, как я вижу, даже подключить их к нескольким компьютерам, создав потенциальную ферму вычислительной мощности, которой могли бы делиться все клиенты.
Мне просто интересно, имел ли кто-нибудь опыт в этом деле, и существуют ли уже существующие блоки приложений или инфраструктуры, которые я могу использовать для создания этого для меня. PLINQ делает это в процессе. там как DPLINQ (распределенный) или что-то?
Также, если этого не существует, кто-нибудь хочет высказать мнение о моей предложенной архитектуре? Есть ли очевидные подводные камни? Кто-нибудь думает, что это сработает!?!?!?