Čím propojit RPi do clusteru?

Kit

Čím propojit RPi do clusteru?
« kdy: 23. 08. 2018, 20:58:33 »
Počítače se propojují různými technologiemi. Obvykle se nabízí Ethernet, ale ten u RPi Zero chybí. Zbývá USB, GPIO a HDMI. Které a jak byste využili k propojení do clusteru či gridu?



Kit

Re:Čím propojit RPi do clusteru?
« Odpověď #2 kdy: 23. 08. 2018, 21:27:49 »
https://hackaday.com/2016/01/25/raspberry-pi-zero-cluster-packs-a-punch/

To jsem četl, ale vadí mi tam ta (podle mne zbytečná) emulace Ethernetu s potřebou externího switche. Hledám něco kompaktnějšího, např. přes GPIO nebo přinejhorším USB.

kkt1

  • *****
  • 796
    • Zobrazit profil
Re:Čím propojit RPi do clusteru?
« Odpověď #3 kdy: 23. 08. 2018, 21:38:36 »
Ja tohle resim s jinou deskou a nic praktictejsiho nez ethernet me nenapadlo. Vzhledem k minimalnim prenosum ktere tam planuji mit mi reseni se switchem vyhovuje. Da se udelat seriova linka, I2C atd ale tohle v clustru efektivne nevyuzijes. Treba ale nekdo ma jiny napad.

RDa

  • *****
  • 2 622
    • Zobrazit profil
    • E-mail
Re:Čím propojit RPi do clusteru?
« Odpověď #4 kdy: 23. 08. 2018, 21:54:07 »
Nad podobnym poblemem jsem dumal s Tegra X1/X2. Jak NV tak BCM v RPi ma CSI/DSI rozhrani, takze by sel udelat driver ktery by zajistoval RDMA skrze tohle a pak v hardware by bylo mensi ci vetsi fpga provadejici vlastni switching fabric pro vsechny zucastnene, pripadne routovani mezi skupinama nodu. Alternativne lze vyuzit HDMI+CSI kdyz se mezi ne vlozi spravny prevodniky - ale to budete mit jen 2 nody.

Jaky pocet nodu uvazujes a jake jsou prenosove naroky (rychlost, latence) ?
Co na tom hodlas provozovat za aplikaci?

Potrebujes opravdu cluster (s nizkyma latencema), nebo by ti postacil cloud (propojeni pres ethernet) ?


Kit

Re:Čím propojit RPi do clusteru?
« Odpověď #5 kdy: 24. 08. 2018, 00:01:32 »
Jaky pocet nodu uvazujes a jake jsou prenosove naroky (rychlost, latence) ?
Co na tom hodlas provozovat za aplikaci?
Potrebujes opravdu cluster (s nizkyma latencema), nebo by ti postacil cloud (propojeni pres ethernet) ?

Chci začít se čtyřmi nody pro zkoušku a pak se uvidí. Chci na tom provozovat simulaci neuronové sítě, ale spíš jen tak pro zábavu. Ethernet bych chtěl vyloučit kvůli minimalizaci externích komponent.

Ja tohle resim s jinou deskou a nic praktictejsiho nez ethernet me nenapadlo. Vzhledem k minimalnim prenosum ktere tam planuji mit mi reseni se switchem vyhovuje. Da se udelat seriova linka, I2C atd ale tohle v clustru efektivne nevyuzijes. Treba ale nekdo ma jiny napad.

I2C vypadá jako dobrý nápad, ještě lepší by mohl být SPI. Díky za inspiraci.

R223

Re:Čím propojit RPi do clusteru?
« Odpověď #6 kdy: 24. 08. 2018, 14:23:38 »
Co uart? Pri trose snahy se da jet i multimaster, stejne, jako IIC (u toho ale nevim, zda to na PRI umi CPU a kernel driver).
Nebo USB, pokud implementace umoznuje Device mode (ale urcite na na plnem RPI, spis na ZERO, kde to jde z procesoru primu].

https://www.raspberrypi.org/forums/viewtopic.php?t=129653
Takze bys je pripojoval jen do hubu, jeden nechal jako ridici...

franci

Re:Čím propojit RPi do clusteru?
« Odpověď #7 kdy: 24. 08. 2018, 21:52:30 »
Takže něco jako https://clusterhat.com/ ?

kkt1

  • *****
  • 796
    • Zobrazit profil
