Inhaltsverzeichnis:

Wie erstelle ich einen Raspberry Pi Supercomputer! - Gunook
Wie erstelle ich einen Raspberry Pi Supercomputer! - Gunook

Video: Wie erstelle ich einen Raspberry Pi Supercomputer! - Gunook

Video: Wie erstelle ich einen Raspberry Pi Supercomputer! - Gunook
Video: Bauanleitung: Raspberry Pi Cluster 2024, November
Anonim
Wie erstelle ich einen Raspberry Pi Supercomputer!
Wie erstelle ich einen Raspberry Pi Supercomputer!

An sich bietet der Raspberry Pi keine beeindruckenden Spezifikationen. Aber mit dem spottbilligen Preis könnte der Kauf mehrerer davon und deren Verbindung zur Nutzung ihrer kombinierten Rechenleistung möglicherweise einen anständigen, kostengünstigen Computer ergeben. Es wurden mehrere beeindruckende Rigs gebaut, die Dutzende von Pis miteinander verbinden. Lassen Sie uns in diesem anweisbaren, wie die Technologie hinter Cluster-Computing erkunden und unseren eigenen Bramble Pi machen!

Schritt 1: Sehen Sie sich die Videoversion an

Image
Image

Ich habe auch eine zweiteilige Videoversion dieses exakt gleichen Projekts erstellt. Also, wenn Sie nicht zum Lesen sind, lehnen Sie sich zurück und schauen Sie sich die Videos an! Bitte beachten Sie, dass die Videoversion Raspbian Wheezy verwendet. Die folgenden Anweisungen gelten jedoch für die aktuelle Raspbian-Distribution, die zu der Zeit, als ich dies schreibe, Jessie ist.

Schritt 2: Was Sie brauchen

Um dieses Projekt zu verfolgen, sind hier die Teile, die Sie erwerben müssen

Hier ist, was Sie brauchen:

  1. 2 oder mehr Raspberry Pis
  2. SD-Karten für jeden Pi
  3. Stromkabel für jeden Pi
  4. USB-Hub mit Stromversorgung (optional)
  5. Netzwerkkabel
  6. Ein Hub oder ein Router

GESAMTKOSTEN: ~100,00 $

Schritt 3: Raspbian installieren und konfigurieren

Raspbian installieren und konfigurieren
Raspbian installieren und konfigurieren
Raspbian installieren und konfigurieren
Raspbian installieren und konfigurieren

Sobald Sie alle Teile haben, besteht der nächste Schritt darin, Raspbian OS auf einen der Raspberry Pi herunterzuladen und zu konfigurieren. Dies wird Ihr Master-Pi sein. Hier sind die Schritte:

  1. Laden Sie das Raspbian-Image hier herunter.
  2. Brennen Sie das Raspbian-Image auf jede SD-Karte, die Sie für jeden Raspberry Pi haben.

    1. Wenn Sie über Windows verfügen, können Sie diese Anweisungen befolgen.
    2. Wenn Sie einen Mac haben, können Sie diese Anweisungen befolgen.
  3. Sobald das Image auf Ihre SD-Karte gebrannt ist, legen Sie es in jeden der Raspberry Pi und booten Sie es.
  4. Beim ersten Booten sollten Sie den Rasbperry Pi Desktop sehen. Klicken Sie auf das Menüsymbol in der oberen linken Ecke und gehen Sie zu Einstellungen > Raspberry Pi Konfiguration. Hier sind die Optionen, die wir konfigurieren müssen

    1. Erweitern Sie das Dateisystem, falls erforderlich.
    2. Ändern Sie den Hostnamen in Pi01
    3. Ändern Sie die Boot-Option auf CLI (Command Line Interface), da wir das Desktop-Interface nicht wirklich verwenden werden.
    4. Uhr auf der Registerkarte "Schnittstellen" und stellen Sie sicher, dass SSH aktiviert ist.
    5. Klicken Sie auf den Reiter "Übertakten" und wählen Sie "Turbo".
    6. Ändern Sie den GPU-Speicher auf 16 MB.
    7. Klicken Sie auf die Registerkarte "Lokalisierung" und stellen Sie Ihr Tastaturlayout so ein, dass es dem Ihrer Länder entspricht.
    8. Beenden Sie die Konfiguration und starten Sie Ihren Pi neu.

Schritt 4: MPICH installieren

Installation von MPICH
Installation von MPICH
Installation von MPICH
Installation von MPICH
Installation von MPICH
Installation von MPICH
Installation von MPICH
Installation von MPICH

Wir verwenden immer noch nur den einen Pi als Master und müssen nun die primäre Software installieren, die es uns ermöglicht, die Rechenleistung aller Pi in unserem Netzwerk zu nutzen. Diese Software heißt MPICH, ein Message Passing Interface. Hier ist, was Sie tun müssen, um es zu installieren:

sudo apt-get update

mkdir mpich2

cd ~/mpich2

wget

tar xfz mpich-3.1.tar.gz

sudo mkdir /home/rimppi/

sudo mkdir /home/rimppi/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/rimppi/mpi-install

