Ответ 1
JMS - хорошее место для начала.
Я написал многопоточную Java-программу для решения неловко параллельной проблемы, так что он использует все свободные циклы процессора на многоядерном процессоре. Я хотел бы реорганизовать мое решение, чтобы он мог работать на нескольких узлах, сохраняя при этом большую часть кода, который я уже написал.
Я использовал MPI с C в прошлом, и мне сказали, что это "правильный" способ решить проблему максимизации циклов процессора, но я также знаю о других параллельных структурах на Java, таких как RMI, и задаюсь вопросом, так же хороши.
Есть ли хороший способ обработки multi- node и многоядерного concurrency в Java, где основной целью является максимально возможное использование большинства циклов процессора из кластера?
Изменить. У меня создается впечатление, что нет простого способа справиться с этим. Я не удивлен, но я надеялся.:)
JMS - хорошее место для начала.
В зависимости от того, что вы делаете, и вашего бюджета, который вы, возможно, захотите изучить (в определенном порядке)
Также смотрите:
Вы можете попробовать Hazelcast. Он имеет распределенный ExecutorService. Это должно позволить вам добавлять задачи к службе, которая проходит через любое количество узлов.
Также рассмотрите Apache Hadoop, он использует MapReduce и хорошо подходит для многих параллельных решений.