Erstellen eines Heimserver-Clusters für die Datenanalyse

2644
user1074057

Ich habe hier ein paar Fragen gesehen, die denen ähnlich sind, die ich denke, aber nicht ganz. Also dachte ich, ich würde fragen und sehen, was rauskommt.

Grundsätzlich habe ich 2 oder 3 alte, langsamere Laptops herumliegen. Was ich gerne tun würde, ist das Clustering dieser Computer, um einige "peinlich parallele" Datenanalyseprozeduren an ihnen durchzuführen (z. B. das Trainieren eines Machine Learning-Algorithmus auf vielen verschiedenen Kernen). Genauer gesagt möchte ich Python-Code (scikit-learn, der auf vielen verschiedenen Kernen ausgeführt werden kann) auf diesem Cluster ausführen.

Im Idealfall möchte ich einen Cluster mit den drei miteinander verbundenen Laptops und ein Speichergerät (1-2 TB) im Netzwerk haben. Ich möchte dann die Skripts schreiben, um meine Datenanalyse auf meinem aktuellen Laptop durchzuführen, auf den Cluster irgendwie zuzugreifen (ssh?) Und die Skripts auf den Daten ausführen, die auf dem verbundenen Gerät gespeichert sind, während die Analyse auf die verschiedenen Laptops aufgeteilt wird. Gedanken?

Ich habe einiges über Beowulf-Cluster, Clustering mit Ubuntu und andere Dinge gelesen. Ich habe jedoch 0 Erfahrung mit Netzwerken, Clustering, Unix-Befehlen usw. und verstehe nichts davon wirklich. Ich bin bereit zu lernen, habe aber keine Ahnung, wo ich anfangen soll, also wären Tipps, Ressourcen und Vorschläge sehr dankbar.

1

4 Antworten auf die Frage

2
Luis

Vielleicht finden Sie in Beowulf eine interessante Lösung für Ihren Fall.

0
Gergely Szilagyi

Wenn Sie sich nicht mit den einfachen Details des Clusterings befassen möchten, sollten Sie einen Blick auf BOINC http://en.wikipedia.org/wiki/BOINC werfen . (Relativ) einfach einzurichten, viel Spaß :)

0
Drizzt321

Wenn die Laptops sehr alt sind, ist es möglicherweise schneller, eine neue Einzelmaschine zu kaufen, die die Arbeit viel schneller erledigen würde. Oder kaufen Sie eine ganze Reihe der neuen, winzigen, ARM-basierten Linux-Maschinen (RaspberryPi et al.), Die recht günstig sind, und verkabeln Sie sie für viele CPUs in einer recht kompakten Größe.

Wenn Sie nur herumspielen und etwas lernen möchten, lesen Sie die anderen Antworten zum Clustering.

0
chuck

In Ihrer Situation würde ich lernen, Verzeichnisse mit NFS gemeinsam zu nutzen, damit jeder Rechner auf dieselben Daten zugreifen kann. Für dieses Beispiel rufen wir das Verzeichnis / data auf. Dann möchten Sie ssh so einrichten, dass es ohne die Verwendung von ssh-Schlüsseln (ssh-keygen) funktioniert. Von dort aus möchten Sie wahrscheinlich Skripts erstellen, wahrscheinlich in Python, da Sie es sowieso verwenden werden, um die Ausführung Ihrer Jobs zu automatisieren. Ihr Skript führt am Ende etwas nach "ssh otherlaptop doexecutable / data / datafile" aus. Sie können auch etwas wie den Drehmoment-Ressourcen-Manager oder Slurm (einfaches Linux-Hilfsprogramm für Ressourcen-Management) verwenden, um die Ausführung auf den Laptops auszuführen. Sie benötigen jedoch weiterhin ein Skript, um die Jobs zu erstellen, die Sie an Drehmoment / Schleudern weitergeben würden.