Linuxový cluster pro výpočty

Re:Linuxový cluster pro výpočty
« Odpověď #15 kdy: 28. 06. 2018, 14:31:36 »
Ono pokud to jede nad intenzivně sdílenými daty v RAMce, tak může být i rozdíl mezi 1x 32core vs. 2x16 vs. 4x8 core (jedna/dvě/čtyři patice) - za předpokladu, že propoj mezi paticemi (HT/QPI) je pomalejší, než interní sběrnice v rámci patice. Každopádně snaha emulovat SMP (NUMA) nad Ethernetem je už na první pohled špatný nápad :-)

Takhle kdyby ten software uměl řešit "lokalitu" alokované RAM a CPU jádra. Tzn. kdyby si byl vědom NUMA struktury stroje. Resp. aspoň kdyby úloha byla s ohledem na nestejné latence v NUMA topologii nějak optimalizovatelná. Linux má o těchto věcech interně přehled a údajně může proces "svoje" alokované "virtuální" stránky přestěhovat na konkrétní NUMA uzel (resp. má právo o to požádat.) Jenom mi ohledně linuxu/libnuma není jasné, jestli se baví jenom o procesu (pid) nebo v jemnějším smyslu slova o vlákně. Našel jsem třeba zmínky, že Linux se snaží vlákna v rozvlákněném procesu spouštět na jádrech v rámci jediné "patice" (numa uzlu) - ale "co když chci aby vlákna běžela napříč celým NUMA strojem a měla přehled o svých alokacích paměti" ? To je podle mého téma na další googlení, průzkum bojem a debatu v LKML. Náznak jsem zažil kdysi když jsem zjišťoval, jak si nechat probudit kernelovým timerem konkrétní vlákno, tzn. nikoli celý proces. (Pozn.: syscall gettid() je tuším už normálně k dispozici i skrz glibc.) Všimněte si třeba nejednoznačného užívání termínů proces, vlákno a hlavně "task" - člověk musí pořád zkoumat, jestli se bavíme o user space, kernelu a na jaké úrovni abstrakce, jak to mapuje NPTL apod. Konkrétně: výše odkázaná manpage knihovny libnuma používá "task" ve smyslu rozvlákněný proces, kdežto v kernelu "struct task_struct" odpovídá jednotlivému user-space vláknu :-( Přesto se domnívám, že jestli je někde šance, tohle všechno rozplést a "nalinkovat po svém", tak je to v Linuxu. Jindy taktéž velice pokrokové FreeBSD zde patrně teprve dohání náskok.

S uvedenou problematikou volně souvisí další finta: snažit se, aby algoritmus pokud možno "běžel v CPU cache" - v rámci jednoho vlákna na konkrétním CPU jádře (popř. v rámci NUMA uzlu). Což je ovšem těžko splnitelné, pokud jsou data křížem krážem provázána odkazy (pointery) = úlohy typu "procházení rozsáhlého grafu" se takto optimalizovat z principu nedají :-( a budou vyžírat vždycky ty nejhorší latence.

Závěrem odkaz na jedno hezké PDF o těchto věcech...


alfonz

Re:Linuxový cluster pro výpočty
« Odpověď #16 kdy: 28. 06. 2018, 16:08:20 »
Používal už někdo tady to ScaleMP? Vypadá to jako spása pro různá nasazení (neexistuje něco obdobného?). Může se o tom někdo rozvykládat? Mimo zajímalo by mě zda už existuje nějaký distribuovaný operační systém, který se nainstaloval na více serverů a následně by se chovali jako 1?

Řešíme totiž nyní jak jednoduše spouštět více stejných aplikací na různých servrech; jsou to to síťové aplikace a je potřeba zajistit jejich dostupnost ideálně z jedné ip a rozlišit mezi tím, který uživatel je zapnul / a přistupuje k nim (data by měly mít nějak vhodně synchronizovaná)

Pokud by se totiž, všechny počítače chovali jako jeden dohromady, tak by to řešilo hodně různých situací vcelku elegantně.

baremetal

Re:Linuxový cluster pro výpočty
« Odpověď #17 kdy: 28. 06. 2018, 20:43:54 »
vcera prislo, spot price server je za par dolaru (tech ARM 96 jader ale moc rychle nepocita)
packet.net

The AMD EPYC Challenge
You all know how much we enjoy partnering up with our friends in the hardware ecosystem, and AMD has been no exception. Great people, great tech and that good old “AMD” vibe. With that spirit, we cooked up our own version of the Ice Bucket Challenge (remember that?).

 

Here’s the deal:
1.   Try Your Workload on EPYC - We’ll give you $250 towards usage of our c2.medium config. Just fill out the form over here and you can kick the tires, courtesy of AMD and Packet.
2.   Publish a Detailed Teardown - If you blog about your results, we’ll hook you up with $1500 in additional credit (while it lasts). The more technical the better! Not bad for a weekend, right?
3.   Win EPYC For a Year - We’ll run a community Slack channel vote for the most impressive and geeky published results. The winner gets a pair of c2.medium machines, free for a year! Boom.

uuuuu

Re:Linuxový cluster pro výpočty
« Odpověď #18 kdy: 28. 06. 2018, 21:10:39 »
Používal už někdo tady to ScaleMP? Vypadá to jako spása pro různá nasazení (neexistuje něco obdobného?). Může se o tom někdo rozvykládat? Mimo zajímalo by mě zda už existuje nějaký distribuovaný operační systém, který se nainstaloval na více serverů a následně by se chovali jako 1?

Řešíme totiž nyní jak jednoduše spouštět více stejných aplikací na různých servrech; jsou to to síťové aplikace a je potřeba zajistit jejich dostupnost ideálně z jedné ip a rozlišit mezi tím, který uživatel je zapnul / a přistupuje k nim (data by měly mít nějak vhodně synchronizovaná)

Pokud by se totiž, všechny počítače chovali jako jeden dohromady, tak by to řešilo hodně různých situací vcelku elegantně.

hledal bych SSI (single system image)
openmosix

andy tanenbaum delal davno amoebu, ale to uz je dneska mrtvy system.

Alfonz

Re:Linuxový cluster pro výpočty
« Odpověď #19 kdy: 29. 06. 2018, 05:49:40 »
Hm > tak ten Mosix sice žije, ale nepodporuje vícevláknové aplikace (dle dokumentace, by to asi umělo dělat to co je potřeba). Openmosix je imho mrtvý.

Divím, se trochu tomu, že tohle není mnohem více používané a že v minulosti bylo spousta programů, ale nyní téměř žádné případně s restrikcí. Tušíte někdo kolik to scalemp stojí např pro 20 /60 CPU a zda je to možné nějak vyzkoušet?