Re:Čím propojit RPi do clusteru?
« Odpověď #8 kdy: 25. 08. 2018, 09:59:27 »
Kite, kolik chces mit ve finale tech rpi v clusteru? Jakkoliv se zamyslim u toho sveho projektu, tak pouziti eth mi vychazi u vetsiho mnozstvi jako nejrozumnejsi. Automatizace deploymentu, komunikace, monitoring, vse standardni veci ktere bych v pripade nejakeho serioveho spojeni musel ohybat. Ja treba potrebuji mit k dispozici moznost deploymentu (v soucasnosti pres ssh), web server a monitoring. Ve finale bych se chtel dostat k nejakym 100-150ks v jednom clustru s moznosti propojit vice clustru dohromady.

Tester

Re:Čím propojit RPi do clusteru?
« Odpověď #9 kdy: 25. 08. 2018, 10:41:02 »
Ve finale bych se chtel dostat k nejakym 100-150ks v jednom clustru s moznosti propojit vice clustru dohromady.

Koli comu chcete vybudovat takto velky cluster? Ved z pohladu financii, spotreby aj vykonu sa viac vyplati single server.

kkt1

  • *****
  • 796
    • Zobrazit profil
Re:Čím propojit RPi do clusteru?
« Odpověď #10 kdy: 25. 08. 2018, 11:44:37 »
Nebuduji to z rpi, ale z neceho jineho. Single server se 100 core (4xcpu) je cenove nekde jinde. Zajima me cena/vykon.

Re:Čím propojit RPi do clusteru?
« Odpověď #11 kdy: 25. 08. 2018, 17:42:04 »
Jaky pocet nodu uvazujes a jake jsou prenosove naroky (rychlost, latence) ?
Co na tom hodlas provozovat za aplikaci?
Potrebujes opravdu cluster (s nizkyma latencema), nebo by ti postacil cloud (propojeni pres ethernet) ?

Chci začít se čtyřmi nody pro zkoušku a pak se uvidí. Chci na tom provozovat simulaci neuronové sítě, ale spíš jen tak pro zábavu. Ethernet bych chtěl vyloučit kvůli minimalizaci externích komponent.

Ja tohle resim s jinou deskou a nic praktictejsiho nez ethernet me nenapadlo. Vzhledem k minimalnim prenosum ktere tam planuji mit mi reseni se switchem vyhovuje. Da se udelat seriova linka, I2C atd ale tohle v clustru efektivne nevyuzijes. Treba ale nekdo ma jiny napad.

I2C vypadá jako dobrý nápad, ještě lepší by mohl být SPI. Díky za inspiraci.

I2C ? Chcete se opravdu masochisticky trestat za jakoukoli komunikaci mezi uzly, jako aby to fakt bolelo, aby ty algoritmy, co na tom chcete zkoušet, byly nuceny vyvažovat komunikaci mimo uzel zlatem? Pravda je, že tak de facto zní zadání u ANN s paralelizací na dnešním hardwaru, kde výkon jednotlivých uzlů není úplně marný, ale konektivita odkudkoli kamkoli v nějakém paralelizovaném uspořádání OPRAVDU BOLÍ - a konektivita je bohužel v ANN dost důležitá...

Přemejšlím, jestli má cenu trénovat topologii sítě genetickým algoritmem na takhle slabém železe, a jestli má cenu se na něčem takovém pouštět do dnešních trendy "deep" topologií, resp. jestli se na takhle slabém železe dá cosi hodnotně natrénovat (nasát zkušenosti) za účelem následné extrapolace na velký a drahý hardware, pokud cílová úloha bude o dva řády rozsáhlejší než Vaše domácí cvičení...

Možná byste při použití interconnectu přes i2C dokázal ANN natrénovat na telepatickou komunikaci mezi uzly :-)

Obecně v clusterech a NUMÁch se lidi v komunikaci snaží o maximální průchodnost a minimální latence mezi uzly. Takže hned po GPU je komunikační technologie druhý nejprůchodnější hardware. HyperTransport, Infiniband, switchovaná PCI-e s NTB (non-transparent bridging) apod. Pokud bych stavěl cluster s nějakým "kozím dechem", tak RPi má pořád dost výkonný procesor, řádově srovnatelný s dnešním PCčkem, takže by měl dostat řádově srovnatelnou komunikační průchonost. Aspoň kdyby byl 1 lane PCI-e, a na to si něco pověsit. Nebo nativní Ethernet MAC on chip, ze kterého by šlo vytáhnout 100 nebo 1000 Mbps SERDES nebo 1000Base-KX (a bez PHY zapíchnout rovnou do switch matrix čipu) - tušímže s MII by to nešlo, switchovací matice sice umí MII na více portech, ale jenom v roli mastera=MACu (neumí se tvářit per port jako MII PHY). Na USB je blbé, že protější (device) konec nemá cosi jako nativní "many to many" bridge. Leda napsat něco do FPGA, co by se tvářilo jako N-krát USB Ethernet. Existují také PCI-e switche se schopností "netransparentního bridgování", takový šváb může mít třeba 96 linek, ale bude je mít sdružené po 8 nebo po 16 = nepůjde na něj pověsit 96x SoC s PCI-e x1. Hele koukám Broadcom (ex PLX?) má nějaký PCI-e switch, co umí 96 linek seskupit do do 24 portů.

Jako základní požadavek na propoj v clusteru bych viděl, že má umět bufferovaný přenos s trochu uměřeným využitím IRQ. Nikoli softwarový bit-banging. Tolik k nápadům s i2c nebo GPIO. Správně to má umět DMA, aby se s tím procesor fakt nemusel žužlat ani bajt po bajtu. A pokud se týče kapacity, jak rychle dokážete rozjet i2C? 100 kbps? No SPI by mohlo fungovat tak na 1 Mbps, ať nežeru. Ethernet v malých krabičkách dneska běžně 100 Mbps. A 1 lane PCI-e 2.5 Gbps. Takže oproti i2C jsme o 3-4 řády jinde...

P$delky stranou, ten Ethernet je podle mého zdaleka nejrozumnější možnost. I kdyby měl být navíc roubovaný na USB.

kkt1

  • *****
  • 796
    • Zobrazit profil
Re:Čím propojit RPi do clusteru?
« Odpověď #12 kdy: 25. 08. 2018, 17:57:05 »
Ten I2C u rpi myslim muzes rozbehnout az na skvelych 400kbps.  ;)
Problem s vetsim mnozstvim ethernet portu je kabelaz a switche. Ja resim tech 100-150ks za pouziti klasickych levnych gigabitovych switchu samozrejme v kaskade protoze za rozumnou cenu nic vetsiho nez 24portu proste neumim najit. Trafic mam minimalni, ale kdyz si predstavim, ze budu chtit tech rekneme spojit dohromady 10 clustru po 100 nodech tak z pohledu site si to neumim predstavit.

Kit

Re:Čím propojit RPi do clusteru?
« Odpověď #13 kdy: 25. 08. 2018, 19:25:22 »
I2C vypadá jako dobrý nápad, ještě lepší by mohl být SPI. Díky za inspiraci.
Jako základní požadavek na propoj v clusteru bych viděl, že má umět bufferovaný přenos s trochu uměřeným využitím IRQ. Nikoli softwarový bit-banging. Tolik k nápadům s i2c nebo GPIO. Správně to má umět DMA, aby se s tím procesor fakt nemusel žužlat ani bajt po bajtu. A pokud se týče kapacity, jak rychle dokážete rozjet i2C? 100 kbps? No SPI by mohlo fungovat tak na 1 Mbps, ať nežeru. Ethernet v malých krabičkách dneska běžně 100 Mbps. A 1 lane PCI-e 2.5 Gbps. Takže oproti i2C jsme o 3-4 řády jinde...

P$delky stranou, ten Ethernet je podle mého zdaleka nejrozumnější možnost. I kdyby měl být navíc roubovaný na USB.

Když teď čtu o I2C, tak asi fakt nemá význam, 400 kbps je málo. 1 MBps u SPI také nic moc. Chce to tedy něco s DMA. RPi Zero však Ethernet nemá. Existují ethernet moduly, ale ty by měly zbytečný konektor k propojení zbytečným kabelem s jiným zbytečným konektorem na ethernetovém switchi.

Existuje nějaký vhodný switch, který by interně měl Ethernet a který by se dal připojit přímo k RPi Zero?

Jose D

  • *****
  • 888
    • Zobrazit profil
Re:Čím propojit RPi do clusteru?
« Odpověď #14 kdy: 27. 08. 2018, 13:26:05 »
V býv. práci jsme měli ethernet v serverových chassis vyresenej čipy od Broadcomu. Je to SOC s switchovacim HW a nějakým ARMem ve kterém běží Linux z vestavěné flashky, kterej switch nastaví po připojení napájení a přes wannabe Cisco cli se nechá nakonfit přes sériovou linku/ip@eth . Některé umí dokonce stackování, což mi pro tvůj případ přijde jako zajímavé.

Koukal jsem ze se to nechá koupit i v kusovce. Takže záleží v jakých počtech tu tvoji konstrukci budeš vyrábět, a na kolik by vyšla implementace nějakého referenčního zapojení tohohle čipu do tvého boardu.