Я ищу каркас (с открытым исходным кодом) для распределенных вычислений для .Net / Mono, который не просто основан на задачах, но поддерживает постоянство распределенных задач.
Данный проект представляет собой сложную системную симуляцию, которая должна быть распределена на более мелкие независимые «субимуляции». Эти субимуляции будут продолжать работать в течение длительного времени и будут через определенные промежутки времени принимать и отправлять данные в Master, где представление с совокупными результатами обновляется и представляется пользователю.
Таким образом, работа, подлежащая распределению (подсимуляции), является состоящей из состояний и должна оставаться существующей (включенной или отключенной) на рабочих в течение длительного времени в течение нескольких сеансов. Это потребует локального постоянного хранения (сериализации) от работника (субимуляции достаточно велики, и неэффективно будет отправлять их туда и обратно Мастеру для каждого сеанса).
Платформа должна обеспечивать прозрачность в отношении фактической базовой сети или облачной платформы, которая используется, позволяя использовать различные реализации (например, локальный кластер, Интернет, один компьютер, сторонние облачные платформы).
Было бы неплохо, если бы на уровне модели / моделирования производительность можно было настраивать в зависимости от задержки в сети (например, путем регулировки частоты и степени детализации данных, которые отправляются между рабочими и мастером).
Я посмотрел на NGrid, но это кажется незаконченным и устаревшим. Я также посмотрел на некоторых других обычных подозреваемых (MPAPI, MPI.NET, Alchemi и т. Д.), Но, насколько я могу судить, они не отвечают требованиям. Если такой структуры не существует, меня интересуют советы по разработке такой структуры.