# Beowulf (computer)

In informatica Beowulf (dal nome del poema epico Beowulf) è un sistema di calcolo parallelo basato su cluster di personal computer collegati tramite reti informatiche standard, senza l'utilizzo di apparecchiature sviluppate esplicitamente per il calcolo parallelo.
Inizialmente venne sviluppato da Donald Becker y Thomas Sterling alla NASA, ma in seguito lo sviluppo venne continuato da una comunità internazionale interessata al calcolo scientifico.

## Descrizione

Un Cluster Beowulf normalmente è un cluster di computer IBM compatibili utilizzanti software open source. Affinché un cluster di computer possa essere effettivamente considerato un "Beowulf" si richiede, che
* i vari computer in rete (detti nodi) e la rete stessa non abbiano un utilizzo diverso da quello del cluster stesso. In genere l'accesso al sistema e il suo controllo è possibile solo dal nodo principale, che spesso è l'unico dotato di tastiera e monitor. In alcuni casi i singoli nodi sono addirittura privi di memoria di massa e di dischi e il boot avviene via rete dal nodo principale o master;
* i nodi e lo stesso materiale di rete devono essere costituiti da macchine e apparati standard presenti in commercio al dettaglio;
* il sistema operativo e il software che gira sul cluster devono essere "open source". Usualmente il sistema operativo è GNU/Linux o una delle varie varianti di Unix disponibili gratuitamente;
* il Cluster risultante deve essere strutturato per compiere operazioni che richiedono potenza di calcolo particolarmente elevata; in altri termini un beowulf deve comportarsi come un Supercomputer.
Il fatto che i singoli nodi siano uguali (o almeno dotati di una potenza di calcolo analoga) è chiaramente apprezzabile in un Beowulf, ma non è considerato da tutti come una condizione necessaria. I collegamenti vengono realizzati tramite LAN TCP/IP, mentre la comunicazione e sincronizzazione dei processi vengono realizzate tramite librerie disponibili gratuitamente.
Un Cluster Beowulf non è gestito da un particolare software. Spesso si utilizzano librerie per il calcolo parallelo come le MPI (Message Passing Interface) e le PVM (Parallel Virtual Machine). Queste permettono al programmatore di dividere i compiti da svolgere su un gruppo di computer collegati in rete e di riunire i risultati dei singoli processi per ottenere la soluzione del problema trattato.

## Sistemi operativi

Attualmente molte distribuzioni Linux sono state realizzate appositamente per permettere la realizzazione di un sistema Beowulf in modo relativamente semplice.
* PelicanHPC (precedente nota come ParallelKnoppix, anche questa basata su Knoppix, che a sua volta deriva da Debian)
* ClusterKnoppix (basata su Knoppix, che a sua volta deriva da Debian)
* Quantian (basata su ClusterKnoppix)
* PlumpOS
* dyne:bolic
* Rocks Linux
* Oscar
* Scyld
* Clustermatic
Un cluster può essere realizzato semplicemente utilizzando un CD di boot della distribuzione Knoppix in congiunzione con openMosix. Il computer verrà automaticamente configurato e collegato al cluster con una semplice configurazione in modo da poter condividere la propria potenza di calcolo e memoria. Questa tipologia di sistema è molto scalabile, può essere infatti espansa in modo virtualmente illimitato (sempre che il canale di comunicazione non diventi il collo di bottiglia).

## Esempi

* Stone Soupercomputer
* Carnegie Mellon University, Process Systems Engineering Beowulf Cluster, su beowulf.cheme.cmu.edu. URL consultato il 7 giugno 2010 (archiviato dall'url originale il 7 giugno 2010).
* Southampton University, Information Systems Services, Iridis Beowulf Cluster, su southampton.ac.uk.
* Asgard - Beowulf Computing at the Swiss Federal Institut of Technology, su asgard.ethz.ch. URL consultato il 3 marzo 2006 (archiviato dall'url originale il 12 luglio 2006).

## Altre soluzioni software

* Maui Cluster Scheduler-open source
* TORQUE Resource Manager-open source
* Moab Cluster Suite Archiviato il 7 dicembre 2006 in Internet Archive.-commerciale
* Moab Grid Suite-commerciale