как эффективно распределить работу по рабочим в java - PullRequest
0 голосов
/ 05 мая 2018

Здравствуйте, я довольно новичок во всей идее сокета Java.

У меня есть программа «Мастер-работник», в которой мастер должен распределять работу, в моем случае очень большую матрицу, среди моих работников на основе их доступной памяти.

В основном, Мастер должен распространить Матрицу среди Рабочих, чтобы извлечь информацию. Матрица должна быть разбита на множество более мелких частей, которые затем должны получить рабочие, чтобы выполнить на них вычисления.

Мой подход к этому состоял в том, чтобы рабочие отправляли свою свободную память, а затем сохраняли свои ObjectInputStream и ObjectOutputStream в 2 массива, которые я затем сортировал, используя эту переменную свободной памяти, чтобы сравнить их.

Я точно знаю, что должен быть намного более чистый и эффективный способ сделать это, но с моими текущими знаниями о том, как работают потоки и сокеты в Java, я не смог найти лучшего решения моей проблемы.

Если вы можете порекомендовать что-нибудь получше или хотя бы какое-нибудь руководство, я был бы признателен.

Заранее спасибо.

Сакис

РЕДАКТИРОВАТЬ: Я отредактировал свой вопрос, чтобы быть более понятным, я надеюсь, что это лучше :)

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете попробовать алгоритм Mapreduce, вот объяснение:

https://www.google.es/amp/s/www.journaldev.com/8848/mapreduce-algorithm-example/amp

...