Berta Sándor

Több millió processzoron dolgozó algoritmusok jöhetnek

Ezt a célt tűzte ki egy európai program.

Az Európai Kutatási Tanács (ERC) bejelentette, hogy támogatja a ScAlBox – Engineering Scalable Algorithms for the Basic Toolbox nevű projektet, amelyet Peter Sanders professzor, a Karlsruhei Technológiai Intézet Elméleti Informatikai Intézetének munkatársa hívott életre. Az ScAlBox célja olyan algoritmusok és szoftverkönyvtárak megalkotása, amelyek képesek a nagyon nagy adatmennyiségeket is feldolgozni és amelyek több millió, egymással párhuzamosan dolgozó processzoron is működnek. A testület 2,5 millió eurót biztosított a legfeljebb öt évig tartó programra.

A számítógépes alkalmazások egyre nagyobb adatmennyiségeket dolgoznak fel egyre összetettebb algoritmusok segítségével. Azonban komoly problémát jelent, hogy a programok nehezen birkóznak meg azzal, hogy ha egyre több processzoron kell egyre több feladatot megoldaniuk. Ahogy Peter Sanders rámutatott, az egyes CPU-k teljesítménye korlátozott és ahhoz, hogy nagyobb problémákat meg lehessen oldani, sok processzort kell egyszerre alkalmazni.

A helyzetet súlyosbítja, hogy az egymással párhuzamosan működő algoritmusok fejlesztését a kutatási szektorban hosszú ideig elhanyagolták. A jelenlegi szoftvereket megpróbálják az elérhető rendszerekre optimalizálni, azonban a növekvő adatmennyiségekkel és CPU-számokkal így sem tudnak megbirkózni. Ebben segíthet a ScAlBox.

A szakember elmondta, hogy olyan algoritmusok és programkönyvtárak megalkotásán dolgoznak, amelyek tetszőleges adatmennyiséget és akár több millió, egymással párhuzamosan dolgozó processzort is tudnak kezelni. A cél a keresési folyamatok és a terhek elosztása az egyes CPU-k között, illetve a különböző folyamatok közötti kommunikáció biztosítása. Az algoritmusok fejlesztése során az jelenti a nehézséget, hogy egyesítsék a skálázható hibatoleranciát és a dinamikus teherelosztást.

Hozzászólások

A témához csak regisztrált és bejelentkezett látogatók szólhatnak hozzá!
Bejelentkezéshez klikk ide
(Regisztráció a fórum nyitóoldalán)
  • Palinko #14
    Ez kifejezetten zavar mobil fronton
  • Sydra #13
    Ez inkább a programozó szakma felhígulásának tudható be. Az eszközök jók, csak nem felelősen használják őket és a bőséges kapacitások miatt ez egyelőre nem annyira feltűnő. Ez a párhuzamosítás vonatkozásában különösen igaz. Általánosságban az algoritmus szintű változtatásokkal egy nagyságrenddel nagyobb sebességnövekedést lehet elérni, mint párhuzamosítással. Szóval a párhuzamosításnak mindig az utolsó lépésnek szabadna csak lennie kód optimalizálásnál, de sok embernél meg az az első. De az sem ritka, hogy a párhuzamosítás miatt még lassabban is fut a kód és senki nem ellenőrzi.
  • Palinko #12
    Igen elhiszem ezt is hogy vannak olyan folyamatok is, de az adobe sok szoftverénél biztosan nem az a helyzet, egyszerűen csak régi a kód és leszarják, meg sok hasonló program van még. Például én a Blendert használom ami 32 magot is kihasznál szóval jól skálázódik, mivel megjelent a 64 magos Ryzen lehet már azt is tudja, nem követtem a changelogot annyira, de pl valamelyik nap bakeltem textúrát, ami annyit tesz ki mintha simán renderelné a képet csak még kevesebb adattal erre mit csinált? Alig működött a proci nem hogy 100%-on de felugrált 4-5%ra, aztán lehet később ment vagy valami, de soha nem hallottam a max ventillátor hangot szóval kétlem... Pedig renderelésnél ugye tudja egy másik nagyon hasonló folyamatnál meg nem. Érdekelne hogy miért bár ehhez a fejlesztőket kéne faggatnom. Nem memória meg stb gond abból is van 32 giga a gépben.

    Sokszor csak nem jut eszükbe alapvető megoldás mint régen hallottam mikor még egy kör kirajzolása is lassú volt, azt is végigfuttatták, később valaki rájött hogy ha a kör negyedét rajzolja ki a többit csak tükrözi akkor 75% ot megtakarít az időből. Milyen jó ötlet! Szóval csak sokszor az ötlet kell és sokat gyorsul valami, de ha úgy állnak hozzá hogy majd kivárják, meg eddig is így csináltuk abból nincs fejlődés pedig egyre fontosabb lesz, mert már 10+ éve megy a több magozás és innentől csak exponenciálisan fog nőni a magok száma, pláne szerveren.

    A meteoróligai állomásos nagyon érdekes volt köszi hogy leírtad.
  • t_robert #11
    szarabbak is lettek a kódok. kevesebb emberi kreativitással. tény, hogy gyorsabb a kódfejlesztés a mai fejlesztő rendszerekkel, de az elkészülő kód hatékonysága egy rakás trágya. Egy mai fejlesztő környezet, ami kiírja a klasszikus helló world! szöveget simán lehet akár több 10 mega is. ha fejlesztő környezet bele teszi a futó kódba a saját amúgy felesleges baromságait. Egy ilyen programot simán megírtak régen akár néhány tucat bájtos com programba. :) Nem kellett hozzá objektumoknak születni, öröklődni megszűnni. és becipelni magukkal olyan objektumokat melyeknek sok tucat metódusa van tucatnyi propertyvel. :)
    Ma ha szar a program(böszme nagy és lassú ) majd ajánlunk hozzá még pár giga memóriát és pár proci magot... :) Nem a program szar, hanem nem megfelelő a hardver hozzá... :)
  • bdzsana #10
    Ha végig olvastad volna a hozzászólásomat, akkor megspóroltál volna magadnak egy kis gépelést, mivel pont ezt írtam.

    "Ugyanazt a feladatot kevesebb ember fogja végezni hatékonyabb eszközzel. Egyébként jelenleg is ez zajlik, csak a feladatok mennyisége még jobban nő a kereslet bővülésével, így nem kevesebb programozó kell hanem több."

    A piac bővül így ezt a folyamatot nem hogy ellensúlyozza de meg is fordítja. A kérdés az , hogy ez egy általános folyamat ami mindig igaz lesz, vagy a piac bővülése nem mindig lesz olyan meredek, hogy minden esetben ellensúlyozni tudja a technológiai fejlődés okozta állásvesztéseket.
  • Sydra #9
    "AI kódvizsgáló, ami felderíti a bugokat, a biztonsági réseket, a rossz minőségű kódot, AI intellisense ami konkrétan összetettebb kódblokkokkal egészít ki, és jó nagy eséllyel el is találja mit akartam írni, sőt van ami már egy jól elnevezett függvénynév és paraméterlistából implementálja a teljes függvényt. Van olyan eszköz, ami működő weboldalt generál egy tollal rajzolt skiccből. Ezek csak azok amikkel én már találkoztam."

    Ezek jó és hasznos eszközök, viszont ezek csak annyit jelentenek, hogy amit ezek automatizálnak azokkal már nem kell foglalkoznod, helyette foglalkozhatsz olyan dolgokkal, amikre eddig nem volt kapacitásod.
    Utoljára szerkesztette: Sydra, 2020.04.07. 20:48:28
  • Sydra #8
    "Pont ugyanaz fog történni mint egy gyárban. Ugyanazt a feladatot kevesebb ember fogja végezni hatékonyabb eszközzel."

    A valóságban ennek az ellenkezője figyelhető meg. Az elmúlt 20 évben kb automatizáltuk a programozók munkájának 90%-át. Ebből az lett hogy tized annyi helyett tízszer annyi programozóra lett szükség, mivel a programozók produktivitása és ezzel együtt az értéke is a tízszeresére nőtt. Ez kisebb mértékben a gyárakban is megfigyelhető ha a folyamat egészét nézed. A piac és az előállított értékek növekedésével egyre több és egyre többféle állás jelenik meg a piacon. Minden megszűnt állás helyébe 2 új lép. A munkásnak itt csak az a felelőssége, hogy tovább tanuljon és specializálódjon, hogy az új eszközöket használni tudja.
    Utoljára szerkesztette: Sydra, 2020.04.07. 20:49:23
  • bdzsana #7
    Én nem hiszem, hogy olyan messze lenne ez főleg egyszerűbb üzleti alkalmazásoknál. Inkább mi programozók vagyunk hajlamosan túlbonyolítani egy problémát és látunk benne többet mint amire szükség van.

    Jelenleg vannak már tök jól működő eszközök alacsonyabb szinten, AI kódvizsgáló, ami felderíti a bugokat, a biztonsági réseket, a rossz minőségű kódot, AI intellisense ami konkrétan összetettebb kódblokkokkal egészít ki, és jó nagy eséllyel el is találja mit akartam írni, sőt van ami már egy jól elnevezett függvénynév és paraméterlistából implementálja a teljes függvényt. Van olyan eszköz, ami működő weboldalt generál egy tollal rajzolt skiccből. Ezek csak azok amikkel én már találkoztam.
    Egyáltalán nem tartom kizártnak hogy a következő 10 évben látni fogunk látványos előrelépést a területen, ami már ezeket a különálló eszközöket összefogja és összetettebb feladatokat is el tud látni.

    "Másrészt ha lesz ilyen AI azt én fogom eszközként használni a mostaninál sokkal összetettebb rendszerek építésére."

    Miért használnád? Ha 10 év múlva mondjuk lesz ilyen rendszer, attól még nem biztos, hogy a piacon túl nagy lesz a változás, és a cégeknek hirtelen jóval bonyolultabb programokra lenne szükségük. Pont ugyanaz fog történni mint egy gyárban. Ugyanazt a feladatot kevesebb ember fogja végezni hatékonyabb eszközzel. Egyébként jelenleg is ez zajlik, csak a feladatok mennyisége még jobban nő a kereslet bővülésével, így nem kevesebb programozó kell hanem több. A kérdés, hogy a két görbe között mindig ilyen különbség lesz, vagy ez változhat.

    Utoljára szerkesztette: bdzsana, 2020.04.07. 19:12:35
  • Sydra #6
    "Első lépésben nem fognak optimalizáltabb kódot írni az embereknél, csak olcsóbbat."
    Épp ezt írtam, hogy nem lesz olcsóbb, mert csomó erőforrást zabál ami ezres/milliós processzor számnál pénzben kifejezve sokkal több lesz, mint néhány programozó fizetése.

    Egyik részről, szerintem ilyen AI amit mondasz nem lesz még vagy 30 évig.
    Másrészt ha lesz ilyen AI azt én fogom eszközként használni a mostaninál sokkal összetettebb rendszerek építésére. Ez olyan minthogy a lónál nekem nem kell erősebbnek, gyorsabbnak lenni, mivel én használom a lovat.
    Utoljára szerkesztette: Sydra, 2020.04.07. 14:38:03
  • t_robert #5
    a szuper számítógépeknél olyan jellegű feladatokat végeznek, ahol szét lehet terhelni a feldolgozást.
    Például a meteorológiai szolgálatnak van egy kb. 1300 magos szervere. leginkább tudtommal a kistérségi előre jelzést végzik rajta. elvben van úgy 170-180 kistérség. Beérkeznek folyamatosan az adatok és 2-3 óránként neki állnak előrejelzést készíteni az adatokból nagyjából egy járásnyi területen. Gondolom az 1300 proci vagy azok egy része szét van osztva 170 virtuális gépre X proci maggal és minden virtuális gép ugyan azt a programot futtatja és egy térség adatait alapján számol. majd párhuzamosan végeznek pár perc alatt és publikálják is adatokat, mint kistérségi előre jelzés.