GNU/Linux >> Linux Esercitazione >  >> Linux

Cluster di calcolo ad alte prestazioni in un ambiente cloud

High Performance Computing (HPC) consente a scienziati e ricercatori di risolvere problemi complessi che richiedono molte capacità di elaborazione. HPC utilizza tipicamente un'interfaccia di passaggio messaggi (MPI) per comunicare tra nodi diversi.

HPC nel cloud

Attualmente, la maggior parte dei progetti che richiedono HPC sono ancora in esecuzione su sistemi UNIX® legacy. La migrazione di questi progetti a un'installazione basata su cloud è molto semplice e non richiede molta configurazione aggiuntiva. Questo tutorial crea un cluster HPC con Open MPI su Rackspace Cloud ed esegue un'applicazione Open MPI sopra il cluster. Alla fine di questo tutorial, dovresti sapere come sfruttare il cloud per creare e scalare rapidamente un cluster HPC per l'elaborazione dei dati in tempo reale rimuovendo la dipendenza dall'infrastruttura fisica.

Apri MPI

Per ottenere un clustering ad alte prestazioni nel cloud, puoi utilizzare OpenMPI, che è un progetto Message Passing Interface (MPI). Fornisce elaborazione parallela, thread safety e concorrenza, spawn di processi dinamici e tolleranza di rete e di errore. I supercomputer più veloci del mondo usano questa libreria e la libreria alimenta molti petaflop. Per saperne di più sulla libreria Open MPI, visita il loro sito.

Obiettivo

Questo tutorial mostra come creare un cluster HPC utilizzando i seguenti strumenti:

  • Quattro server cloud rackspace
  • Apri MPI

Il tutorial configura un cluster a quattro nodi, esegue un'applicazione su di esso e ne misura le prestazioni, come mostrato nell'immagine seguente:

Figura 1 - Architettura di alto livello HPC sul cloud

Prerequisiti

Sono necessari i seguenti tre elementi per completare con successo questo tutorial:

  • Un account Rackspace Cloud.
  • Un client Secure Shell (SSH). Gli utenti Windows® possono utilizzare PuTTY.
  • Una conoscenza di base di Linux® e Open MPI.

Tutorial

Il tutorial copre le seguenti attività:

  1. Crea un Cloud Server.
  2. Installa Open MPI.
  3. Abilita il clustering.
  4. Configura HPC.
  5. Crea e distribuisci un'immagine di Cloud Server.
  6. Installa ed esegui un'applicazione di esempio abilitata per Open MPI.

Crea un Cloud Server

Accedi al Cloud Control Panel e crea da interfaccia web un Cloud Server con i seguenti attributi:

  • Nome server:tuonome-HPC-node-01
  • Regione:Dallas (DFW)
  • Image (Rackspace):Ubuntu 12.04 LTS (Precise Pangolin)
  • Dimensioni:2 GB di RAM o superiore

Fai clic su Crea server e inizia il processo di creazione del Cloud Server. Durante la creazione, una finestra popup mostra la tua password del Cloud Server. Registra la password per riferimento futuro. Chiudi la finestra popup e attendi il completamento della build del server. Dopo che l'indirizzo IP del nuovo server diventa disponibile, registralo.

Installa Open MPI

Dopo che il server ha terminato la creazione ed è in Disponibile status, SSH nel server e accedi utilizzando l'indirizzo IP e la password che hai registrato in precedenza.

ssh root@<Your Server IP>

Dopo aver effettuato l'accesso, eseguire i seguenti comandi per installare Open MPI:

apt-get update
apt-get install build-essential -y
apt-get install openmpi-bin openmpi-checkpoint openmpi-common openmpi-doc libopenmpi-dev -y

Abilita il clustering

Open MPI facilita la comunicazione tra i nodi utilizzando SSH, quindi è necessario abilitare gli accessi basati su chiavi per SSH.

Per fare ciò, esegui i seguenti comandi:

chmod 700 ~/.ssh
echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -C "Open MPI"

L'output di questi comandi dovrebbe essere simile al seguente esempio:

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:85:97:3c:98:89:8d:bc:58:96:97:41:ad:0b:a6:c8 Enter an optional comment about your key
The key's randomart image is:
+--[ RSA 2048]----+
|       . *oX..   |
|        B O.*    |
|       + ooo .   |
|      . +...     |
|   . . oS. .     |
|    E .   .      |
|                 |
|                 |
|                 |
+-----------------+

Nota: Durante questo processo viene richiesta una passphrase. Lascia vuoto.

Esegui i seguenti comandi per copiare la chiave nella cartella della chiave autorizzata e modificare le autorizzazioni per consentire gli accessi SSH:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Configura HPC

Ora configura il nodo HPC primario creando un file host. Per fare ciò, assicurati di aver effettuato l'accesso al primo nodo tramite SSH e crea il seguente file, dove <Your Server IP> è l'indirizzo IP che hai utilizzato per SSH nella macchina:

cd ~/
echo <Your Server IP> >> mpi_hosts

Per verificare il file, esegui il seguente comando:

cat mpi_hosts

Dovresti vedere il seguente risultato:

<Your Server IP>

Per verificare la tua configurazione, usa hello_c.c dagli esempi inclusi con Open MPI.

Per fare ciò, segui questi comandi:

mkdir /root/samples
cd /root/samples
wget https://svn.open-mpi.org/svn/ompi/tags/v1.6-series/v1.6.4/examples/hello_c.c
mpicc hello_c.c -o hello
mpirun ./hello

Questo dovrebbe produrre il seguente risultato:

Hello, world, I am 0 of 1

Ora che funziona, esegui i seguenti comandi per testare la connettività:

wget https://svn.open-mpi.org/svn/ompi/tags/v1.6-series/v1.6.4/examples/connectivity_c.c
mpicc connectivity_c.c -o connectivity
mpirun ./connectivity

Dovresti vedere il seguente output:

Connectivity test on 1 processes PASSED.

Ciò conferma che il primo nodo è online e operativo.

Crea e distribuisci un'immagine di Cloud Server

Con il primo nodo creato, sei pronto per configurare un cluster. Per iniziare, crea delle copie del nodo che hai appena creato. Segui questi passaggi per creare un'immagine:

  1. Accedi al pannello di controllo del cloud.
  2. Nella barra di navigazione in alto, fai clic su Seleziona un prodotto> Rackspace Cloud .
  3. Seleziona Server> Server cloud .
  4. Nell'elenco dei server, seleziona il server che hai creato per il primo nodo.
  5. Fai clic su Azioni menu a tendina.
  6. Fai clic su Crea immagine .
  7. Quando richiesto, fornisci un nome significativo.
  8. Infine, fai clic su Crea immagine e attendi qualche minuto per la creazione dell'immagine.

Dopo aver creato l'immagine, distribuire un nuovo Cloud Server utilizzando la procedura precedente con la seguente eccezione:quando viene richiesta l'immagine, fare clic su Salvato scheda e seleziona la tua immagine. Di nuovo, fornisci un nome server significativo e registra la password e l'indirizzo IP del nuovo server.

Per aggiungere il nuovo nodo al cluster, esegui i seguenti comandi (supponendo che l'IP del tuo nuovo server sia 10.20.30.40 e l'IP/nome host del tuo primo server è <Your Server IP> ):

SSH to your first server
cd ~/
cat >> mpi_hosts <<EOF
10.20.30.40
EOF

Ora, il tuo file host dovrebbe assomigliare al seguente esempio:

<Your Server IP>
10.20.30.40

Per testare la connettività tra i nodi, eseguire il comando seguente:

mpirun -v -np 2 --hostfile ~/mpi_hosts /root/samples/connectivity

Se non ricevi alcun errore, hai appena creato e testato con successo il tuo cluster cloud. Per aumentare le dimensioni del cluster, aggiungi altri due nodi utilizzando la stessa procedura.

Per testare la connettività all'interno del cluster a quattro nodi, esegui il seguente comando:

mpirun -v -np 4 --hostfile ~/mpi_hosts /root/samples/connectivity

Installa ed esegui un'applicazione di esempio abilitata per Open MPI

Ora che hai un cluster Open MPI, controlla come si comporta. Utilizza un'applicazione simpleray tracing che può essere eseguita su un singolo nodo o su un cluster Open MPI per confrontare le prestazioni.

Innanzitutto, installa l'applicazione su tutti i nodi del cluster. Per fare ciò, SSH nel nodo primario ed eseguire il seguente comando:

for i in `cat mpi_hosts`; do ssh root@$i "curl -l https://openstack.prov12n.com/files/tachyon.sh | bash"; done
cd ~/tachyon/compile/linux-mpi

Il sistema di ray-tracing multiprocessore/parallelo tachionico viene fornito con più file di dati di esempio nelle scene cartella, che è possibile utilizzare per eseguire i test. Innanzitutto, esegui il test su un nodo utilizzando il comando seguente:

cd ~/tachyon/compile/linux-mpi
./tachyon ../../scenes/teapot.dat

Dovresti vedere il seguente output:

Tachyon Parallel/Multiprocessor Ray Tracer   Version 0.99
Copyright 1994-2011,    John E. Stone <[email protected]>
------------------------------------------------------------
Scene Parsing Time:     0.0221 seconds
Scene contains 2330 objects.
Preprocessing Time:     0.0052 seconds
Rendering Progress:       100% complete
  Ray Tracing Time:     2.1399 seconds
    Image I/O Time:     0.0174 seconds

Esegui il comando seguente e osserva il tempo di ray tracing in modo da poterlo confrontare con la tua corsa parallela:

mpirun -np 4 --hostfile ~/mpi_hosts ./tachyon ../../scenes/teapot.dat -format BMP

Dovresti vedere il seguente output:

Tachyon Parallel/Multiprocessor Ray Tracer   Version 0.99
Copyright 1994-2011,    John E. Stone <[email protected]>
------------------------------------------------------------
Scene Parsing Time:     0.0230 seconds
Scene contains 2330 objects.
Preprocessing Time:     0.0052 seconds
Rendering Progress:       100% complete
  Ray Tracing Time:     0.6048 seconds
    Image I/O Time:     0.0182 seconds

Il tuo cluster è composto da quattro nodi e una CPU per ciascuno. Pertanto, il miglioramento delle prestazioni è quasi quattro volte maggiore. Dovresti vedere miglioramenti significativi anche se non hai più nodi e invece esegui la tua applicazione su un solo nodo con OpenMPI usando entrambe le CPU.

È importante che tu abbia creato il tuo server con almeno 2 GB di RAM perché le dimensioni di 2 GB e superiori hanno accesso ad almeno 2 CPU. Per maggiori informazioni sulle dimensioni, consulta Cloud Server.

Esegui il comando seguente per eseguire questo codice su più CPU di un singolo server:

mpirun -np 2 ./tachyon ../../scenes/teapot.dat -format BMP

Dovresti vedere il seguente output:

Tachyon Parallel/Multiprocessor Ray Tracer   Version 0.99
Copyright 1994-2011,    John E. Stone <[email protected]>
------------------------------------------------------------
Scene Parsing Time:     0.0222 seconds
Scene contains 2330 objects.
Preprocessing Time:     0.0050 seconds
Rendering Progress:       100% complete
  Ray Tracing Time:     1.0888 seconds
    Image I/O Time:     0.0181 seconds

Si noti che anche quando si esegue su un singolo nodo ma si utilizza Open MPI, le prestazioni sono quasi raddoppiate. Per saperne di più su questa applicazione di ray tracing, visitare https://jedi.ks.uiuc.edu/~johns/raytracer/.

Riepilogo

In questo tutorial, hai imparato a creare e creare immagini di server cloud. Hai anche imparato a configurare un cluster HPC utilizzando Open MPI. Dopo aver impostato e configurato il cluster, hai installato una piccola applicazione di ray tracing per dimostrare i vantaggi dell'utilizzo di più nodi invece di un nodo.


Linux
  1. 10 pepite dalle statistiche di cloud computing 2015

  2. Affronta i problemi di sicurezza del cloud computing con il cloud privato

  3. Il cloud privato è RAD:come sfruttare il cloud privato per lo sviluppo rapido di applicazioni

  4. Tutorial sul clustering Linux (alta disponibilità)

  5. google cloud sdk:imposta la variabile di ambiente_ python --> linux

Come configurare il cluster Kubernetes su Google Cloud Platform (GCP)

Come distribuire un cluster a tolleranza di errore con disponibilità continua o elevata

Come configurare un cluster Pacemaker per Linux ad alta disponibilità

Come distribuire WordPress su Jelastic Cloud

Come installare e configurare NGINX e PHP su Jelastic Cloud

Come distribuire il container Docker su Jelastic Cloud