logo
16.01.2021 13:37
1
Jde nějak v domácích podmínkách (nebo v malé firmě) rozložit zátěž na více počítačů?

Jak to vysvětlit ...

Tedy, mám několik počítačů (každý za nějakým účelem, ale v danou chvíli je považujme za nevyužité).

Sedím a pracuju u jednoho z těch počítačů či notebooků. Mám na něm všechny potřebné aplikace a data. Občas toho je poměrně hodně (spuštěného apod.)

1) mohu nějak udělat, aby ostatní počítače pomohli tomu jednomu, u kterého sedím, s výkonem?

2) pokud ne, tak mohu alespoň nějak udělat, aby se výkon některé vybrané "žravé" aplikace (např. střihnutí videí) rozložil na dva - tři - více počítačů??

Dik


P.S. Pokud to jde, ale jen s omezeními (např. jen určitý HW, jen určitá OS, apodobně, tak přesto radu napište, dík)

P.S.2
pokud by nešel ani bod 1. ani bod 2., tak alespoň jestli by šlo pouštět nějakou vybranou aplikaci přes vzdálenou plochu (RDP/xwindows/apod...), ale 100% transparentně - t.j. že by všechny klávesové zkratky a komplet ovládání fungovaly tak, jako když okno aplikace jede lokálně a ne tak, jako když aplikace běží v okně té nějaké vzdálené plochy.
16.01.2021 15:06
2
asi musíš být konkrétní o které aplikace se jedná, ty to musí podporovat.

Vždy vychází levněji prostě koupit silnější počítač, dokud to jde. Na video občas dodáváme bestie s 200 cpu, 1 TB ram, 8 GPU, cena cca 5 mio za kus. Pořád to je levnější než to dělat na více počítačích, hledej na googlu něco jako render farm a uvidíš, firmy si za ten SW nechávají draze platit.

Vzdálenou plochu jde použít, ale vznikne ti tam drobné zpoždění při ovládání, data musíš na druhý počítač nakopírovat ručně a držet je synchronizovaný.

Výpočetní clustery navrhuji pro velké klienty a jejich blackblox SW, ale jen moje konzultace vyjde na víc než prostě v Alze koupit to nejsilnější co tam mají. Rozkládat zátěž vždy nějak lze, ale nevyplatí se to u jednotek počítačů, náklady na licence, lidi a konfiguraci jsou vysoké. Když si to umíš udělat sám, proč ne, jinak je to dost drahé. U běžných počítačů budeš bojovat s strašně pomalou sítí a nedostatkem portů a její rozšíření.
16.01.2021 15:10
3
rozložení zátěže musí podporovat aplikace samotná plus občas to vyžaduje i nějaký konkrétní hw k tomu určený. popsaný scénář z tvé strany však není možný.

řešením je bod č. 2, tedy mít některé výpočetně náročné aplikace na dedikovaném stroji. mám to takto podobně s virtualizací, když mi běží na mé mašině už 3-4 vm tak ej to hodně pomalé a zdržuje mě to v práci. je však otázkou co je výhodnější, jestli mít dedikovaný stroj na výpočetní operace a něco jako klienta na obyčejné kancelářské práce, nebo částky za oba stroje investovat do výkonnějšího jednoho stroje ...

---------- Příspěvek doplněn 16.01.2021 v 15:12 ----------

p.s.: v RDP ti poběží většina běžných zkratek, kromě těch co používají samotné windows v RDP, například CTRL+ALT+END.

pokud budeš provozovat nějaké aplikace skrze RDP, některé by to mohly vyhodnotit jako provoz na terminálovém stroji a za to se připlácí ...
16.01.2021 15:55
4
Původně odeslal TomášX
asi musíš být konkrétní o které aplikace se jedná, ty to musí podporovat.
Chtěl jsem vědět jestli je to možné obecně (na úrovni operačních systémů)

Původně odeslal TomášX
Vždy vychází levněji prostě koupit silnější počítač, dokud to jde.
Pokud by to šlo - a věděl bych jak - mohu to použít opakovaně - dnes, za 5 let znovu s jiným hw, za 10 let znovu a tak furt fál.
Každých pár let kupovat počítač z horní části nabídky (teď třeba za sto litrů) - nemyl se, ono to časem taky naskáče ;-)

Původně odeslal TomášX
.... render farm a uvidíš, firmy si za ten SW nechávají draze platit.
Takže tedy není nějaký sw z oblasti clusterů nebo jak se dělaly distribuované výpočty nebo cokoli z této oblasti, co by bylo zdarma, open source, atp? Nebyl by problém se tomu chvíli věnovat a nastavit si to, pokud by to bylo něco alespoň trochu zajímavého ;-)
Takže to berne tak, že bych si to dělal sám ;-)

