Je to ale neekonomické, mít POE swich, který stojí minimálně 2x tolik co bez POE, hned vedle zařízení, které jím napájené. U každého toho CM pak musí být POE modul, za cca 10€/kus.
1/3 racku budou jen POE switche. Navíc když jeden switch chcípne, vypadne vám napájení pro nějakých 48 nodů a nedá se s tím nic udělat. Když chcípne normální switch, přijdete maximálně o konektivitu, ale ne o rozdělanou práci a potenciálně o data. Když chcípne normální zdroj v serveru, práci převezme druhý.
Je to jen hračka, která navíc zavisí na CM4, které jsou dlouhodobě nedostupné.
PoE šváb s těmi pár rezistory okolo - například TPS2376 - nestojí 10€. Na druhou stranu ještě tam musíte mít zdroj z těch 48V zpět na 5, např. LM2576HVS. Tam je ale otázka jestli by samostatný napájecí konektor + kvalitnější a tlustší kabeláž (musíte na desku dostat přímo stabilizovaných 5V) + power distribution unit (aby vám zkrat v jednom Pi nesundal celý cluster a ještě to nějak brutálně neshořelo, a aby se nezapnula všechna Pi najednou což by způsobilo proudovou špičku) taky nestály tolik.
Na druhou stranu máte pravdu že to prodraží na straně switche.
Ty šváby samostatně tolik nestojí, ale je běžné, a je to vidět i z fotografií, že se používá právě off-the-shelf modul. Což pochopitelně není nic špatného, protože ten modul je alespoň ověřený.
Osobně si myslím, že zdroj by tam měl být "klasický" 12V/24V, a z toho by si každý "blade" dělal svých 5V a 3V3 a cokoliv dalšího je potřeba. Pochopitelně by nedávalo smysl tam mít zdroj na 5V/100A (počítám tak max. 5A/blade).
Ale jo, projekt je to pěkný a když jim to lidi zaplatí, proč ne. Je mám pocit, že je to jeden z mnoha R-Pi projektů, kde se něco dělá protože se může, a to ještě polovičatě, než aby se řešil nějaký problém.
Proč dva? Copak se normální blade servery připojují na nějaké kabely? Ne, je tam nějaký backplane, tedy propojující PCB s konektorem, kam se ten blade jen zasune. Uvnitř se tedy žádná kabeláž nekoná.
To 1U tam stejně zabere ten POE switch. Do 2U krabice by se vešlo tak 30+ blades i dva zdroje, takže hustota by byla víceméně stejná.
Tady by se pak i nabízel integrovaný switch pro všechny blades, s 10Gbe výstupem, takže by se ušetřilo 1/3 racku switchů... Tam by pak byla hustota i ekonomičnost úplně o něčem jiném...
Ať si to dělají jak chtějí, jen mi to přijde nedotažené, kdy kvantita vítězí nad kvalitou, a ještě vyjde dráž.
Ja myslim, ze to takhle navrhli s ohledem na cenu. Integrovany 10Gbit switch pro 30 portu navysi cenu o kolik? $1000? Co kdyz nemate vyuziti pro 10Gbit switch, budou nabizet alternativu bez switch? Asi se shodnem, ze to jde udelat o hodne lip. Ale kdyz to zacnete delat tak prijdete na financni limity (nikdo si nekoupi raspberry blade server za $20k), na produkcni limity (lead time na nektere komponenty je porad x mesicu), na limity ohledne kompatibility (proc 10Gbit kdyz tam muzeme dat rovnou 400Gbit), atd. To reseni za danou cenu mi prijde zajimave.
Nepotřebujete 30ti portový 10Gbe switch, stačí vám jeden, nebo více obyčejných 1Gbe switchů, respektive jen čipů, ty dnes v podstatě nic nestojí. 10Gbe port na uplink vám stačí jeden.
Takhle ten switch musíte taky kupovat, a navíc v drahé POE variantě. A u něj asi budete chtít mít taky 10Gbe uplink...
Vybrali zatím přes $660K, to jsou peníze, za které už se to dá udělat pořádně.
Za jeden kompletní 1U s 20ti moduly chtějí nějaké €4K, což není zrovna málo. K tomu si připočítejte 20+ portový POE switch a 20x NVMe disk dle výběru.
To je cenově srovnatelné s threadripperem, který bude výkonem úplně někde jinde...
Přemýšlím, k čemu by to bylo dobré. CM4 není žádný rychlík, 22nm docela žere, když se pustí naplno, bez chlazení to začne škrtit frekvenci. Pro 1 linku PCIe 2gen je NVMe docela škoda. Pro výpočty chybí slušnější akcelerace float64. Max. 128GB RAM jsou dnes čtyři DIMMy.
CM4 je skvělý na embedded věci, kde se využijí jeho široké I/O možnosti a současně nabízí slušný výkon na DSP. Ale jaké má výhody v serveru v racku?
Asi stejně jako ostatní stále nechápu, jaký je příklad použití, kdy je lepší mít třeba čtyři pomalá jádra, než za stejnou cenu jendo jádro, které ale za stejnou dobu spočítá desetkrát víc, než ta čtyři jádra. Vypadá to jako situace, kde by byl problém, pokud by se o jedno rychlejší jádro střídalo více úloh, a vyplatí se úlohu provozovat na pomalejším jádru, ale bez střídání – a pořád si nedovedu představit, jaký typ úlohy by to mohl být.
Vy pořád uvádíte počet jader, ale neuvádíte žádný typ zátěže, kde by záleželo na počtu jader a ne na jejich výkonu. U běžných programů je podstatný počet jader krát jejich výkon. Mne by právě zajímalo, co je to za typ aplikace, že by vadilo, že třeba 4 úlohy, které se počítají na 4 pomalých jádrech 1 sekundu, budou seřazené za sebe a jedno rychlejší jádro je vypočítá za 0,6 sekundy (tj. výsledek budete mít dřív, i když ty úlohy budou seřazené za sebe na jendom jádru).
Právě že u běžných aplikací to bude počítat úlohy za nižší cenu. Protože vám na stejnou práci bude stačit menší počet jader. Když je jádro šestkrát rychlejší, spočítáte na něm třeba pětkrát tolik, než na pomalém jádru. Když bude stát třikrát víc, než pomalé jádro, spočítáte toho za stejnou cenu víc na tom rychlém jádru než na třech pomalých.
Jsem jenom zvědavý, zajímal by mne ten typ aplikace, kde nezáleží na výkonu jader. Dovedu si představit, že je to nějaká realtime obsluha, kde by nějaký signál musel mít své vlastní vyhrazené jádro, protože by nebylo možné čekat byť jen pár taktů procesoru, než na něj přijde řada. Ale to mi zase nejde dohromady s RPi a jejich nastrkáním do jendé skříně.
Dobrý deň,
zapojím sa do úvahy... Viem si predstaviť aplikáciu napísanú tak, že spúšťa jedno vlákno pre jednu úlohu (nepoužíva epoll) a pri spracovaní robí I/O z pomalého zdroju. Napríklad po sieti odchytáva každý miliontý paket a potom nad ním robí chvíľku...
Druhý príklad z praxe (kde je dôležitejšia cache, ako čokoľvek iné). Aplikácia si drží objem nastávkovaných peňazí (náber) na jednotlivé stávky (vyhrá Slovan, vyhrá Menčester, Prvé podanie Džokoviča skončí v sieti, ....). Teda potrebuje potenciálne milióny, až miliardy, hodnôt. Následne potrebuje čím skôr vedieť povedať, či na niektorú stávku neprekročil novopodávaný tiket nejaký limit. Teda zoberie sa nový tiket a jeho stávky a pripočítajú k jednotlivým náberom a kontrolujú sa stropy (pri tenise nie viac ako 10k€ na náber, pri futbale nie viac ako 25k€, ...). Toto musí byť rychlé, minimálne ako potočenie rulety z end2end pohľadu. Tuná je vpodstate fajn mať veľkú cache (aby tam vošli všetky nábery). Osobne mám ale pocit, že stále výde jeden serverový x86 CPU lepšie, ako kpec nevýkonných armov.
lubo: V Linuxu ale vlákno programu není totožné s vláknem/jádrem procesoru. Linux má preemptivní multitasking, což znamená, že operační systém přiřadí vykonání nějakého softwarového vlákna na jádro procesoru, a po nějaké době zase jádro procesoru softwarovému vláknu odebere (vykonání softwarového vlákna přeruší). Takže v systému může být násobně více „běžících“ softwraových vláken, než kolik je skutečných jader procesoru. Tím, že se softwarová vlákna v běhu velmi rychle střídají to vytváří iluzi, že běží všechna najednou.
O tomto povedomie mam. Preto spominam cache. Ono ked v cache nieco mam, tak pristup k danej informacii trva radovo nanosekundy... Akonahle mi to ale niekto z cache vyhodi, tak som o rad az dva inde s casom pristupu. Ci sa mi medzitym spusti iny proces, alebo nie, je vpodstate takmer jedno (zo statistickeho pohladu, bo contex switch je tiez drahy).
Ja len, ze cache by mohla byt dovod, preco cloveku nezalezi na vykone/takte procesora, ale na ich pocte. Na druhej strane, ten Rpi CM4 ma procak BCM2711 a ten ma uvedene: Caches: 32kB data + 48kB instruction L1 cache per core. 1MB L2 cache. Teda pri 4 jadrach to je zaokruhlene 1MB L2 cache. Akykolvek xeon bude mat 8MB cache (nejaky model z 2017), takze aj v tomto smere nie je vidno zmysel "radsej viac jadier, ako rychle jadro".
Kam som smeroval s tym preemptivnym multitaskingom: SKuste si nasimulovat 1000 android telefonov stahujucich jeden subor cez http protokol a simulujte im linku napriklad 2kbps. Spravte to s vlaknami a dajte vediet, ako to bude bezat na xeone a ako na klastri 1000 kusov Intel 8086 cpu. Sem smerujem, ze tu by mozno dane tvrdenie "radsej viac jadier, ako rychle jadra" mohlo mat zmysel. Teda pri vysoko neefektivnej architekture riesenia problemu.
PS: Na mojom notasi som sa k viac ako 2700 beziacich klientov nedostal... (minimalisticky C kod) Ale pritom jednoduchy javovy kod vyuzivajuci epoll zvladol 100000 beziacich klientov a ani sa nezapotil (samozrejme, vyuzival len jedno vlakno).
12. 2. 2023, 20:29 editováno autorem komentáře
lubo: Pokud myslíte cache procesoru, tam se nevejdou miliony nebo miliardy hodnot. Navíc v tom vašem příkladu byste nejvíc času strávil na výběru toho správného vlákna, kterého se daný případ týká.
Ale směřujete k tomu, co jsem psal – zátěž, která potřebuje okamžitou reakci procesoru, takže nemůže čekat, až bude naplánována na procesor. Jenže to vyžaduje realtimeový operační systém – a pokud by na to nestačil realtime linux na platformě amd64, nezachrání to RPi. A už vůbec ne RPi v clusteru, protože komunikace mezi uzly bude o několik řádů pomalejší, než plánování na jendom procesoru.
U té simulace souběžných spojení bych tipoval, že vyjde levněji jeden pořádný stroj než ta řada RPi. Nemluvě o tom, že je jednodušší to naprogramovat pořádně pomocí epoll než ten naivní kód složitě distribuovat do clusteru.
Každopádně já určitě netvrdím, že neexistuje případ, kdy by to dávalo smysl – věřím, že Ratbatcat ví, proč to tak dělá. Jen bych to chtěl pochopit, abych se poučil.
Filipe, rychle jadro bude pocitat ulohy rychlejc ale za vyssi cenu. A o naklady tady jde, proc platit $11k za neco co muzu mit za $1k. Aplikaci je jedno jestli jestli ji spustim na 10x128cores nebo na 500x2 core.
Já to ale taky nechápu. Obhajuješ tady řešení, ale přitom sdílíš jen jednu konstantu.
Minimální informace ale jsou CPU+RAM+konektivita+vytížení, a dále provozní náklady za měsíc/rok, včetně toho, že některé to RPI se občas posere a je potřeba ho nahradit == extra čas + peníze.
Tím nechci říct, že tvoje řešení je špatné, ale bez kalkulace a minimálně srovnání s něčím jiným je to neobhajitelné, protože většinou platí, že čím lepší technologie (čti litografie), tím lepší provozní náklady, které jsou mnohdy důležitější než pořizovací cena HW. A RPI na 22nm není efektivní, v podstatě minimálně 4x pomalejší než starší X86 CPU. U moderního X86 jádra to bude někde kolem 6x.
Kdybych počítal, že jedno moderní jádro je 6x rychlejší než jedno RPI jádro, tak jeden AMD Ryzen 7950X by nahradil asi 48xRPI4 a potřeboval by 64GB RAM, aby měl 2GB / 1 thread (tak jako RPI4B 8GB). Jedno RPI4B 8GB se dá koupit v ČR za ~100$, takže 48 RPI by stálo 4.800$ a mělo by spotřebu 6W*48 == ~290W - naproti tomu ten Ryzen by se dal nastavit do ECO módu 65/100W.
Naprosto jednoduchá kalkulace, která zohledňuje v podstatě jen ten CPU výkon. Schválně jsem vybral jen levný desktop CPU, protože RPI taky není nijak certifikovaný pro server použití a taky nemá ECC RAM.
Pro informaci RPi4 má v "openssl speed rsa4096" v jednom vlákně 29.8/2284 a ve čtyřech 119/9107.
Ryzen 9 5950X (16core 32thread) má v jednom 173/11681 a ve 32 2405/201255.
Takže jednovláknově je v tomto (nereprezentativním) testu 5.5x rychlejší (takže ten novější Ryzen bude 6x jak píšeš), a celý procesor nahradí 21 Raspberry, nikoli 48 jak píšeš, protože sis asi popletl thread a core, zas tolik tomu „hyperthreading“ nepomáhá.
Ale ten komp s Ryzenem IMHO fakt stál a žere trochu méně než 21 RPi + bych k nim musel řešit napájení, pospojování, SD karty, management… (zase je to trochu víc redundantní, i když jednotlivé nody budou nespolehlivé).
Ale překvapilo mě, že ten rozdíl není řádový, ale jenom několika málo násobný! Na první pokus bych tipoval že to bude klidně 10x, ne ~2x!
12. 2. 2023, 21:40 editováno autorem komentáře
Ten vypocetni vykon vychazi trochu jinak. Elektrina je tady levna (bydlim v US), prostor nikdo neresi, a ano, manazment toho celeho mixu ruznych zarizeni byl potencionalni problem, do chvile nez jsme ho proste prestali resit. Novy stroj se zapoji, kazdy z tech stroju ma svuj image ve kterem je uplny prd, dostane to adresu z dhcp a instalacni skript z image nainstaluje aplikaci a ta pak bezi. Pokud to umre tak u ceny $50 za kus nikdo neresi proc to umrelo, proste se to nahradi jinym strojem. Ani u ceny $200 se neoplati delat jakykoliv troubleshooting. Za rok “odejdou” stroje za par tisic. Nikoho u tohodle nezajima ecc ram nebo eko mod, kazdy z tech stroju zpracuje nejakou operaci ve ktere jsou nejake pomale I/O, jsou tam nejake mezioperace na zpracovani kterych je ten stroj zavisly a pak to nekam posle vysledek. Kazdy z tech stroju zpracovava paralelne xx operaci. Jak tady nekdo spravne poznamenal, ty cisla u tisicu procesu vychazeji trochu jinak. Jak jsem psal zkouseli jsme tomu naivne dat nejlepsi ryzen na trhu a vykon ve srovnani s 10core intel nenaplnil ocekavani, proto jsme zkusili jit cestou vicero stroju s nejakym minimem zdroju. Ta aplikace samozrejme neni napsana optimalne, ale znate to… Jestli je tohle dlouhodobe reseni netusim, zatim to dela to co ma a generuje to zisk. Porad ale zkousime novy/jiny hw a dle nejakych benchmarku budto kupujeme neco noveho nebo ne.
Ja se moc nechci tady rozepisovat o te aplikaci, zaujala me zpravicka o produktu ktery nam treba umozni do budoucna neco resit trochu jinak. Treba.
Dakujem za poodhalenie urcenia. Relativne si to uz viem predstavit a asi by som si vedel predstavit i realne nasadenie, kde by rpi cluster potiahol nejaku firmu riesiacu nakup/predaj akcii a podobne. Teda nie HFT (high frequency trading), ale nejaky sprostredkovatel predaja a nakupu akcii, ktory pouziva dalsich sprostredkovatelov a podla aktualnej ponuky vybera nejaku optimalnu strategiu, ako pre klienta nakupit/predat, co chce.
Mne napadlo využití pro nějakou distribuovanou databázi alá OpenIO https://en.m.wikipedia.org/wiki/OpenIO
A nechtělo by to spíš prvně udělat Kickstarterovou kampaň na výrobu RPi desek? Je docela k smíchu mít rack na 20 modulů s RPi, když za poslední dva roky se v rpishopu apod. objevily řádově jednotky kusů, obvykle ještě v nějaké "výhodné sadě" s knihou a krabičkou za dvojnásobnou cenu.
Btw. na Farnellu je CM4 momentálně k dostání pouze pro výrobce a s dobou dodání krásných 373 dnů! :-) Čili s výrobou těch bladů netřeba spěchat, máte na to víc jak rok ;-).
Paralelne s Ivanovym projektom , bezi aj moj startup beby.cloud - Cloud Computing pre kazdeho. Ide tiez o nizkoenergeticky pocitacovy cluster , poskladany z minimalistickych BeBy pocitacov okolo CM4. Moj projekt nema velku publicitu , ale uz bol sucastou Accace Inccubatora v 05/2022 a aj som sa s nim zucastnil na TechStars Startup Weekend 11/2022. O projekte vysiel aj rozhovor v Inovia Startap Fore Zilina viz linka nizsie. Kedze asi poznam slovensku aj cesku mentalitu , viem ze projekt bude roztrhany na kusy ako sa mi to uz viac krat stalo, ale aj napriek tomu sa rad podelim o Vas nazor. PS: verte , naozaj nie je v dnesnej dobe postavit na nohy takyto projekt a klobuk dolu davam aj Ivanovi, ze to celkom slusne rozbehol. Robert
Pre zaujemcov spominany link
https://inovia.sk/2023/03/31/cloud-computing-pre-kazdeho-startup-beby-cloud-ponuka-riesenie/