2010-08-03 4 views
18

J'ai écrit un programme Java multithread pour résoudre un problème parallèle embarrassant de sorte qu'il utilise tous les cycles d'UC libres sur un processeur multi-cœurs. Je voudrais refactoriser ma solution afin qu'elle puisse fonctionner sur plusieurs nœuds tout en conservant la majorité du code que j'ai déjà écrit. J'ai utilisé MPI avec C dans le passé et on m'a dit que c'est la façon "correcte" de résoudre le problème de la maximisation des cycles CPU, mais je suis également conscient d'autres frameworks concurrents en Java comme RMI et je me demande si ils sont aussi bons. Existe-t-il un bon moyen de gérer la simultanéité multi-nœuds et multi-core dans Java, où l'objectif principal est de tirer le meilleur parti possible des cycles CPU hors du cluster?Concurrence multi-nœuds en Java

Modifier: J'ai l'impression qu'il n'y a pas de moyen facile de gérer ce genre de choses. Je ne suis pas surpris, mais j'espérais. :)

Répondre

5

JMS est un bon point de départ.

+0

oui tout MQ qui supporte l'équilibrage de la charge du client, qui devrait être le plus – oluies

7

Vous pouvez essayer Hazelcast. Il a un ExecutorService distribué. Cela devrait vous permettre d'ajouter des tâches à un service qui s'exécute sur un nombre quelconque de nœuds.

10

Cela dépend de ce que vous faites et votre budget, vous voudrez peut-être examiner (sans ordre particulier)

Voir aussi:

+1

+1, nous utilisons Terracotta et cela fonctionne bien – Bozho

4

Voir également Apache Hadoop, il utilise MapReduce et est bien adapté pour de nombreuses solutions parallèles.

Questions connexes