Многоузловой параллелизм в Java - PullRequest
18 голосов
/ 03 августа 2010

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

В прошлом я использовал MPI с C, и мне сказали, что это «правильный» способ решения проблемы максимизации циклов ЦП, но я также знаю о других параллельных средах в Java, таких как RMI, и удивляюсь, если они так же хорошо.

Есть ли хороший способ обработки многоузлового и многоядерного параллелизма в Java, где основная цель - максимально использовать максимальное количество циклов ЦП вне кластера?

Редактировать : У меня сложилось впечатление, что нет простого способа справиться с этим. Я не удивлен, но я надеялся. :)

Ответы [ 4 ]

10 голосов
/ 04 августа 2010

Зависит от того, что вы делаете, и от вашего бюджета, на который вы можете посмотреть (в произвольном порядке)

См. Также:

7 голосов
/ 04 августа 2010

Вы можете попробовать Hazelcast . Имеет распределенный сервис ExecutorService. Это должно позволить вам добавлять задачи в службу, которые выполняются на любом количестве узлов.

5 голосов
/ 03 августа 2010

JMS - хорошее место для старта.

4 голосов
/ 04 августа 2010

Также рассмотрим Apache Hadoop , он использует MapReduce и хорошо подходит для многих параллельных решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...