sudo machen

sudo machen installieren

nano.bashrc

PFAD=$PFAD:/home/rimppi/mpi-install/bin

sudo neu starten

mpiexec -n 1 Hostname

Diese Befehle laden MPICH herunter, installieren es und fügen es als Pfad zu Ihrer BASHRC-Bootdatei hinzu. Der letzte Befehl führt einen Test durch, um zu sehen, ob es funktioniert. Wenn der letzte Befehl „Pi01“zurückgibt, haben Sie alles erfolgreich gemacht.

Schritt 5: MPI4PY installieren

Installieren von MPI4PY
Installieren von MPI4PY
Installieren von MPI4PY
Installieren von MPI4PY
Installieren von MPI4PY
Installieren von MPI4PY

So wie es ist, kann MPICH C- und Fortran-Programme ausführen. Da auf dem Raspberry Pi jedoch die Python-Codierungsumgebung vorinstalliert ist, wäre es am einfachsten, einen Python-zu-MPI-Interpreter zu installieren. Hier sind die Befehle dazu:

sudo aptitude installiere python-dev

wget

tar -zxf mpi4py-1.3.1

cd mpi4py-1.3.1

python setup.py build

python setup.py install

exportiere PYTHONPATH=/home/pi/mpi4py-1.3.1

mpiexec -n 5 python demo/helloworld.py

Dieser letzte Befehl sollte fünf Antworten zurückgeben. Jeder ist ein anderer Prozess auf Pi01, auf dem das gerade erstellte Python-Programm "Hello World" ausgeführt wird.

Schritt 6: Kopieren des Bildes

Kopieren des Bildes
Kopieren des Bildes

Nachdem wir unseren Master-Pi erfolgreich konfiguriert haben, müssen wir das SD-Karten-Image dieses Pis auf alle anderen Pis kopieren. So können Sie das unter Windows tun:

  1. Nehmen Sie die Master-SD-Karte aus dem Pi und stecken Sie sie in Ihren Computer ein.
  2. Verwenden Sie mit Win32DiskImager die Schaltfläche "Lesen", um den Inhalt der SD-Karte auf Ihrem Computer zu speichern.
  3. Werfen Sie die Master-SD-Karte aus und legen Sie eine SD-Karte für einen der anderen Pis ein. Verwenden Sie dann die Option "Write" von Win32DiskImager, um das von uns gespeicherte Bild auf die neue SD-Karte zu schreiben.
  4. Wiederholen Sie Schritt 3, bis Sie das Master-Image auf alle SD-Karten geschrieben haben.

Schritt 7: Konfigurieren der verbleibenden Raspberry Pis

Konfigurieren der verbleibenden Raspberry Pis
Konfigurieren der verbleibenden Raspberry Pis
Konfigurieren der verbleibenden Raspberry Pis
Konfigurieren der verbleibenden Raspberry Pis
Konfiguration der verbleibenden Raspberry Pi's
Konfiguration der verbleibenden Raspberry Pi's

Nachdem wir alle SD-Karten vorbereitet haben, legen Sie die Master-SD-Karte wieder in den Master Pi ein, verbinden Sie sie mit einem Router und starten Sie sie wieder. Legen Sie dann für die verbleibenden Raspberry Pi SD-Karten in alle ein, verbinden Sie sie mit demselben Router wie Ihren Master Pi und starten Sie sie alle. Keiner der sekundären Pis muss über Tastaturen, Mäuse oder Monitore verfügen.

Sobald alle Pis eingeschaltet sind, sollten wir mit unserem Master Pi in der Lage sein, die IP-Adressen jedes Pi im Netzwerk zu erhalten. Hier ist wie:

  1. Installieren Sie zuerst NMAP

    sudo apt-get update

    sudo apt-get install nmap

  2. Dann hol dir die aktuelle IP für den Master Pi

    ifconfig

  3. Jetzt können Sie das Subnetz Ihres Routers nach den anderen Pi-IP-Adressen durchsuchen

    sudo nmap -sn 192.168.1.*

Kopieren Sie alle IP-Adressen, die zu den anderen Raspberry Pis im Netzwerk gehören. Wir werden dann in der Lage sein, diese IPs zu verwenden, um über SSH eine Verbindung zu jedem der anderen Pis herzustellen. Was wir zuerst tun müssen, ist jeden der sekundären Pis in einen eindeutigen Netzwerknamen umzubenennen. Im Moment sind sie alle auf Pi01 eingestellt. Angenommen, eine der IP-Adressen des sekundären Pi ist 192.168.0.3, können Sie sich wie folgt damit verbinden und seinen Namen ändern:

  1. Stellen Sie eine SSH-Verbindung her

    ssh [email protected]

  2. raspi-config ausführen

    sudo raspi-config

  3. Scrollen Sie in der Benutzeroberfläche nach unten zur Option Erweitert und wählen Sie dann Hostname.
  4. Ändern Sie für den Hostnamen Pi01 in die nächste fortlaufende Nummer, die Pi02 ist.
  5. Beenden Sie dann die SSH-Sitzung

    Ausfahrt

