2014-02-13 2 views
2

Я разрабатываю программу, которая использует сторонний электрический решатель. Я хочу выполнить monte carlo симуляции на больших электрических сетях и большую часть времени программа (моя) занимает часы. Из-за этого я думал, что если я создам клиент на другом компьютере, я мог бы позвонить с моего компьютера (и наоборот), у меня был бы хороший распределенный симулятор.Лучший способ разработки распределенного моделирования

Поскольку мне не хватает знаний, я хотел бы знать, что является лучшим способом (если вообще возможно) «инсталлировать» программу, установленную на другом компьютере в локальной сети, для выполнения конкретной задачи: имитировать файл, который я отправьте и верните результаты назад. Идея состоит в том, чтобы вызвать решателя в let 10 компьютеров за раз и собрать результаты асинхронно.

Язык, который я использую, является C#.

Я надеюсь, что мой вопрос достаточно ясен.

+0

Возможный дубликат [Передача данных на сервер для вычислений] (http://stackoverflow.com/questions/21578993/passing-data-to-server-for-comput) – Samuel

+0

См. Мой комментарий к дублирующей теме для подсказки как подойти к задаче. – Samuel

+0

http://stackoverflow.com/questions/21578993/passing-data-to-server-for-comput описывает обмен данными 1 к 1, то, что я здесь описываю, это n-й обмен данными, thre - n-1 разности –

ответ

0

Проще всего иметь общий диск в сети, к которому все компьютеры имеют доступ. Затем ваше приложение сохраняет входной файл (или один входной файл на машину, зависит от того, как вы хотите это сделать) на общем диске, и ваше приложение запускает другое приложение удаленно на каждом клиенте. Он контролирует каждый, который запускается для статуса выхода. После того, как все они вышли, он принимает выходные файлы и объединяет их и обрабатывает данные. Работа выполнена. Самый простой способ «удаленного процесса», вероятно, через psexec, который вы можете скачать с technet, мы использовали его очень успешно и очень просто в использовании. В двух первых ответах How to execute process on remote machine, in C# есть и другие хорошие идеи: я думаю, вы найдете их более накладными расходами (дольше для реализации), но в долгосрочной перспективе вы получите больше энергии.

Смежные вопросы