I cluster di computer

La disponibilità di grande potenza di calcolo e un fattore fondamentale in molti settori della ricerca scientifica, ed assume un ruolo sempre piu importante anche in vari settori applicativi che vanno dalla progettazione industriale, ai grandi database ed ai server Internet di ultima generazione.

Per le esigenze di calcolo di svariate tipologie di applicazioni esiste oggi un'interessante alternativa ai costosi supercomputer paralleli: i cluster di computer. Queste architetture permettono di avere potenza di calcolo in modo flessibile, scalabile e soprattutto molto economico.

  • Cos'è la programmazione parallela?
  • Che cosa sono i cluster di computer?
  • Velocità e potenza per il calcolo scientifico
  • I cluster: una questione di costi
  • La forza della cooperazione
  • Applicazioni al calcolo scientifico
  •  

    Aethia - Cluster, high performance computing, bioinformatica, open-source.

    Cos'è la programmazione parallela?

    Con la programmazione parallela è possibile suddividere un programma in più processi che lavorano su processori differenti e che scambiano dati in cooperazione. In questo modo si possono sfruttare parallelamente le risorse di memoria e di capacità di calcolo di più computer, diminuendo notevolmente i tempi di esecuzione dei programmi.

    Per saperne di pià... (Introduction to Parallel Computing, dal sito del LLNL)

    Che cosa sono i cluster di computer?

    Un cluster di computer è un gruppo di personal computer, server o workstation interconnessi da una rete veloce, i cui nodi non hanno nè video nè tastiera propri, ma dispongono di processori potenti e di molta memoria RAM. I computer vengono poi equipaggiati con il sistema operativo Linux e con strumenti standard per la programmazione parallela (come ad esempio la libreria MPI), utilizzati anche dai supercomputer.
    I principali vantaggi dei cluster di computer rispetto ai supercomputer commerciali sono:

    • Economicità:
      da 5 a 10-15 volte più economici rispetto alle workstation ed ai supercomputer commerciali.
    • Scalabilità:
      si tratta di un'architettura estremamente flessibile, che permette di realizzare configurazioni da poche unità (3 o 4) fino a parecchie decine (64 - 128) con un investimento pressochè proporzionale.
    • Facilità di aggiornamento e manutenzione:
      un cluster può essere mantenuto sempre attuale aggiornando i suoi componenti con l'hardware facilmente reperibile sul mercato dei PC, e nello stesso modo può essere riparato.
    • Piattaforma parallela standard:
      le librerie ed i software per la programmazione parallela disponibili per i cluster sono gli stessi che si trovano sui supercomputer e le workstation commerciali (MPI ad esempio). I codici di calcolo possono quindi essere compilati senza modifiche su entrambe le architetture.
    • Software Open Source:
      la maggior parte del software utilizzato nei cluster è liberamente disponibile, estremamente testato ed affidabile, oltre che aggiornato continuamente.

    Velocità e potenza per il calcolo scientifico

    Tipicamente le simulazioni numeriche richiedono notevoli risorse di calcolo e di memoria e spesso, malgrado la tecnologia evolva rapidamente in questo ambito, un solo computer può non essere sufficiente. Si è allora costretti a semplificare il modello della simulazione in vari modi, a seconda delle limitazioni delle risorse computazionali che si hanno a disposizione.
    I cluster di computer e la programmazione parallela vengono incontro a queste esigenze e consentono di velocizzare notevolmente quelle simulazioni che richiedono tempi eccessivi su un singolo computer. Inoltre rendono disponibile un'architettura più potente, flessibile e scalabile, in grado di adattare le proprie capacità computazionali e di memoria alle esigenze della singola applicazione.

    I cluster: una questione di costi

    I cluster di computer sono una tecnologia relativamente recente, che intende applicare le soluzioni tipiche dei supercalcolatori all'hardware comune, abbattendo notevolmente i costi. Il compito da svolgere sulla macchina parallela viene ripartito tra le varie unità di calcolo, e la comunicazione tra i processori avviene tramite una rete locale.
    Un cluster è a tutti gli effetti una macchina parallela e può essere programmato con le stesse tecniche dei supercomputer. Il vantaggio che viene offerto è l'estrema convenienza dei componenti hardware, che rendono il cluster capace di ottenere grandi prestazioni a costi più contenuti. A ciò si aggiunge la notevole scalabilità, che permette di realizzare cluster che vanno da pochi computer sino a centinaia di unità in grado di competere con i supercomputer paralleli di fascia media.
    A parità di prestazioni con i supercalcolatori, i cluster possono raggiungere rapporti di prezzo da 5 a 10 volte inferiori.

    La forza della cooperazione

    La forza dei cluster risiede nella capacità di far collaborare più unità di calcolo per risolvere un problema complesso, suddividendolo in più parti da assegnare opportunamente ai vari processori. Le diverse unità di calcolo possono poi scambiarsi reciprocamente dati durante il calcolo, in modo da rendere coerente la simulazione. Queste caratteristiche evidenziano come i cluster si basino su una filosofia di collaborazione intelligente, che permette di avere a disposizione una notevole potenza di calcolo per le elaborazioni scientifiche.

    Applicazioni al calcolo scientifico

    Alcune applicazioni per le quali i cluster di computer e la programmazione parallela vengono utilizzati in campo scientifico sono:

    • Chimica computazionale
    • Biologia molecolare
    • Fisica delle alte energie
    • Meteorologia
    • Astrofisica
    • Fluidodinamica
    • Scienza dei materiali
    • Economia


    Contattaci per saperne di più sull'utilizzo del calcolo parallelo in un particolare settore.



    Sito web realizzato da Aethia