Sie möchten diese Schritte für jeden der anderen Pis im Netzwerk wiederholen und sie in Pi03, Pi04 usw. umbenennen.

Auf Ihrem Master-Pi möchten Sie eine neue Textdatei namens "machinefile" erstellen

Nano-Maschinendatei

Und darin möchten Sie jede der IP-Adressen des Pi (einschließlich der Master-IP-Adresse) in eine neue Zeile eingeben und dann die Datei speichern.

An diesem Punkt könnten wir eine Testdatei mit ausführen

mpiexec -f Maschinendatei -n 4 Hostname

aber es wird eine Fehlermeldung ausgegeben, dass ein "Fehler bei der Überprüfung des Hostschlüssels" aufgetreten ist. Lassen Sie uns das im nächsten Schritt beheben.

Schritt 8: Überprüfen der Hostschlüssel

Überprüfen von Hostschlüsseln
Überprüfen von Hostschlüsseln
Überprüfen von Hostschlüsseln
Überprüfen von Hostschlüsseln
Überprüfen von Hostschlüsseln
Überprüfen von Hostschlüsseln

Um dies zu beheben, damit die Kommunikation mit jedem Pi nicht zu einem Fehler bei der Überprüfung des Hostschlüssels führt, müssen wir Schlüssel für jeden unserer Raspberry Pis erstellen und austauschen. Dieser Teil kann etwas kompliziert werden, aber hoffentlich kannst du bei mir bleiben.

  1. Erstellen Sie auf dem Master Pi im Standard-Home-Ordner einen neuen Schlüssel.

    cd~

    ssh-keygen

  2. Navigieren Sie zum ssh-Ordner und kopieren Sie die Schlüsseldatei in eine neue Datei namens "pi01".

    cd.ssh

    cp id_rsa.pub pi01

  3. Als nächstes möchten Sie sich über SSH mit Pi02 verbinden und dieselben Schritte wiederholen, um eine Pi02-Schlüsseldatei zu erstellen

    ssh [email protected]

    ssh-keygen

    cd.ssh

    cp id_rsa.pub pi02

  4. Bevor wir Pi02 verlassen, müssen wir die Pi01-Schlüsseldatei dorthin kopieren und autorisieren.

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

    cat pi01 >> authorisierte_keys

    Ausfahrt

  5. Wenn Pi02 fertig ist, wiederholen Sie alle diese Schritte für Pi03

    ssh [email protected]

    ssh-keygen

    cd.ssh

    cp id_rsa.pub pi03

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

    cat pi01 >> authorisierte_keys

    Ausfahrt

  6. Wiederholen Sie den letzten Schritt für die verbleibenden Pis, die Sie in Ihrem Netzwerk haben.
  7. Nachdem Sie Schlüssel für jeden der Pis generiert haben, gehen Sie zurück zu Ihrem Master-Pi und kopieren Sie alle Schlüssel, die auf jedem der Pis generiert wurden.

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

    cat pi02 >> authorisierte_keys

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

    cat pi03 >> authorisierte_keys

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

    cat pi04 >> authorisierte_keys

  8. (Wiederholen Sie so viele Pi's in Ihrem Netzwerk)

Schritt 9: Ausführen eines Programms auf Ihrem Supercomputer

Ausführen eines Programms auf Ihrem Supercomputer
Ausführen eines Programms auf Ihrem Supercomputer
Ausführen eines Programms auf Ihrem Supercomputer
Ausführen eines Programms auf Ihrem Supercomputer
Ausführen eines Programms auf Ihrem Supercomputer
Ausführen eines Programms auf Ihrem Supercomputer

Nun sollte alles eingerichtet sein. Versuchen Sie, diese Maschinendatei erneut auszuführen, während Sie sich noch auf Ihrem Master Pi befinden:

cd ~

mpiexec -f Maschinendatei -n 4 Hostname

Wenn alles richtig gemacht wurde, sollte es die IP-Adressen aller Ihrer Raspberry Pis zurückgeben. Nachdem wir unseren Supercomputer erfolgreich getestet haben, lassen Sie uns ein Python-Programm darauf ausführen:

  1. Laden Sie mein Testskript zum Knacken von Python-Passwörtern herunter und entpacken Sie es.

    wget

    tar -zxf python_test.tar.gz

  2. Bearbeiten Sie den Passwort-Hash zu einem, den Sie knacken möchten.

    nano python_test/md5_attack.py

  3. Kopieren Sie die Python-Datei auf alle Ihre Pis.

    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. (Wiederholung für alle verbleibenden Pis)
  5. Führen Sie das Python-Skript aus.

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

Das Skript wird mit der Rechenleistung aller Pis in Ihrem Netzwerk ausgeführt! Fühlen Sie sich frei, es mit Ihrem eigenen Python-Skript zu testen!

Raspberry Pi-Wettbewerb 2016
Raspberry Pi-Wettbewerb 2016
Raspberry Pi-Wettbewerb 2016
Raspberry Pi-Wettbewerb 2016

Dritter Preis beim Raspberry Pi Contest 2016

Empfohlen: