Sommario:

Come Realizzare un SuperComputer Raspberry Pi!: 9 Passaggi (Illustrato)
Come Realizzare un SuperComputer Raspberry Pi!: 9 Passaggi (Illustrato)

Video: Come Realizzare un SuperComputer Raspberry Pi!: 9 Passaggi (Illustrato)

Video: Come Realizzare un SuperComputer Raspberry Pi!: 9 Passaggi (Illustrato)
Video: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, Novembre
Anonim
Come creare un supercomputer Raspberry Pi!
Come creare un supercomputer Raspberry Pi!

Di per sé il Raspberry Pi non vanta specifiche impressionanti. Ma con il prezzo stracciato, l'acquisto di molti di questi e il loro collegamento per utilizzare la loro potenza di elaborazione combinata potrebbe potenzialmente creare un computer a basso costo decente. Sono stati costruiti diversi rig impressionanti che collegano dozzine di Pi insieme. Quindi, in questo tutorial, esploriamo come la tecnologia alla base del cluster computing e creiamo il nostro Bramble Pi!

Passaggio 1: guarda la versione video

Image
Image

Ho anche realizzato una versione video in due parti di questo identico progetto. Quindi, se non sei uno che legge, rilassati e guarda i video! Si prega di notare che la versione video utilizza Raspbian Wheezy. Tuttavia, le istruzioni di seguito sono per l'attuale Raspbian Distro, che è Jessie nel momento in cui scrivo questo.

Passaggio 2: cosa ti servirà

Per seguire questo progetto, ecco le parti che dovrai acquisire

Ecco di cosa avrai bisogno:

  1. 2 o più Raspberry Pi
  2. Schede SD per ogni Pi
  3. Cavi di alimentazione per ogni Pi
  4. Hub USB alimentato (opzionale)
  5. Cavi di rete
  6. Un hub o un router

COSTO TOTALE: ~$100,00

Passaggio 3: installazione e configurazione di Raspbian

Installazione e configurazione di Raspbian
Installazione e configurazione di Raspbian
Installazione e configurazione di Raspbian
Installazione e configurazione di Raspbian

Una volta che hai tutte le parti, il passaggio successivo è scaricare e configurare il sistema operativo Raspbian su uno dei Raspberry Pi. Questo sarà il tuo maestro Pi. Ecco i passaggi:

  1. Scarica l'immagine Raspbian da qui.
  2. Masterizza l'immagine Raspbian su ogni scheda SD che hai per ogni Raspberry Pi.

    1. Se hai Windows, puoi seguire queste istruzioni.
    2. Se hai un Mac, puoi seguire queste istruzioni.
  3. Una volta che l'immagine è stata masterizzata sulla scheda SD, inseriscila in ciascuno dei Raspberry Pi e avviala.
  4. Al primo avvio, dovresti vedere il desktop Rasbperry Pi. Fare clic sull'icona del menu nell'angolo in alto a sinistra e andare su Preferenze > Configurazione Raspberry Pi. Ecco le opzioni che dovremo configurare

    1. Espandi il file systemSe necessario.
    2. Cambia il nome host in Pi01
    3. Cambia l'opzione di avvio in CLI (Command Line Interface), poiché non utilizzeremo realmente l'interfaccia desktop.
    4. Orologio nella scheda "Interfacce" e assicurati che SSH sia abilitato.
    5. Fare clic sulla scheda "Overclock" e scegliere "Turbo".
    6. Cambia la memoria della GPU a 16mb.
    7. Fai clic sulla scheda "Localizzazione" e imposta il layout della tastiera in modo che corrisponda a quello dei tuoi paesi.
    8. Termina la configurazione e riavvia il tuo Pi.

Passaggio 4: installazione di MPICH

Installazione di MPICH
Installazione di MPICH
Installazione di MPICH
Installazione di MPICH
Installazione di MPICH
Installazione di MPICH
Installazione di MPICH
Installazione di MPICH

Utilizzando ancora solo un Pi come master, ora dobbiamo installare il software principale che ci consentirà di utilizzare la potenza di elaborazione di tutti i Pi sulla nostra rete. Quel software si chiama MPICH, che è un'interfaccia di passaggio dei messaggi. Ecco cosa devi fare per installarlo:

sudo apt-get update

mkdir mpich2

cd ~/mpich2

wget

tar xfz mpich-3.1.tar.gz

sudo mkdir /home/rpimpi/

sudo mkdir /home/rpimpi/mpi-install

mkdir /home/pi/mpi-build

cd /home/pi/mpi-build

sudo apt-get install gfortran

sudo /home/pi/mpich2/mpich-3.1/configure -prefix=/home/rpimpi/mpi-install

sudo make

sudo make install

nano.bashrc

PATH=$PATH:/home/rpimpi/mpi-install/bin

sudo reboot

mpiexec -n 1 nome host

Questi comandi scaricheranno e installeranno MPICH, oltre ad aggiungerlo come percorso al file di avvio BASHRC. L'ultimo comando esegue un test per vedere se funziona. Se l'ultimo comando restituisce "Pi01", allora hai fatto tutto con successo.

Passaggio 5: installazione di MPI4PY

Installazione di MPI4PY
Installazione di MPI4PY
Installazione di MPI4PY
Installazione di MPI4PY
Installazione di MPI4PY
Installazione di MPI4PY

Così com'è, MPICH può eseguire programmi C e Fortran. Ma poiché il Raspberry Pi ha l'ambiente di codifica Python preinstallato, sarebbe più semplice installare un interprete da Python a MPI. Ecco i comandi per farlo:

sudo aptitude install python-dev

wget

tar -zxf mpi4py-1.3.1

cd mpi4py-1.3.1

python setup.py build

python setup.py installa

esporta PYTHONPATH=/home/pi/mpi4py-1.3.1

mpiexec -n 5 python demo/helloworld.py

L'ultimo comando dovrebbe restituire cinque risposte. Ognuno è un processo diverso su Pi01 che esegue il programma Python "Hello World" che abbiamo appena creato.

Passaggio 6: copia dell'immagine

Copiare l'immagine
Copiare l'immagine

Ora che abbiamo configurato con successo il nostro Pi principale, dobbiamo copiare l'immagine della scheda SD di Pi su tutti gli altri Pi. Ecco come puoi farlo su Windows:

  1. Estrai la scheda SD principale dal Pi e inseriscila nel tuo computer.
  2. Usando Win32DiskImager, usa il pulsante "Leggi" per salvare il contenuto della scheda SD sul tuo computer.
  3. Espelli la scheda SD principale e inserisci una scheda SD per uno degli altri Pi. Quindi utilizzare l'opzione "Scrivi" di Win32DiskImager per scrivere l'immagine che abbiamo salvato sulla nuova scheda SD.
  4. Ripeti il passaggio 3 finché non hai scritto l'immagine principale su tutte le schede SD.

Passaggio 7: configurazione dei restanti Raspberry Pi

Configurazione dei restanti Raspberry Pi
Configurazione dei restanti Raspberry Pi
Configurazione dei restanti Raspberry Pi
Configurazione dei restanti Raspberry Pi
Configurazione dei restanti Raspberry Pi
Configurazione dei restanti Raspberry Pi

Ora che abbiamo tutte le schede SD preparate, inserisci nuovamente la scheda SD principale nel Master Pi, collegala a un router e riavviala. Quindi per i restanti Raspberry Pi, inserisci le schede SD in tutti, collegale allo stesso router del tuo Master Pi, quindi avviale tutte. Nessuno dei Pi secondari deve avere tastiere, mouse o monitor.

Una volta accesi tutti i Pi, utilizzando il nostro Master Pi, dovremmo essere in grado di ottenere gli indirizzi IP di ciascun Pi sulla rete. Ecco come:

  1. Prima installazione di NMAP

    sudo apt-get update

    sudo apt-get install nmap

  2. Quindi ottieni l'IP corrente per il master Pi

    ifconfig

  3. Ora puoi scansionare la sottorete del tuo router per gli altri indirizzi IP Pi

    sudo nmap -sn 192.168.1.*

Copia tutti gli indirizzi IP relativi agli altri Raspberry Pi sulla rete. Saremo quindi in grado di utilizzare quegli IP per connetterci a ciascuno degli altri Pi utilizzando SSH. Quello che dobbiamo fare prima è rinominare ciascuno dei Pi secondari con un nome di rete univoco. In questo momento sono tutti impostati su Pi01. Supponendo che uno degli indirizzi IP del Pi secondario sia 192.168.0.3, ecco come puoi connetterti ad esso e cambiarne il nome:

  1. Stabilire una connessione SSH

    ssh [email protected]

  2. Esegui raspi-config

    sudo raspi-config

  3. Nell'interfaccia, scorri verso il basso fino all'opzione Avanzate, quindi scegli Nome host.
  4. Per il nome host, cambia Pi01 con il numero sequenziale successivo, che è Pi02.
  5. Quindi esci dalla sessione SSH

    Uscita

Vuoi ripetere questi passaggi per ciascuno degli altri Pi sulla rete rinominandoli in Pi03, Pi04, ecc.

Sul tuo master Pi, vuoi creare un nuovo file di testo chiamato "machinefile"

