Я сделал несколько проектов в этом отношении, но в конце они всегда были индивидуальными решениями, которые в основном
- разделил проблему в сетках
- выполнил обработку в каждом отдельном узле и скопировал результат во временную таблицу / хранилище данных
- объединить все решения в одну таблицу результатов и опционально обработать граничные условия. Обработка граничных условий требовалась только в тех случаях, когда объекты необходимо сшивать или массировать (например, при построении топологии распределенным способом необходимо, чтобы граничные объекты были привязаны).
Как ни странно, каждый раз, когда я решал проблему такого рода, я использовал разные технологии, в основном потому, что это была причуда времени. Наконец, вам нужна библиотека передачи сообщений, которая имеет менеджер очередей заданий, порождает процессы на разных узлах и имеет некоторый механизм синхронизации ( Semapahore , Barrier и т. Д.) И некоторый способ обработки ошибок и повторных попыток. Все проекты, которые я упоминаю ниже, имеют эти вещи.
Для гео я использовал (в хронологическом порядке):
(старая школа)
(новее)
Есть несколько других, которые люди используют.
В конце концов, любой из них может сократить его (хотя и немного по-другому), поэтому он сводится к выбору того, в котором есть сообщество, которое полезно.
Кроме того, на каждом узле вам придется использовать библиотеку для выполнения геометрических операций ГИС. Рекомендация, которую следует использовать, будет основана на языке, который вы предпочитаете кодировать. Но я уверен, что варианты, которые вам предложит большинство людей, будут:
Или какая-то другая библиотека, которая служит оберткой для одного из них.