Operační systémy (i placené) to žádný nenabízí?

Vidím eminentní zájem a mraky odvedené práce na virtualizaci a kontejnerizaci a podobných věcech - tak mne napadlo, že toto, i když to jde naoko opačným směrem, s tím přeci taky souvisí, ne?

Původně odeslal TomášX
U běžných počítačů budeš bojovat s strašně pomalou sítí a nedostatkem portů a její rozšíření.
O jaké rychlosti by šlo? Běžně se přeci různá řešení rozhazují na víc počítačů (např. vydělený DB server)


--



Tedy, pokud by to v nějaké konfiguraci mělo smysl (dejme tomu, že tedy třeba doma ne, ale v té firmě třeba už jo), tak které první nejlevnější nebo nejdostupnější řešení by to bylo?
16.01.2021 16:11
5
Původně odeslal bikesp
Chtěl jsem vědět jestli je to možné obecně (na úrovni operačních systémů)



Pokud by to šlo - a věděl bych jak - mohu to použít opakovaně - dnes, za 5 let znovu s jiným hw, za 10 let znovu a tak furt fál.
Každých pár let kupovat počítač z horní části nabídky (teď třeba za sto litrů) - nemyl se, ono to časem taky naskáče ;-)



Takže tedy není nějaký sw z oblasti clusterů nebo jak se dělaly distribuované výpočty nebo cokoli z této oblasti, co by bylo zdarma, open source, atp? Nebyl by problém se tomu chvíli věnovat a nastavit si to, pokud by to bylo něco alespoň trochu zajímavého ;-)
Takže to berne tak, že bych si to dělal sám ;-)

Operační systémy (i placené) to žádný nenabízí?

Vidím eminentní zájem a mraky odvedené práce na virtualizaci a kontejnerizaci a podobných věcech - tak mne napadlo, že toto, i když to jde naoko opačným směrem, s tím přeci taky souvisí, ne?



O jaké rychlosti by šlo? Běžně se přeci různá řešení rozhazují na víc počítačů (např. vydělený DB server)


--



Tedy, pokud by to v nějaké konfiguraci mělo smysl (dejme tomu, že tedy třeba doma ne, ale v té firmě třeba už jo), tak které první nejlevnější nebo nejdostupnější řešení by to bylo?
Jestli to není tajné o jaké aplikace ti jde? Píšeš že máš počítač za 100k, co na něm děláš že potřebuješ využít výkon ještě dalších v tu chvilku nečinných pc.
16.01.2021 23:30
6
Původně odeslal bikesp
Chtěl jsem vědět jestli je to možné obecně (na úrovni operačních systémů)

Pokud by to šlo - a věděl bych jak - mohu to použít opakovaně - dnes, za 5 let znovu s jiným hw, za 10 let znovu a tak furt fál.
Každých pár let kupovat počítač z horní části nabídky (teď třeba za sto litrů) - nemyl se, ono to časem taky naskáče ;-)
Obecně není, operační systémy a ani HW není na tohle nevržen, SW s tím nepočítá. Je velice těžké napsat program, který by pracoval na více strojích zároveň bez asistence toho programu.


Původně odeslal bikesp
Takže tedy není nějaký sw z oblasti clusterů nebo jak se dělaly distribuované výpočty nebo cokoli z této oblasti, co by bylo zdarma, open source, atp? Nebyl by problém se tomu chvíli věnovat a nastavit si to, pokud by to bylo něco alespoň trochu zajímavého ;-)
Takže to berne tak, že bych si to dělal sám ;-)
Pro velké výpočetní clustery se píše extra SW, který s tím umí pracovat a umí práci rozkládat. Ze strany HW tady máme specializované technologie jako RDMA, iSCSI, infiniband, které se k tomu používají (tohle si klidně můžeš koupit domů, sám to používám pro svoje uložiště).

Zásadní problém ale je, že většina programů (a zejména jejich kompilátorů) předpokládá, že některé instrukce se vykonají velice rychle (jednotky cyklů procesoru), pokud bys chtěl nějakou instrukci spustit na jiném počítači, trvalo by to o 3 - 4 řády déle (tj. ms), to je obrovský rozdíl, pak aplikace nemůže za sebou vychrlit milion stejných instrukcí, ale musí je nějak dávkovat a počkat si na výsledek (asynchronní vykonávání kódu, podobně jako fungují programy pro GPU). Tohle ale nelze jen tak zajistit změnou kompileru, musíš i přepsat samotný program a jeho části, aby byl kód vhodně strukturovaný.

Samotný SW se často píše v nízkoúrovňových jazycích jako Cobol, C++, Fortran, existuje třeba i upravený Linuxový kernel pro použití RDMA s běžnými aplikacemi (https://github.com/SoftRoCE/rxe-dev), opět ale musíš pro něj aplikaci připravit, aby fungovala dobře. Nebo existují vysokorúvňové abstrakce pro běžné programátory nad IP sítěmi jako elixir, julia (julialang.org) či si lze napsat nějaké distribuční výpočetní modely nad jakýmkoliv jiným jazykem.

Samotné GPU jsou navrženy velice moderně a již nativně umí kód distribuovat na jiné výpočetní jednotky, toho třeba využívají i herní grafiky a technologie jako Nvidia SLI, kdy propojíš více grafik dohromady. Díky síťovým platformám jako infiniband a RDMA můžeš spojit spousty grafických karet napříč celým datacentrem, to je přesně co klientům děláme. Opět ale platí, že nad tím nespustíš cokoliv, ale speciální SW, který je psaný v jazyce těch GPU (např. CUDA, opencl).


Původně odeslal bikesp
Operační systémy (i placené) to žádný nenabízí?

Vidím eminentní zájem a mraky odvedené práce na virtualizaci a kontejnerizaci a podobných věcech - tak mne napadlo, že toto, i když to jde naoko opačným směrem, s tím přeci taky souvisí, ne?

O jaké rychlosti by šlo? Běžně se přeci různá řešení rozhazují na víc počítačů (např. vydělený DB server)
Jak jsem psal výše, problém je už samotný kód jednotlivých aplikací, který nepočítá s tím, že jednotlivé instrukce budou trvat dlouho, operační systém bez přepsání SW s tím moc neudělá.

Ano, databáze a jiný SW je často na více počítačích zároveň, ale je na to speciálně napsán a počítá s tím, zpravidla používá běžný ethernet a IP síť pro vzájemnou komunikaci. Některé databáze rádi využívají sdílený disk přes NFS, iSCSI (to třeba používá Alza pro svoji databázi). Poslední dobou si rádi databáze řeší uložiště sami, takže vznikají věci jako kudu.apache.org, couchbase.com, cassandra.apache.org a tisíce dalších.

Nebo existují celé open source platformy pro vytváření distribuovaného SW jako project-thrill.org, spark.apache.org, hadoop.apache.org.

Původně odeslal bikesp
Tedy, pokud by to v nějaké konfiguraci mělo smysl (dejme tomu, že tedy třeba doma ne, ale v té firmě třeba už jo), tak které první nejlevnější nebo nejdostupnější řešení by to bylo?
Klasicky, dokud lze u klientů koupit větší počítač, výjde to vždy levněji. Nejlevnější co do firem dodáváme je databáze na více počítačích zároveň, hledej věci jako multi-master replication, všechny velké databáze to podporují. Tím se řeší rozložení zátěže u programů typu Pohoda (účetní program) či jakýchkoliv jiných skladových SW. Koupí se jeden router s load balancerem, dva, tři servery pro běh databáze a aplikací, nastaví se replikace, aplikace se spustí na všech serverech a load balancer rovnoměrně zátěž rozhazuje. Pokud samotná aplikace má veškeré stavy pouze v databázi a nikoliv na lokálním disku, lze to takhle zajistit relativně levně.
20.01.2021 02:04
7
OK, moc dík.

Trochu mne překvapuje, že se hlavní modernizační úsilí zaměřilo na periferii (GPU) a vlastní architektura písíček furt táhne železnou kouli na noze ... a na druhou stranu, že clustry nejdou v roce 2021 úplně instantně použít (a třeba i v hetero prostředí), nu ale což, to je život ;-)

Díky za vysvětlení, pár věcí jsem si díky Tvým relevantním hintům přečetl ... a tak se zase v další oblasti o něco lépe orientuju
20.01.2021 03:22
8
navenek sice vypadá, že se IT mění, uvnitř ten proces změny je hodně pozvolný (dnešní aktuální systémy obsahují zdrojové kódy i desítky let staré).

Samozřejmě vzniklo spousty nových věcí, mobilní telefony vyrostly z nuly nad Arm architekturou, vrací se do hry díky nim specializované koprocesory (a tedy offloading výpočtů), Arm proniká i do serverů. Vlastnosti jako rozložení výpočtů na více jednotek ale nejsou prioritou.

Tenhle problém ve velkém řeší poskytovatelé cloudů a vyplatilo se jim raději napsat nový SW než výrazně šahat na HW.
21.01.2021 21:35
9
Původně odeslal bikesp
Trochu mne překvapuje, že se hlavní modernizační úsilí zaměřilo na periferii (GPU)
ono se už pomalu upouští i od toho propojení grafik, raději vydají novou/výkonnější než aby ten soft pracně optimalizovaly, a ve finále se v tom SLI/CrossFire většinou stejně část výkonu tak či tak ztratí,
ale na těžbu krypta jeto samozřejmě pořád lepší než ty nejvýkonnější CPU :)
21.01.2021 21:49
10
pro profesionální použití se to ale uchytilo a tam to letí pořád dál. Je možné, že pro hry to nebylo ono nebo si výrobci nechali tuhle schopnost je pro příplatkové profi grafiky. Dokonce dneska už ani ty můstky nejsou potřeba.
22.01.2021 14:56
11
jo pro hry na local PC se to prý už moc nevyplácí, ale zas jak teď letí ty stream-ovací platformy, tak je možné že tam ty propojené GPU stále používají a aby se jim to i vyplatilo provozovat, tak to musejí na ty původně only local hry i pořádně optimalizovat, ale zřejmě asi už jen ve své vlastní režii, bez účasti původních vývojářů těch only local her které jim na těch stream serverech běží.
22.01.2021 15:38
12
ano, např. Nvidia Tesla tohle podporuje a na tom se to staví (např. se kupují takovéhle krabice https://www.microway.com/products/hp...-gpu-clusters/, cca 2M za kus).

Výrobci her dnes již ty optimalizace nedělají, kupují si herní enginy, které to dělají za ně (např. Unreal), u těch větších áčkových titulů pak přímo výrobci grafik poskytují vlastní optimalizační sdk a vlastní lidi, které s optimalizacemi pomáhají (v tom vede Nvidia, její podpora je v tomhle obrovská).

Streaming her je nové odvětví, zatím se hledá vhodný finanční model, dnes to je spolupráce různých částí řetěžce a co služba, to trochu jiná sestava. Nevidím do toho odvětví ale tolik, mojí dominantou jsou spíše výpočetní clustery a aplikace nad tím.
22.01.2021 18:16
13
tak jsem pro zajímavost koukl na tu jejich službu GeForce NOW a docela by mne zajímalo, za kolik na tom pronajímání toho HW na hry asi tak vydělají ty 2M, když se ten HW samostatně prodává cca 2M za kus,
protože jsem koukal že se to dá používat i zadarmo dlouhodobě každý den 1 hodina a pak je tam ještě druhá možnost, předplatné na půl roku neomezené hraní jen za 27 €, a i když je to výkonné řešení, tak zas tak moc lidí najednou to asi stejně neobslouží,
protože taková služba slouží hlavně na to, aby si hráči kteří na to mají net zahráli nové a tudíž i HW náročnější hry a taky je samozřejmě plynule spustit v té nejvyšší možné grafické i obrazové kvalitě, na což právě GeForce NOW lidi přímo láká, protože ty starší a méně HW náročné hry si hráči můžou spustit rovnou doma lokálně,
a dokonce zato půlroční 27€ předplatné jim k tomu ještě zapnou i RTX, což zvyšuje zatížení HW o dalších nejmíň 50% :D
22.01.2021 18:40
14
on to ostatne tomas pise, ze se v tom jeste hleda vhodny financni model, nevidim nic na tom, ze to trochu zadotujou aby ziskali dobry data o chovani lidi v takovych podminkach a pak nenajeli an neco co uz bude dobre propocitany pozdeji...
22.01.2021 19:20
15
no já jen že zvenčí to zatím stále vypadá jako ryze ztrátový podnik, a takhle už to běží tuším třetí nebo čtvrtý rok, na druhou stranu je to konec konců čistě jenom pronájem výkonného serveru pro hráče,
tak třebas jen cílí na lidi kteří chtějí hrát novou hru a mají 5 a více let starý HW lowend a teď přemýšlí jestli koupit nový, anebo si raději pronajmout čas na serveru,
ale pro lidi kteří chtějí hrát HW náročné hry a zároveň už mají třebas aktuální generaci konzole, anebo si jen pravidelně vylepšují PC, tak ani takto cenově výhodná služba je nejspíš nedokáže ničím přesvědčit a nabídnout něco navíc, co by jim doma už dávno lokálně neběželo, a řekněme že bez upgradu jim to ještě nejbližších takových 5 let i poběží.
25.01.2021 09:45
16
jinak mne napadá ještě jedno řešení, ale to asi taky nebudete chtít, pokud dočasně potřebujete velmi výkonný stroj, můžete si takový stroj pořídit v Azure. azure compute poskytuje i velmi výkonné stroje s 3 grafikou.