Платформа для распределенных вычислений для .Net / Mono, которая поддерживает постоянство распределенных задач - PullRequest
0 голосов
/ 01 июля 2010

Я ищу каркас (с открытым исходным кодом) для распределенных вычислений для .Net / Mono, который не просто основан на задачах, но поддерживает постоянство распределенных задач.

Данный проект представляет собой сложную системную симуляцию, которая должна быть распределена на более мелкие независимые «субимуляции». Эти субимуляции будут продолжать работать в течение длительного времени и будут через определенные промежутки времени принимать и отправлять данные в Master, где представление с совокупными результатами обновляется и представляется пользователю.

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

Платформа должна обеспечивать прозрачность в отношении фактической базовой сети или облачной платформы, которая используется, позволяя использовать различные реализации (например, локальный кластер, Интернет, один компьютер, сторонние облачные платформы).

Было бы неплохо, если бы на уровне модели / моделирования производительность можно было настраивать в зависимости от задержки в сети (например, путем регулировки частоты и степени детализации данных, которые отправляются между рабочими и мастером).

Я посмотрел на NGrid, но это кажется незаконченным и устаревшим. Я также посмотрел на некоторых других обычных подозреваемых (MPAPI, MPI.NET, Alchemi и т. Д.), Но, насколько я могу судить, они не отвечают требованиям. Если такой структуры не существует, меня интересуют советы по разработке такой структуры.

Ответы [ 2 ]

1 голос
/ 17 августа 2010

Вы смотрели на структуру Microsoft DSS / CCR? Это SOA, Concurrent Framework, изначально разработанный на платформе робототехники. Ранее мы использовали его для создания симулятора трафика. Это не открыто само по себе, но это не дорого, и я считаю, бесплатно для научных кругов.

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

Hadoop - это еще одна альтернатива и, вероятно, то, что я бы порекомендовал. Запросы хранения, которые вы сделали, более жизнеспособны с этим решением с использованием файловой системы hadoop.

http://wiki.apache.org/hadoop/HadoopStreaming Существует ли .NET-эквивалент Apache Hadoop?

Также в приведенном выше разделе SO представлена ​​технология myspace. http://code.google.com/p/qizmt/

0 голосов
/ 19 июля 2010

Посмотрите на Gearman (http://gearman.org/).. Он удовлетворяет большинству упомянутых вами требований. Основная проблема Gearman заключается в том, что сервер должен быть размещен на компьютере с Linux (или вы используете реализацию PEARL или Python сервера). Узлы могут работать в любой среде / платформе.

...