Posted on mart. 23, 2019 | 0 comments

So yeah – mi-am făcut un cluster din Pi-uri. 1GB RAM, Procesor ARM la 1,4GHz fiecare, 1 port ETH Gigabit, 4x USB 2.0, alimentare de la 5V și un rack. Un USB HUB și un switch care a intrat la mi-li-me-tru în rack-ul cu 5 etaje. Pus Raspbian lite pe ele, legat prin cabluri UTP.

Voila.

Let’s see it in action a bit:

 

Clusterul îl controlez fie printr-un BASH parsând comenzi cu drept de admin folosind fab (cu un pachet Python numit fabric și scriptul de mai jos), fie cu clusterssh și un /etc/clusters predefinit.

Script fabfile.py în ~ rulând pe Python și fabric 1.x:

from fabric.api import *
env.hosts = [
#RPi1
'pi@192.168.1.126',
#RPi2
'pi@192.168.1.252',
#RPi3
'pi@192.168.1.124',
#RPi4
'pi@192.168.1.150',
]
# parola in plaintext but fuckitall, you only live once
env.password = 'PAROLA'
# lanseaza comanda pe toate 4 Pi-urile
@parallel
def cmd(command):
sudo(command)

Conținut /etc/hosts:

192.168.1.124 rpi3
192.168.1.126 rpi1
192.168.1.150 rpi4
192.168.1.252 rpi2

Conținut /etc/clusters (pentru clusterssh):

picluster pi@rpi1 pi@rpi2 pi@rpi3 pi@rpi4

Hub-ul USB pe care l-am luat nu duce 5V la toate așa că am luat altul de pe eMag – unul cu sursă direct la priză, fără transfer de curent prin cablu USB și adaptor. Nici cablurile USB pe care le-am luat nu-s OK, pierd curent, așa că le-am înlocuit cu altele. Între timp am mai comandat un rack de 5x ca să suplinesc treptat cu Pi-uri clusterul, până ajung la 10x bucăți.

Am și un router TP-Link care merge și cu USB 3G, și ca AP, și ca router. Ca înălțime e fix de înălțimea switch-ului și de aceeași lățime, deci încape și el în rack perfect:

Ei – și Pi-urile sunt legate prin cablurile UTP la switch, switch-ul legat prin eth0 la router, routerul făcut AP sau ceva și legat prin WiFi la ASUS-ul meu dual-band, probabil pe banda de 2,4 (cred că atâta duce pe WiFi) și pus totul frumos în priză undeva pe dulap, lol.

Fun times.

Temperatura e OK (coolerele sunt pe drum oricum). Cablurile și/sau adaptoarele USB de alimentare de la rpi1, rp2 și rpi4 trebuie schimbate că nu conduc bine curentul, aparent.

 

Compilând pachete R din CRAN simultan