file macchina nano

E in esso, si desidera digitare ciascuno degli indirizzi IP di Pi (incluso l'indirizzo IP principale) su una nuova riga e quindi salvare il file.

A questo punto, potremmo eseguire un file di prova usando

mpiexec -f machinefile -n 4 hostname

ma verrà visualizzato un errore dicendo che si è verificato un "errore di verifica della chiave host". Quindi, nel passaggio successivo, risolviamo il problema.

Passaggio 8: verifica delle chiavi host

Verifica delle chiavi host
Verifica delle chiavi host
Verifica delle chiavi host
Verifica delle chiavi host
Verifica delle chiavi host
Verifica delle chiavi host

Per risolvere il problema in modo che la comunicazione con ciascun Pi non si traduca in un errore di verifica della chiave host, è necessario creare e scambiare le chiavi per ciascuno dei nostri Raspberry Pi. Questa parte potrebbe diventare leggermente complicata, ma spero che tu possa stare con me.

  1. Sul Master Pi, nella cartella home predefinita, crea una nuova chiave.

    cd~

    ssh-keygen

  2. Passa alla cartella ssh e copia il file chiave in un nuovo file chiamato "pi01"

    cd.ssh

    cp id_rsa.pub pi01

  3. Successivamente si desidera connettersi tramite SSH a Pi02 e ripetere gli stessi passaggi per creare un file di chiavi Pi02

    ssh [email protected]

    ssh-keygen

    cd.ssh

    cp id_rsa.pub pi02

  4. Prima di uscire da Pi02, dobbiamo copiare il file di chiavi Pi01 su di esso e autorizzarlo.

    scp 192.168.1.2:/home/pi/.ssh/pi01.

    cat pi01 >> chiavi_autorizzate

    Uscita

  5. Con Pi02 fatto, ripeti tutti questi passaggi per Pi03

    ssh [email protected]

    ssh-keygen

    cd.ssh

    cp id_rsa.pub pi03

    scp 192.168.1.2:/home/pi/.ssh/pi01.

    cat pi01 >> chiavi_autorizzate

    Uscita

  6. Ripeti l'ultimo passaggio per i restanti Pi che hai sulla tua rete.
  7. Dopo aver generato le chiavi per ciascuno dei Pi, torna al tuo Master Pi e copia tutte le chiavi generate su ciascuno dei Pi.

    cp 192.168.1.3:/home/pi/.ssh/pi02

    cat pi02 >> chiavi_autorizzate

    cp 192.168.1.4:/home/pi/.ssh/pi03

    cat pi03 >> chiavi_autorizzate

    cp 192.168.1.5:/home/pi/.ssh/pi02

    cat pi04 >> chiavi_autorizzate

  8. (ripeti per tutti i Pi presenti sulla tua rete)

Passaggio 9: eseguire un programma sul tuo supercomputer

Esecuzione di un programma sul tuo supercomputer
Esecuzione di un programma sul tuo supercomputer
Esecuzione di un programma sul tuo supercomputer
Esecuzione di un programma sul tuo supercomputer
Esecuzione di un programma sul tuo supercomputer
Esecuzione di un programma sul tuo supercomputer

Ora tutto dovrebbe essere impostato. Mentre sei ancora sul tuo Master Pi, prova a eseguire di nuovo questo file macchina:

cd ~

mpiexec -f machinefile -n 4 hostname

Se tutto è stato fatto correttamente, dovrebbe restituire gli indirizzi IP di tutti i tuoi Raspberry Pi. Ora che abbiamo testato con successo il nostro supercomputer, eseguiamo su di esso un programma Python:

  1. Scarica e decomprimi il mio script di cracking della password Python di prova.

    wget

    tar -zxf python_test.tar.gz

  2. Modifica l'hash della password con quello che desideri decifrare.

    nano python_test/md5_attack.py

  3. Copia il file Python su tutti i tuoi Pi.

    scp -r python_test 192.168.1.3:/home/pi

    scp -r python_test 192.168.1.4:/home/pi

    scp -r python_test 192.168.1.5:/home/pi

  4. (ripeti per tutti i Pi rimanenti)
  5. Esegui lo script Python.

    mpiexec -f machinefile -n 5 python python_test/md5_attack.py

Lo script verrà eseguito utilizzando la potenza di elaborazione di tutti i Pi sulla tua rete! Sentiti libero di provarlo usando il tuo script Python!

Concorso Raspberry Pi 2016
Concorso Raspberry Pi 2016
Concorso Raspberry Pi 2016
Concorso Raspberry Pi 2016

Terzo Premio al Raspberry Pi Contest 2016

Consigliato: