2010-08-03 14 views
18

Ho scritto un programma Java multi-thread per risolvere un problema parallelo imbarazzante in modo che utilizzi tutti i cicli liberi della CPU di una CPU multi-core. Mi piacerebbe refactoring la mia soluzione in modo che possa essere eseguito su più nodi pur mantenendo la maggior parte del codice che ho già scritto.Concorrenza multi-nodo in Java

Ho usato MPI con C in passato e mi è stato detto che è il modo "corretto" per risolvere il problema di massimizzare i cicli della CPU, ma sono anche a conoscenza di altri framework concorrenti in Java come RMI e mi chiedo se sono altrettanto buoni.

C'è un buon modo per gestire la concorrenza multi-nodo e multi-core in Java, dove l'obiettivo principale è quello di sfruttare il maggior numero possibile di cicli di CPU dal cluster?

Modifica: ho l'impressione che non ci sia un modo semplice per gestire questa roba. Non sono sorpreso, ma speravo. :)

risposta

5

JMS è un buon punto di partenza.

+0

sì qualsiasi MQ che supporta il bilanciamento del carico del client, che dovrebbe essere più – oluies

7

Si può provare Hazelcast. Ha un ExecutorService distribuito. Ciò dovrebbe consentire di aggiungere attività a un servizio eseguito su un numero qualsiasi di nodi.

10

dipende da ciò che si sta facendo e il budget si potrebbe voler esaminare (in nessun ordine particolare)

vedi anche:

+1

+1, stiamo usando Terracotta e funziona bene – Bozho

4

Includi anche Apache Hadoop, utilizza MapReduce ed è adatto per molte soluzioni parallele.

Problemi correlati