Я записал многопоточную программу Java для решения смущающе параллельной проблемы, таким образом, что она использует все бесплатные циклы ЦП на многоядерном ЦП. Я хотел бы осуществить рефакторинг свое решение так, чтобы оно могло работать на нескольких узлах, все еще сохраняя большинство кода я уже записал.
Я использовал MPI с C в прошлом и был сказан, что это - "корректный" способ решить проблему максимизации циклов ЦП, но я также знаю о других параллельных платформах в Java как RMI и задаюсь вопросом, хороши ли они так же.
Существует ли хороший способ обработать мультиузел и многоядерный параллелизм в Java, где главная цель состоит в том, чтобы усилить большинство циклов ЦП как возможное из кластера?
Править: Я получаю впечатление, что нет никакого простого способа обработать этот материал. Я не удивлен, но я надеялся. :)
Зависит от того, чем вы занимаетесь, и от вашего бюджета, на который вы, возможно, захотите обратить внимание (в произвольном порядке)
См. также:
Также рассмотрите Apache Hadoop, он использует MapReduce и хорошо подходит для многих параллельных решений.
Вы можете попробовать Hazelcast . Имеет распределенный ExecutorService. Это должно позволить вам добавлять в службу задачи, которые выполняются на любом количестве узлов.