Precedente :: Successivo |
Autore |
Messaggio |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 21 Dic 2010 17:17 Oggetto: Informazioni parallelizzazione cluster |
|
|
Salve a tutti,
ho bisogno di creare un framework che mi permetta di suddividere il carico di lavoro di un qualunque programma(scritto in un qualunque linguaggio)su un cluster. è necessario suddividere il lavoro su piu processori senza che l'utente abbia necessità di imparare un nuovo linguaggio di comunicazione tra i nodi e in maniera trasparente, cioè come se lavorassimo su un unica macchina.
per adesso la configurazione attuale è:
Il sistema è composto da 4 macchine Dell Power Edge R410 con 2 Intel Xeon E5530 (8 core a 2.4Ghz, 8M Chache) e 24 GB di Ram e da una SAN Dell Equal Logic PS4000XV (16 HD 600GB) con 9.6TB di capacità di memorizzazione .
Tre macchine monta sistemi operativo Microsoft Windows Server 2008 R2 Enterprise e una Linux Fedora 12 (Constantine).
La caratteristica essenziale è la trasparenza, ovvero programmare come se si trattasse di una sola macchina.
Quale linguaggio è il migliore per un discorso del genere?(io pensavo Java con i thread)
Secondo voi in giro ci sono software che fanno già cose simili?
Come mi consigliate di procedere?
Considerate che sono un novizio del clustering e di tutto ciò che vi ruota attorno.
Ringrazio chiunque abbia informazioni in merito per la disponibilità |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 21 Dic 2010 18:30 Oggetto: Re: Informazioni parallelizzazione cluster |
|
|
premetto che non ho molte idee, ma mi incuriosisce:
robynho85 ha scritto: | [...] mi permetta di suddividere il carico di lavoro di un qualunque programma(scritto in un qualunque linguaggio)su un cluster |
intendi dire che vorresti fare girare qualunque programma che già esiste sul tuo cluster oppure intendi che svilupperesti il programma in qualunque linguaggio, a patto che sia possibile farlo girare nel framework che andrai ad appoggiare sul cluster? |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 26 Dic 2010 21:20 Oggetto: |
|
|
Intendo dire che avendo un qualunque programma(Ad esempio un codice java) sia possibile introdurlo nel framework che poi suddivida il carico di lavoro sui 16 processori totali.
Esiste qualcosa che mi possa aiutare in tal senso? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 27 Dic 2010 09:57 Oggetto: |
|
|
robynho85 ha scritto: | Intendo dire che avendo un qualunque programma(Ad esempio un codice java) sia possibile introdurlo nel framework che poi suddivida il carico di lavoro sui 16 processori totali.
Esiste qualcosa che mi possa aiutare in tal senso? |
In teoria quando tu hai un cluster è il sistema operativo che si preoccupa della cosa o meglio, i vari tools di gestione tra le varie, ti faranno gestire pure quell'aspetto. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 27 Dic 2010 14:28 Oggetto: |
|
|
però suddividere il carico di lavoro su più processori non è la stessa cosa se i processori sono sulla stessa macchina o no... per il primo caso è banale, tutti i sistemi operativi moderni supportano macchine a più processori (o a più core, o con più processori multicore) ma per la seconda cosa... parliamo di cloud computing...
prova a leggere qualcosa riguardo Vertebra, potrebbe fare al caso tuo... |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 27 Dic 2010 16:22 Oggetto: |
|
|
Si infatti facevo riferimento al secondo caso...Io mi trovo sulla prima delle 4 macchine ognuna delle quali con 4 processori
Effettivamente sulla macchina su cui mi trovo la suddivisione del carico di lavoro avviene ma naturalmente non sulle altre tre.
Mi scuso se sono stato poco chiaro...Grazie per aver menzionato Vertebra, non lo conoscevo e sto vedendo ora di cosa si occupa |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 27 Dic 2010 20:56 Oggetto: |
|
|
Beh, ma io parlavo comunque di sistemi cluster, quindi tante macchine che lavorano come una.
Adesso io tools non ne ho in mente, qui si finisce troppo in sistemistica che non è propriamente il mio mestiere ma credo che tutti i sistemi operativi server permettano di configurarsi come di cluster (almeno al momento dell'installazione)...
Io non ho idea di come scrivere quello che chiedi, ma sicuramente non potrai farlo da solo. |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 28 Dic 2010 03:12 Oggetto: |
|
|
freemind ha scritto: | Io non ho idea di come scrivere quello che chiedi, ma sicuramente non potrai farlo da solo. |
Scusami cosa intendi?Che non posso essere in grado di realizzare un framework, ad esempio in java, che possa fare ciò di cui ho bisogno? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 28 Dic 2010 12:29 Oggetto: |
|
|
robynho85 ha scritto: | freemind ha scritto: | Io non ho idea di come scrivere quello che chiedi, ma sicuramente non potrai farlo da solo. |
Scusami cosa intendi?Che non posso essere in grado di realizzare un framework, ad esempio in java, che possa fare ciò di cui ho bisogno? |
Sì ma non per demenza e incapacità tua ma per la complessità del lavoro; da solo o ci metti una vita (lunga) o viene fuori una cazzata.
Questo vale per te, per me e per tutti.
Se poi sei veramente un guru allora rimangio quel che ho scritto; era una pura analisi obiettiva del problema, tutto lì; non volevo dar del demente a nessuno, sia chiaro. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 28 Dic 2010 12:55 Oggetto: |
|
|
più che altro secondo me nessuno dei sistemi operativi attuali ti fornisce già una piattaforma che ti permetta di distribuire carico di lavoro tra i processori di un cluster... certo, a meno di non parlare di load balancing ma non è la stessa cosa che tu chiedi, mi sembra di avere inteso... |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 28 Dic 2010 14:23 Oggetto: |
|
|
freemind ha scritto: | Sì ma non per demenza e incapacità tua ma per la complessità del lavoro; da solo o ci metti una vita (lunga) o viene fuori una cazzata.
Questo vale per te, per me e per tutti.
Se poi sei veramente un guru allora rimangio quel che ho scritto; era una pura analisi obiettiva del problema, tutto lì; non volevo dar del demente a nessuno, sia chiaro. |
Tranquillo avevo capito bene e credo tu abbia ragione...No dell'argomento sono tutt'altro che un guru. Mi intendo di programmazione in java ma tutto li.
SverX ha scritto: |
più che altro secondo me nessuno dei sistemi operativi attuali ti fornisce già una piattaforma che ti permetta di distribuire carico di lavoro tra i processori di un cluster... certo, a meno di non parlare di load balancing ma non è la stessa cosa che tu chiedi, mi sembra di avere inteso... |
Il problema è che il mio professore mi ha richiesto un framework che praticamente prende il programma appena passato da un utente in java e ne suddivide il lavoro(o thread) sui processori. Scusatemi se mi ripeto ma era per chiarire ulteriormente
Grazie comunque per il supporto che mi state dando.Sto evitando mesi di lavoro inutile se è come dite voi |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 28 Dic 2010 15:43 Oggetto: |
|
|
dividere il lavoro su più processori dello stesso server è assolutamente lineare se scrivi codice multithreaded, a prescindere dal linguaggio di programmazione (a me capitò anni fa di fare un lavoro di programmazione concorrente in C++). Quello che purtroppo non ti so suggerire è se esiste un cloud framework per java. Una rapida ricerca in Google suggerisce GridGain, prova a vedere di che si tratta... |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 29 Dic 2010 00:01 Oggetto: |
|
|
Vi informo che nella sezione software ho inserito un nuovo topic chiedendo informazioni su software specifici che facciano il load balancing. Secondo i vostri suggerimenti mi sembra la strada migliore da seguire.
Vi informo nel caso qualcuno di voi fosse interessato a seguire anche l'altra discussione per saperne di piu.
Continuerò a scrivere qui i possibili sviluppi in ambito di programmazione di un possibile software. Grazie mille a tutti cmq |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 29 Dic 2010 01:26 Oggetto: |
|
|
Ok ma ocio che il load balancing serve più che altro a distribuire le richieste remote su più server.
Oddio, se si riuscisse a riformulare il tuo problema in questi termini allora si potrebbe pensare a questa cosa. |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 29 Dic 2010 14:34 Oggetto: |
|
|
Aspetta allora sto facendo un pò di confusione...Su un altro forum mi hanno detto che è la stessa cosa.
Esiste un termine per definire la distribuzione di calcolo in parallelo su processori come devo fare io?
Grazie mille del chiarimento...FONDAMENTALE  |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 29 Dic 2010 16:50 Oggetto: |
|
|
sono concetti simili ma non è propriamente la stessa cosa
ad esempio un load balance può essere un sito web che per evitare di essere troppo carico per via dei tanti utenti che chiedono le pagine allora le redirige su server differenti, a volte in modo completamente trasparente per l'utente (che pensa di trovarsi davanti ad un server e basta) e a volte in modo esplicito, prova questo link ad esempio e noterai che ogni volta il nome del server si arricchisce di un numero.
Se sta cercando qualcosa di questo tipo potrebbe bastarti un proxy HTTP tipo Apache mod_proxy per dire. Invece se proprio vuoi che i tuoi server stiano lì ad aspettare lotti d'elaborazione (alla 'seti@home' per intenderci) non saprei che software consigliarti, e sarà anche difficile trovarne uno che funzioni su piattaforme diverse. |
|
Top |
|
 |
robynho85 Mortale devoto

Registrato: 21/12/10 16:40 Messaggi: 11
|
Inviato: 29 Dic 2010 21:00 Oggetto: |
|
|
SverX ha scritto: | Invece se proprio vuoi che i tuoi server stiano lì ad aspettare lotti d'elaborazione (alla 'seti@home' per intenderci) |
Mi serve piu una cosa come questa...Cerco di spiegarmi meglio:
Il mio concetto è semplice...Io ho 4 macchine ognuna con 4 processori che hanno ognuna un OS diverso.
Interfacciandomi su una delle 4 macchine devo eseguire un qualunque programma(java,ruby,etc) e parallelizzarlo sui 16 processori totali senza che l'utente debba imparare alcun linguaggio o inviare segnali tra le macchine(cioè vedere il sistema in maniera trasparente).
Esiste qualcosa che mi possa aiutare?
Spero di essere stato ancora piu chiaro e non ridondante...Grazie mille a tutti |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 30 Dic 2010 12:36 Oggetto: |
|
|
Prova a guardare il Sun Grid Engine. Potrebbe essere la cosa più simile a quello che cerchi, soprattutto dato che gira su vari sistemi operativi. |
|
Top |
|
 |
cuccagna Mortale devoto

Registrato: 16/04/10 13:28 Messaggi: 10
|
Inviato: 19 Feb 2011 02:11 Oggetto: |
|
|
SverX ha scritto: | più che altro secondo me nessuno dei sistemi operativi attuali ti fornisce già una piattaforma che ti permetta di distribuire carico di lavoro tra i processori di un cluster... certo, a meno di non parlare di load balancing ma non è la stessa cosa che tu chiedi, mi sembra di avere inteso... |
Esiste il sistema operativo Z/OS di IBM che permette tramite il Parallel Symplex di realizzare un cluster di macchine(fino a 32) con lo stesso sistema operativo e tramite il workload manager(componente dello Z/OS) gestire il carico di lavoro. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 21 Feb 2011 11:22 Oggetto: |
|
|
cuccagna ha scritto: | Esiste il sistema operativo Z/OS di IBM che permette tramite il Parallel Symplex di realizzare un cluster di macchine(fino a 32) con lo stesso sistema operativo e tramite il workload manager(componente dello Z/OS) gestire il carico di lavoro. |
Molto interessante. Credo sia però una soluzione solo mainframe, c'è qualcosa di simile per l'ambiente distribuito, che tu sappia? |
|
Top |
|
 |
|