Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
RS62402B1 - Računarski sistem visokih performansi i postupak - Google Patents
[go: Go Back, main page]

RS62402B1 - Računarski sistem visokih performansi i postupak - Google Patents

Računarski sistem visokih performansi i postupak

Info

Publication number
RS62402B1
RS62402B1 RS20211127A RSP20211127A RS62402B1 RS 62402 B1 RS62402 B1 RS 62402B1 RS 20211127 A RS20211127 A RS 20211127A RS P20211127 A RSP20211127 A RS P20211127A RS 62402 B1 RS62402 B1 RS 62402B1
Authority
RS
Serbia
Prior art keywords
nodes
module
node
communication
computer system
Prior art date
Application number
RS20211127A
Other languages
English (en)
Inventor
Thomas Lippert
Original Assignee
Partec Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Partec Ag filed Critical Partec Ag
Publication of RS62402B1 publication Critical patent/RS62402B1/sr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Paper (AREA)
  • Jib Cranes (AREA)

Description

Opis
[0001] Predmetni pronalazak se odnosi na tehničku oblast računarstva visokih performansi (engl. High Performance Computing - HPC). Konkretno, dati pronalazak se odnosi na heterogeni računarski sistem, naročito na računarski sistem koji uključuje različite module, koji se mogu slobodno dodeljivati za zajedničku obradu računskih zadataka. Omogućen je kontrolni entitet, nazvan slojem apstrakcije računarskog modula (engl. Module Computing Abstraction Layer - MCAL), koji dozvoljava dinamičko dodeljivanje različitih resursa koji su obezbeđeni od strane različitih modula. Zbog svoje fleksibilnosti u prilagođavanju različitim zahtevima u računarstvu, predmetni pronalazak je takođe primenljiv kao osnovni sistem za pružanje usluga računarstva u oblaku, koji obezbeđuje deljene resurse i podatke za obradu računarima i drugim uređajima na zahtev, uglavnom preko Interneta.
[0002] Aplikacije za HPC sisteme pokrivaju široko tehničko područje. Od simulacije ljudskog mozga preko predviđanja vremena i klime, računarskog inženjeringa fluida, seizmičkog snimanja, radio astronomije do analize podataka, da navedemo samo neke. Potražnja za računarstvom visokih performansi je sve veća.
[0003] Preovlađujuće HPC arhitekture trenutno su klaster računari i sistemi za masovnu paralelnu obradu (engl. Massive Parallel Processing - MPP). Klaster računari uključuju mnoštvo čvorova klastera koji međusobno komuniciraju koristeći standardnu mrežnu tehnologiju. Pojedinačni čvorovi klastera opremljeni su standardnim procesorima opšte namene. U sistemima MPP (masovno paralelna obrada), veliki broj procesora vrši računanje istovremeno, dakle, paralelno. Oni takođe uobičajeno koriste standardne procesore opšte namene. Dati procesori, međutim, imaju tendenciju da koriste vlasničku mrežnu tehnologiju i naročito prilagođen softver za komunikaciju.
[0004] EP 2960 791 A1 opisuje distribuirani računarski sistem sa upravljačima resursima za upravljanje mnoštvom računara za izvršavanje neke aplikacije. Dvosmerna komunikacija između upravljača resursima obezbeđena je preko komunikacionog okvira. WO2005/106668 A1 opisuje sistem za detektovanje i upravljanje kvarom čvora HPC.
[0005] Kako bi se zadovoljila žeđ za sve većom računarskom snagom, poslednjih godina se masovno povećao broj čvorova klastera u klasterima računara i procesora u MPP sistemima. Međutim, već se može videti da samo korišćenje standardnih procesora opšte namene i povećavanje njihovog broja u sistemu nije rešenje.
[0006] Standardni procesori opšte namene bez sumnje imaju pozitivne aspekte. Oni imaju visoke performanse onda kada se izvršava samo jedna sekvenca instrukcija koja je komponenta procesa (engl. thread). Imaju veliku memoriju po procesoru ili jezgru u slučaju višejezgarnog procesora. Može se koristiti standardno programiranje, što olakšava prenos aplikacija na takve sisteme. Ipak, tehnologija dostiže svoje granice. Ako se radi o standardnim procesorima opšte namene, njihov radni takt (frekvencija) se praktično nije povećao u poslednjoj deceniji. Ovo je blisko povezano sa potrošnjom energije, koja ne bi trebalo da pređe mnogo preko 100 vata po čipu pre nego što postane kritična, posebno sa hlađenjem sistema. Dodatno, ovi procesori su uporedno skupi i imaju nisku energetsku efikasnost.
[0007] Rešenje se vidi u upotrebi akceleratora, koji se mogu koristiti za izračunavanje onih delova aplikacije koji su visoko skalabilni. Neka aplikacija je visoko skalabilna ako može podneti veća opterećenja dodavanjem više resursa na ekonomičniji način. Sekvencijalni deo u kôdu, koji se ne može izračunati paralelno, obično je jedan od najvažnijih ograničavajućih faktora za skalabilnost.
[0008] Sistemi koji koriste više od jedne vrste procesora nazivaju se heterogeni računarski sistemi. Različiti akceleratori se mogu koristiti u kombinaciji sa procesorima opšte namene, odnosno sa many-core procesorima i grafičkim procesorskim jedinicama (engl. Graphics Processing Unit - GPU). Many-core procesori imaju više od 50 jezgara. GPU-ovi imaju stotine jednostavnih računarskih jezgara. Obe vrste procesora su energetski efikasne.
[0009] U heterogenim računarskim sistemima, svaki čvor klastera opremljen je akceleratorima, formiranim od jednog ili više višejezgarnih procesora ili GPU-ova. Akcelerator u osnovi funkcioniše kao koprocesor koji dopunjuje funkcije primarnog procesora čvora klastera. Čvorovi klastera komuniciraju preko strukture (engl. fabric) u kojoj komponente prosleđuju podatke jedne drugima putem međusobno povezanih (engl. interconnecting) prekidača. Engleski termin "fabric" se koristi u oblasti računarstva visokih performansi za upućivanje na topologiju sistema. Izraz „međusobno povezani“ se takođe koristi za komunikacionu infrastrukturu između čvorova klastera, ukazujući na električnu ili optičku vezu ili kabl koji povezuje zasebne uređaje. Glavni problem povezivanja akceleratora za svaki čvor je statičko dodeljivanje. Odnos između procesora opšte namene i GPU-ova je fiksiran prilikom projektovanja sistema.
[0010] Međunarodna patentna prijava WO2012-049247A1 rešava ovaj nedostatak pomoću aranžmana računarskih klastera i postupka za rad uvedenog aranžmana računarskih klastera. Aranžman računarskog klastera sadrži računske čvorove (engl. Computation Nodes – CN), koji dinamički predaju specifične računske zadatke busterima (engl. Booster – B). Zbog toga je uvedena tehnika dodeljivanja bustera B računskim čvorovima CN. Dodeljivanje se odvija dinamički tokom izvođenja. U ovoj arhitekturi čvorovi klastera i čvorovi akceleratora, koji čine buster, stavljeni su u jednu strukturu. Ovo je fleksibilnije u poređenju sa ubrzanim čvorovima klastera, pošto se dodeljivanje bustera čvorovima klastera za ubrzavanje obrade može obaviti kada se pokrene proces. Ovaj aranžman je dalje opisan od Norbert Eicker et al. u „The DEEP project Pursuing cluster-computing in the many-core era“, 42<nd>International Conference on Parallel Processing, str 885-892, 2013, i u „The DEEP Project An alternative approach to heterogenous cluster-computing in the many-core era“, Concurrency and Computation: Practice and Experience, 28, str.2394-2411, 2015.
[0011] Kada se jedna aplikacija izračunava heterogenim sistemom, kao što je tip buster klastera, pojedinačni računski zadaci ne samo da moraju biti obrađeni na više različitih čvorova klastera, već i na dve različite arhitekture, odnosno na računarskom klasteru i na akceleratoru. Mora se osigurati efikasna komunikacija između računara klastera i bustera, kao i unutar računara klastera i unutar bustera. Dodatno, sve veći broj komponenti izaziva rizik od otkaza komponenti, čak i uz visoku pouzdanost pojedinačnih delova. Stoga sistem mora osigurati visoku rezilijentnost, odnosno sposobnost da izdrži otkaz pojedinačnih komponenti, a da pritom ostane funkcionalan.
[0012] Predmetni pronalazak je definisan nezavisnim patentnim zahtevima. Prioritetni načini izvođenja su navedeni u zavisnim zahtevima. Sve dalje reference na primere, aspekte i načine izvođenja, koji ne odgovaraju eksplicitno zahtevima, nisu u skladu sa pronalaskom, i dati su samo u ilustrativne svrhe.
[0013] Predmetni pronalazak obezbeđuje modularne računarske sisteme. Modularni računarski sistem uključuje različite module, kao što su modul klastera i modul bustera, modul za skladištenje, neuromorfni modul, modul za analizu podataka, grafički modul, modul kvantnog računarstva itd. Svaki modul uključuje mnoštvo čvorova. Modul klastera uključuje mnoštvo čvorova klastera, modul bustera uključuje mnoštvo čvorova bustera, a modul za skladištenje uključuje mnoštvo čvorova za skladištenje, i tako dalje.
[0014] Pojedinačni čvorovi su ili svi povezani u jednu strukturu. Različiti moduli mogu imati različite međusobne veze. Modul klastera koristi npr. InfiniBand međupovezivanje, dok modul bustera koristi Intel Omni-Path strukturu, koja je povezana sa InfiniBand međupovezivanjem preko posebnih čvorova interfejsa. Isto važi i za ostale tipove modula.
[0015] Da bi se različiti moduli kombinovali u jedan sistem, obezbeđen je modularni računarski sloj apstrakcije (MCAL). MCAL pruža funkcionalnost komunikacije i funkcionalnost upravljanja. Para Station kompanije Par Tec Cluster Competence Center GmbH mogla bi predstavljati polaznu tačku za realizaciju MCAL koji ima funkcionalnost i svojstva opisane u nastavku.
[0016] MCAL dozvoljava komunikaciju unutar modula, koja se naziva unutarmodulska komunikacija, i komunikaciju između modula, koja se naziva međumodulska komunikacija. Da bi to omogućio, MCAL obezbeđuje interfejse odgovarajućim strukturama, npr. jednu strukturu za ceo sistem ili specijalizovane strukture po modulima, kao što je InfiniBand za modul klastera i Intel Omni-Path struktura za modul bustera. Moguća su i druga međusobna povezivanja, kao što je Eternet, 10G, Gigabit ili komunikacija sa deljenom memorijom. MCAL može koristiti bilo koji tip komunikacije i odabira određeni način komunikacije na osnovu dostupnosti, naznaka aplikacionog programa, performansi ili troškova.
[0017] Komunikacija sa deljenom memorijom pruža veoma brz i efikasan način za komunikaciju dva ili više procesa. MCAL može koristiti različite tipove komunikacije sa deljenom memorijom. U slučaju da se dva ili više procesa paralelnog zadatka izvode na istom fizičkom čvoru koji ima deljenu memoriju, ova deljena memorija može se koristiti za komunikaciju sa deljenom memorijom između ovih procesa. Ovo je obično moguće na SMP čvorovima, gde se „mresti“ (engl. spawn) jedan proces po CPU-u. Simetrično multiprocesiranje (engl. Symmetric Multiprocessing - SMP) odnosi se na arhitekturu u kojoj se dva ili više identičnih procesora povezuju na jednu deljenu glavnu memoriju. Budući da MCAL ima znanje o procesima i na kojem čvoru se oni obrađuju, MCAL može uspostaviti komunikaciju sa deljenom memorijom u takvoj situaciji.
[0018] Međutim, komunikacija sa deljenom memorijom nije ograničena na situacije SMP -a. U slučaju da se procesi izvode na različitim čvorovima unutar jednog modula ili čak na čvorovima koji pripadaju različitim modulima, MCAL uspostavlja komunikaciju sa deljenim virtuelnim adresnim prostorom. Korišćenjem komunikacije sa deljenim virtuelnim adresnim prostorom, veće poruke se prenose između čvorova deljenjem samo meta podataka poruke i virtuelne adrese samih podataka. Proces može pristupiti stvarnoj poruci preko njenog dodeljenog virtuelnog adresnog prostora. Ovo dozvoljava brzu komunikaciju. MCAL uspostavlja komunikaciju sa deljenim virtuelnim adresnim prostorom postavljanjem memorijske oblasti koju direktno dele procesi ili čvorovi uključeni u komunikaciju.
[0019] Kao što se može videti iz ovih primera, MCAL ne samo da pruža funkcionalnost komunikacije, već takođe bira način komunikacije, što povećava performanse i efikasnost. MCAL može npr. da odlučuje koje se međupovezivanje može koristiti za komunikaciju tokom „mrešćenja“ procesa, tj. stvaranja i izvršavanja novih podređenih procesa. U isto vreme MCAL nadgleda tekući proces i posmatra podređeni proces da se završi ili može nastaviti da se izvršava asinhrono.
[0020] Druga glavna funkcija koju MCAL obezbeđuje je upravljanje. Funkcija upravljanja pokriva različite aspekte, odnosno upravljanje čvorovima, upravljanje modulima, upravljanje procesima i upravljanje resursima.
[0021] Upravljanje čvorovima je usmereno na pojedinačne čvorove, kao što su čvorovi klastera u modulu klastera, čvorovi bustera u modulu bustera, čvorovi za skladištenje u modulu za skladištenje i tako dalje, u vezi sa drugim tipovima modula, kako je gore navedeno, koji su prisutni u sistemu. MCAL pre svega detektuje upotrebljive čvorove. Upotrebljivi čvorovi su oni koji su spremni da budu korišćeni. Ovo uključuje da je MCAL konfigurisan za identifikaciju neispravnih čvorova ili čvorova koji su blizu otkaza, npr. na osnovu sistemskih parametara, kao što su temperatura, raspoloživa memorija itd., i varijacije tih svojstava tokom vremena. MCAL stoga implementira toleranciju grešaka i na taj način obezbeđuje visoku rezilijentnost.
[0022] Ovo se postiže tako što MCAL koristi koncept virtuelnih čvorova. Virtuelni čvorovi predstavljaju stvarni hardver, kao što su čvorovi klastera, čvorovi bustera, čvorovi za skladištenje itd., ali MCAL ima slobodu da dinamički mapira te čvorove. Na primer, ako aplikacija zahteva X čvorova klastera, Y čvorova bustera i Z čvorova za skladištenje (X, Y, Z su celi brojevi, engl. integer), MCAL može da obezbedi te čvorove od svih raspoloživih resursa. U slučaju da čvor otkazuje ili je dodat u sistem, MCAL može reagovati brzo tako što samo promeni mapiranje između virtuelnih čvorova i fizičkih čvorova. Neispravni čvorovi mogu se ukloniti sa liste dostupnih čvorova, a da pri tome ne otkaže čitav sistem.
[0023] MCAL takođe ima sposobnost odabira određenih čvorova u zavisnosti od faktora poput dostupnosti, zaostajanja ili fizičkog položaja. Ovo se može učiniti potpuno transparentno za pokrenutu aplikaciju.
[0024] MCAL ima celokupan pogled na sistem i stalno ažurira stanje svakog čvora i svakog međupovezivanja. MCAL je u svakom trenutku informisan o posebnim svojstvima svakog čvora i međupovezivanja, kao što su broj raspoloživih CPU po čvoru, pokrenute usluge, raspoloživo skladište, propusni opseg međupovezivanja, slobodna memorija, temperatura, brzina sistemskog takta itd.
[0025] Druga funkcija je upravljanje modulom. Upravljanje modulom je slično upravljanju čvorovima i može uključivati upravljanje čvorovima za određeni modul, ali uzima u obzir aspekte specifične za modul. Upravljanje modulom fokusira se na aspekte specifične za modul, kao što je stanje čvorova interfejsa, ako su obezbeđeni, preko kojih modul komunicira sa drugima. Slično čvorovima, MCAL prati stanje modula kako bi se omogućilo povećano korišćenje modula.
[0026] MCAL je takođe odgovoran za upravljanje procesima. Svaka pokrenuta aplikacija podeljena je na mnoštvo pojedinačnih procesa, koje je potrebno pokrenuti, distribuirati i nadgledati. Istovremeno, potrebno je dodeliti resurse koji odgovaraju potrebama procesa za računarskom snagom i skladištenjem. Ako proces zahteva specifičnu obradu, MCAL dodeljuje jedan ili više čvorova bustera ili čak specifičnijih čvorova, poput neuromorfnih čvorova, čvorova za analizu podataka, grafičkih čvorova ili čvorova kvantnog računanja iz odgovarajućih modula.
[0027] Da bi to omogućio, MCAL je konfigurisan da prepoznaje i kontroliše zavisnosti između procesa i njihovih zahteva. Na osnovu ovoga MCAL kreira procese na čvorovima u slučaju modula bustera ili modula klastera, ili dodeljuje skladište u slučaju modula za skladištenje. Procesi se nadgledaju i zavisni procesi se tretiraju kao grupe, što omogućava brzo reagovanje na greške koje se javljaju u bilo kom od paralelnih zadataka. Ovo omogućava da se procesi odmah ponovo pokrenu, tako da je ukupno kašnjenje za pokrenutu aplikaciju svedeno na minimum.
[0028] Upravljanje resursima je još jedan zadatak koji MCAL obavlja u modularnom računarskom sistemu. Kao deo upravljanja resursima, MCAL ostvaruje mehanizam rasterećenja (engl. off-loading), tj. procesima, koji su npr. pokrenuti na modulu klastera, će možda trebati neki buster čvorovi iz modula bustera. U takvom slučaju MCAL može „mrestiti“ procese na izabranim buster čvorovima, kako bi pokrenuo zadatak paralelno.
[0029] Kao deo rasterećenja, neće biti kreiran samo jedan proces koji radi na jednom busteru, već višestruki procesi, koji međusobno direktno komuniciraju pomoću komunikacione strukture modula bez potrebe za posredovanjem host procesora.
[0030] Upravljanje resursima takođe obezbeđuje smanjenje potrošnje memorije, npr. smanjenjem broja veza između različitih procesa. To se postiže korišćenjem veza na zahtev, koje se zapravo uspostavljaju samo onda kada je to potrebno. Ovo drastično smanjuje potrošnju memorije po vezi. Dakle, ne samo da se resursi kao što su čvorovi tretiraju na virtuelni način, već se virtuelno dodeljivanje takođe primenjuje na fizičke mreže.
[0031] Prilikom dodeljivanja resursa, MCAL ne uzima u obzir samo zahtev od strane jednog procesa, već i od drugih procesa takođe. Ovo omogućava da se fleksibilno reaguje na promene komunikacione infrastrukture zasnovano na integrisanoj kontroli.
[0032] Integrisana kontrola je još jedan funkcionalni aspekt koji pruža MCAL. Integrisana kontrola se odnosi na upotrebu informacija koje je MCAL prikupio na osnovu svoje funkcije upravljanja za kontrolu komunikacije i obrnuto. Dakle, funkcija komunikacije i funkcija upravljanja nisu odvojene, već integrisane kako bi se dodatno optimizovale sveukupne performanse sistema.
[0033] Znanje MCAL o svim različitim aspektima svih čvorova u svim modulima i o statusu svih međupovezivanja, unutarmodulske komunikacije i međumodulske komunikacije se koristi za pokretanje sistema. Ovo omogućava dinamičko prilagođavanje promenljivom ponašanju sistema, kao i promenljivoj potražnji aplikacije koja je pokrenuta na sistemu.
[0034] Integrisana kontrola ne uzima u obzir samo trenutno stanje sistema i potražnju aplikacije, već predviđa i predstojeće zahteve za korišćenje modula ili međupovezivanja.
[0035] Informacije o stanju sistema koriste se za dinamičko dodeljivanje čvorova. Ovo uključuje da se dodeljivanje resursa vrši pomoću povratne sprege koja na celom sistemu registruje uticaj odluka o dodeljivanju, tako da se buduća dodeljivanja adekvatno prilagođavaju. Sistem takođe skladišti takve informacije radi poboljšanja odluka o dodeljivanju u budućim slučajevima, na način samoučenja.
[0036] Čak i ako se glavni deo aplikacije normalno pokreće na modulu 302 klastera, MCAL identifikuje koji deo aplikacije treba pokrenuti na modulu 302 klastera ili modulu 304 bustera. Osnova za donošenje odluke je npr. naznaka samog kôda aplikacije, posmatranje performansi kôdova tokom rada. Ovo omogućava prilagođavanje dodeljivanja tokom izračunavanja aplikacije.
[0037] Što se tiče implementacije MCAL-a, MCAL se distribuira po celom sistemu i uključuje upravljače čvorovima (NM) implementirane na svakom čvoru. Upravljači čvorovima mogu biti implementirani u hardveru ili u softveru, npr. kao pozadinski procesi (engl. daemon process) koji se pokreću na odgovarajućim čvorovima. Upravljači čvorovima stalno prikupljaju informacije kako bi izgradili sveobuhvatan pogled na module i čitav sistem. Aplikacije koje se pokreću na sistemu mogu imati koristi od ovih informacija komunikacijom sa funkcijom upravljanja ili direktno sa pojedinim upravljačima čvorovima. Ovo se ostvaruje posebnim interfejsom, koji može biti hardverski ili API (interfejs za programiranje aplikacija, engl. Application Programming Interface). Dakle, ne samo da MCAL dobija ulaze od aplikacija, već aplikacije imaju koristi od informacija koje je MCAL prikupio preko pojedinačnih upravljača čvorovima.
[0038] Komunikacioni saobraćaj upravljača čvorovima strogo je odvojen od komunikacije unutar i između modula. Ovo omogućava da se komunikacija unutar i između modula odvija velikom brzinom, bez prekida funkcijama upravljanja. Osim toga, bezbednost sistema može se dodatno unaprediti takvim razdvajanjem.
[0039] Korišćenje stvarne komunikacione mreže kontrolisano je od strane MCAL, koji aplikaciji pruža takvu funkcionalnost putem interfejsa za prenos poruka (engl. Message Passing Interface -MPI). Deo MCAL je MPI stek za svaki modul, kao i globalni MPI za ceo sistem. Pojedinačni MPI-ovi se realizuju npr. za modul klastera računara, modul bustera, modul za skladištenje, itd.
[0040] MCAL-ova komunikacija koristi administrativnu mrežu. Administrativna mreža može biti ista ili različiza fizička mreža od fizičke mreže koja se koristi za komunikaciju unutar i između modula.
Na primer, komunikacija unutar i između modula može biti InfiniBand, Myrinet itd., a administrativna mreža može biti formirana Eternetom koji povezuje upravljače čvorovima.
[0041] U sistem mogu biti uključeni specijalni čvorovi za pružanje front end koji omogućava administrativnim zadacima ili kontrolnim funkcijama da pokreću sistem. Front end ne mora da bude povezan na komunikacionu mrežu, već samo na komunikacionu mrežu. Preko front end čvora, koji se može formirati npr. računarom radne stanice, personalnim računarom (PC), laptop računarom ili bilo kojim pametnim računarskim uređajem, može se administrirati modularni računarski sistem. Aplikacije koje rade na modularnim računarskim sistemima mogu se zakazivati, pokretati, zaustavljati i nadgledati. To može biti urađeno serijskom obradom, tj. izvršavanjem niza poslova na modularnom računarskom sistemu bez manuelne intervencije, dakle, neinteraktivno.
[0042] Osim izvođenja niza poslova na modularnom računarskom sistemu bez manuelne intervencije, MCAL može pružiti i interaktivno računarstvo, u kojem aplikacija koja je pokrenuta na modularnom računarskom sistemu prihvata ulaze od ljudi dok radi. Ovaj ulaz se može obezbediti preko računara radne stanice, personalnog računara (PC), laptop računara ili bilo kog pametnog računarskog uređaja. U takvom scenariju modularni računarski sistem je dostupan preko npr. laptop računara, pri čemu izgleda da laptop računar ima snagu izračunavanja modularnog računarskog sistema. Ovo je veoma korisno za aplikacije u realnom vremenu, koje moraju da odgovore unutar vremenskog okvira koji korisnik oseća kao neposredni ili trenutni. Takođe, aplikacije Big Data, koje ogromnu količinu strukturiranih, polustrukturiranih i nestrukturiranih podataka čine dostupnima za istraživanje informacija (engl. information mining), mogu imati koristi od takvog aranžmana. Ovo važi i za usluge računarstva u oblaku koje imaju modularni računarski sistem kao osnovni resurs za obezbeđivanje računske snage i skladištenja.
[0043] Čvrsta integracija između MCAL i sistema omogućava manje zaostajanje u komunikaciji (engl. communication latency) i poboljšava komunikaciju u opisanom modularnom računarskom sistemu.
Slike nacrta
[0044]
Sl. 1 prikazuje funkcionalni prikaz modularnog računarskog sistema prema predmetnom pronalasku.
Sl. 2 prikazuje prvi način izvođenja modularnog računarskog sistema prema predmetnom pronalasku.
Sl. 3 prikazuje drugi način izvođenja modularnog računarskog sistema prema predmetnom pronalasku.
[0045] Sl.1 prikazuje funkcionalni prikaz modularnog računarskog sistema 100 prema predmetnom pronalasku. Sloj 110 aplikacije čini vrh modularnog računarskog sistema. U sloju aplikacije aplikativni programi, kao što su softverski programi, izvršavaju se u modularnom računarskom sistemu 100. Predviđen je modularni računarski sloj 120 apstrakcije (MCAL), kako bi se sloju 110 aplikacije omogućilo da pristupi resursima sistema. Resurse sistema formiraju različiti moduli, kao što su modul 130 klastera, modul 140 bustera, modul 150 za skladištenje, modul 160 za analizu podataka i drugi moduli 170, npr. jedan ili više iz sledeće grupe modula: neuromorfni modul, grafički modul, kvantni računarski modul. Takođe je moguće imati više modula iste vrste.
[0046] MCAL 120 dozvoljava komunikaciju unutar modula, koja se naziva unutarmodulska komunikacija, i komunikaciju između modula, koja se naziva međumodulska komunikacija. MCAL 120 može koristiti bilo koji tip komunikacije i bira određeni način komunikacije na osnovu dostupnosti, naznaka aplikacionog programa, performansi ili troškova. Dodatno, MCAL 120 obezbeđuje funkciju upravljanja. Funkcija upravljanja pokriva različite aspekte, odnosno upravljanje čvorovima, upravljanje modulima, upravljanje procesima i upravljanje resursima. Upravljanje čvorovima je usmereno na pojedinačne čvorove i biće dodatno objašnjeno pozivanjem na slike 2 i 3.
[0047] MCAL 120 ima celokupan pogled na sistem i stalno ažurira stanje modula 130, 140, 150, 160 i 170. MCAL 120 je u svakom trenutku informisan o posebnim svojstvima modula 130, 140, 150, 160 i 170, kao što su broj raspoloživih procesora, pokrenute usluge, raspoloživo skladište, propusni opseg međupovezivanja, slobodna memorija, temperatura, brzina sistemskog takta itd. Još jedna funkcija koju MCAL 120 pruža je upravljanje modulima. Upravljanje modulom uzima u obzir specifične aspekte modula. Stoga MCAL uključuje funkcije posebno prilagođene za upravljanje modulom 130 klastera, modulom 140 bustera, modulom 150 za skladištenje, modulom 160 za analizu podataka i drugim modulima 170. MCAL 120 je takođe odgovoran za upravljanje procesima. Svaka pokrenuta aplikacija 110 podeljena je na mnoštvo pojedinačnih procesa, koje treba pokrenuti, distribuirati i nadgledati. Istovremeno, potrebno je dodeliti resurse koji odgovaraju potrebama procesa za računarskom snagom i skladištenjem. Ako proces zahteva specifičnu obradu, MCAL 120 dodeljuje jedan ili više čvorova bustera ili čak specifičnijih čvorova, poput neuromorfnih čvorova, čvorova za analizu podataka, grafičkih čvorova ili čvorova kvantnog računanja iz odgovarajućih modula. Da bi to omogućio, MCAL 120 je konfigurisan da prepoznaje i kontroliše zavisnosti između procesa i njihovih zahteva. Upravljanje resursima je još jedan zadatak koji MCAL 120 obavlja u modularnom računarskom sistemu. Kao deo upravljanja resursima, MCAL 120 ostvaruje mehanizam rasterećenja, tj. procesima, koji su npr. pokrenuti na modulu 130 klastera, će možda trebati neki buster čvorovi iz modula 140 bustera. U takvom slučaju MCAL 120 može „mrestiti“ procese na izabranim buster čvorovima iz modula 140 bustera, kako bi pokrenuo zadatak paralelno.
[0048] Integrisana kontrola je još jedan funkcionalni aspekt koji pruža MCAL 120. Integrisana kontrola se odnosi na upotrebu informacija koje je MCAL 120 prikupio na osnovu svoje funkcije upravljanja za kontrolu komunikacije i obrnuto. Dakle, funkcija komunikacije i funkcija upravljanja nisu odvojene, već integrisane kako bi se dodatno optimizovale sveukupne performanse sistema. Ovo omogućava dinamičko prilagođavanje promenljivom ponašanju sistema, kao i promenljivoj potražnji aplikacije koja je pokrenuta na sistemu. Integrisana kontrola ne uzima u obzir samo trenutno stanje sistema i potražnju aplikacije, već predviđa i predstojeće zahteve za korišćenje modula ili međupovezivanja.
[0049] Sl.2 prikazuje prvi način izvođenja modularnog računarskog sistema 200 prema predmetnom pronalasku. Modularni računarski sistem 200 uključuje modul 202 klastera, modul 204 bustera i modul 206 za skladištenje.
[0050] Modul 202 klastera uključuje mnoštvo čvorova 208 klastera (CN). Na svakom čvoru 208 klastera obezbeđen je upravljač 209 čvorovima (NM), koji u saradnji sa drugim upravljačima 209 čvorovima obezbeđuje funkcionalnosti komunikacije i upravljanja modularnom računarskom sistemu 200. Modul 204 bustera uključuje mnoštvo čvorova 210 bustera (BN). Na svakom čvoru 210 bustera obezbeđen je upravljač 209 čvorovima, koji u saradnji sa drugim upravljačima 209 čvorovima obezbeđuje funkcionalnosti komunikacije i upravljanja modularnom računarskom sistemu 200. Modul 206 za skladištenje uključuje mnoštvo čvorova 212 za skladištenje (SN). Na svakom čvoru 212 za skladištenje obezbeđen je upravljač 209 čvorovima, koji u saradnji sa drugim upravljačima 209 čvorovima obezbeđuje funkcionalnosti komunikacije i upravljanja modularnom računarskom sistemu 200.
[0051] Čvor klastera može biti formiran od računara koji ima mikroprocesor opšte namene, kao što je Intel Xeon procesor, memoriju, interfejse, kao što su mrežne kartice. Čvorovi bustera mogu biti formirani od sistema za obradu opremljenih GPU-ovima ili many-core procesorima, memorijom i interfejsima, kao što su mrežne kartice. Čvorovi za skladištenje uključuju memoriju, koja može biti RAM (memorija sa slučajnim pristupom) i trajna memorija, kao što je fleš memorija, SSD (brzi čvrsti disk), hard disk, dalje čvor za skladištenje uključuje kontroler čvora, kao što je mikroprocesor, i interfejse, kao što su mrežne kartice.
[0052] Obezbeđene su dve različite mrežne infrastrukture. Prvo, postoji komunikaciona mreža 220 koja međusobno povezuje sve čvorove 208, 210, 212, tako da čvorovi 208 klastera i čvorovi 210 bustera i čvorovi 212 za skladištenje mogu da komuniciraju.
[0053] Drugo, obezbeđena je administrativna mreža 224 koja povezuje sve upravljače 209 čvorovima koji su obezbeđeni u različitim čvorovima 208, 210 i 212. Na administrativnu mrežu 224 je priključen front end 230 koji omogućava kontrolu celokupnog modularnog računarskog sistema. Front end 230 takođe uključuje upravljače 209 čvorovima, koji obavljaju stvarnu komunikaciju s drugim upravljačima 209 čvorovima.
[0054] Da bi se različiti moduli kombinovali u jedan sistem, obezbeđen je modularni računarski sloj apstrakcije (MCAL), kao što je opisano pozivajući se na sl. 1. MCAL pruža funkcionalnost komunikacije i funkcionalnost upravljanja. Para Station kompanije Par Tec Cluster Competence Center GmbH mogla bi predstavljati polaznu tačku za realizaciju MCAL koji ima ovde opisane funkcionalnosti i svojstva.
[0055] MCAL implementiraju upravljači 209 čvorovima na pojedinačnim čvorovima i dozvoljava komunikaciju unutar modula, koja se naziva unutarmodulska komunikacija, i komunikaciju između modula, koja se naziva međumodulska komunikacija. Da bi to omogućili, upravljači čvorovima obezbeđuju interfejse odgovarajućim strukturama, npr. jednu strukturu za ceo sistem ili specijalizovane strukture po modulima, kao što je InfiniBand za modul 202 klastera i Intel Omni-Path struktura za modul 204 bustera. Moguća su i druga međusobna povezivanja, kao što je Eternet, 10G, Gigabit ili komunikacija sa deljenom memorijom. Upravljači 209 čvorovima mogu koristiti bilo koji tip komunikacije i biraju određeni način komunikacije na osnovu dostupnosti, naznaka aplikacionog programa, performansi ili troškova.
[0056] Mogu se koristiti komunikacija sa deljenom memorijom i komunikacija sa deljenim virtuelnim adresnim prostorom, koje pružaju vrlo brz i efikasan način za komunikaciju dva ili više procesa.
[0057] Upravljači 209 čvorovima zajedno obezbeđuju upravljanje čvorovima. Upravljanje čvorovima je usmereno na pojedinačne čvorove, kao što su čvorovi 208 klastera u modulu 202 klastera, čvorovi 210 bustera u modulu 204 bustera, čvorovi 212 za skladištenje u modulu 206 za skladištenje.
[0058] Nadalje, upravljači 209 čvorovima takođe odabiru određene čvorove u zavisnosti od faktora poput dostupnosti, zaostajanja ili fizičkog položaja. Ovo se može učiniti potpuno transparentno za pokrenutu aplikaciju. Oni prikupljaju i razmenjuju informacije o celokupnom sistemu i stalno ažuriraju stanje svakog čvora i svakog međupovezivanja. Ovo omogućava upravljačima 309 čvorovima da se u svakom trenutku informišu o određenim svojstvima svakog čvora i međupovezivanja, kao što su broj raspoloživih CPU-a po čvoru, pokrenute usluge, dostupna memorija, propusni opseg međupovezivanja, slobodna memorija, temperatura, brzina sistemskog takta, itd.
[0059] Još jedna funkcija koju sprovode upravljači čvorovima je upravljanje modulom. Upravljanje modulom je slično upravljanju čvorovima i može uključivati upravljanje čvorovima za određeni modul, ali uzima u obzir aspekte specifične za modul. Upravljanje modulom fokusira se na aspekte specifične za modul, kao što je stanje čvorova interfejsa, ako su obezbeđeni, preko kojih modul komunicira sa drugima. Slično čvorovima, upravljaći 309 čvorovima nadgledaju stanje modula kako bi se omogućilo povećano korišćenje modula.
[0060] Upravljanje resursima je još jedan zadatak koji upravljači 209 čvorovima obavljaju u modularnom računarskom sistemu 200. Kao deo upravljanja resursima, oni ostvaruju mehanizam rasterećenja, tj. procesima, koji su npr. pokrenuti na modulu 202 klastera, će možda trebati neki buster 210 čvorovi iz modula 204 bustera. U takvom slučaju upravljač čvorovima može „mrestiti“ procese na izabranim buster 210 čvorovima, kako bi pokrenuo zadatak paralelno.
[0061] Integrisana kontrola je još jedan funkcionalni aspekt koji sprovode upravljači čvorovima. Integrisana kontrola se odnosi na upotrebu informacija koje su upravljači čvorovima prikupili na osnovu svoje funkcije upravljanja za kontrolu komunikacije i obrnuto. Dakle, funkcija komunikacije i funkcija upravljanja nisu odvojene, već integrisane kako bi se dodatno optimizovale sveukupne performanse sistema.
[0062] Znanje upravljača 209 čvorovima o svim različitim aspektima svih čvorova u svim modulima i o statusu svih međupovezivanja, unutarmodulske komunikacije i međumodulske komunikacije se koristi za pokretanje sistema. Ovo omogućava dinamičko prilagođavanje promenljivom ponašanju sistema, kao i promenljivoj potražnji aplikacije koja je pokrenuta na sistemu.
[0063] Integrisana kontrola ne uzima u obzir samo trenutno stanje sistema i potražnju aplikacije, već predviđa i predstojeće zahteve za korišćenje modula ili međupovezivanja.
[0064] Upravljači 209 čvorovima mogu biti implementirani u hardveru ili u softveru, npr. kao pozadinski procesi koji se pokreću na odgovarajućim čvorovima. Upravljači 209 čvorovima stalno prikupljaju informacije kako bi izgradili sveobuhvatan pogled na module i čitav sistem. Aplikacije koje se pokreću na sistemu mogu imati koristi od ovih informacija komunikacijom sa funkcijom upravljanja ili direktno sa pojedinačnim upravljačima 209 čvorovima. Ovo se ostvaruje posebnim interfejsom, koji može biti hardverski ili API (interfejs za programiranje aplikacija).
[0065] Komunikacioni saobraćaj upravljača 209 čvorovima strogo je odvojen od komunikacije unutar i između modula. Ovo omogućava da se komunikacija unutar i između modula odvija velikom brzinom, bez prekida funkcijama upravljanja. Osim toga, bezbednost sistema može se dodatno unaprediti takvim razdvajanjem.
[0066] Korišćenje stvarne komunikacione mreže 220 je kontrolisano od strane upravljača 209 čvorovima, koji preko interfejsa za prenos poruka (MPI) aplikaciji obezbeđuju tu funkcionalnost.
[0067] Upravljači 209 čvorovima međusobno komuniciraju koristeći administrativnu mrežu 224. Administrativna mreža 224 može biti ista ili različiza fizička mreža od fizičke mreže koja se koristi za komunikaciju unutar i između modula, koja se ovde naziva komunikaciona mreža 220. Na primer, komunikacija unutar i između modula može biti InfiniBand, Myrinet itd., a administrativna mreža može biti formirana Eternetom koji povezuje upravljače 209 čvorovima.
[0068] U sistem mogu biti uključeni specijalni čvorovi za pružanje front end 230 koji omogućava administrativnim zadacima ili kontrolnim funkcijama da pokreću sistem. Front end ne mora da bude povezan na komunikacionu mrežu 220, već samo na administrativnu mrežu 224. Preko front end čvora, koji se može formirati npr. računarom radne stanice, personalnim računarom (PC), laptop računarom ili bilo kojim pametnim računarskim uređajem, može se administrirati modularni računarski sistem 200. Aplikacije koje rade na modularnom računarskom sistemu 200s mogu se zakazivati, pokretati, zaustavljati i nadgledati. To može biti urađeno serijskom obradom, tj. izvršavanjem niza poslova na modularnom računarskom sistemu 200 bez manuelne intervencije, dakle, neinteraktivno.
[0069] Osim izvođenja niza poslova na modularnom računarskom sistemu 200 bez manuelne intervencije, upravljači 309 čvorovima mogu pružiti i interaktivno računarstvo, u kojem aplikacija koja je pokrenuta na modularnom računarskom sistemu 200 prihvata ulaze od ljudi dok radi. Ovaj ulaz se može obezbediti preko računara radne stanice, personalnog računara (PC), laptop računara ili bilo kog pametnog računarskog uređaja. U takvom scenariju modularni računarski sistem 200 je dostupan preko npr. laptop računara, pri čemu izgleda da laptop računar ima snagu izračunavanja modularnog računarskog sistema 200. Ovo je veoma korisno za aplikacije u realnom vremenu, koje moraju da odgovore unutar vremenskog okvira koji korisnik oseća kao neposredni ili trenutni. Takođe, aplikacije Big Data, koje ogromnu količinu strukturiranih, polustrukturiranih i nestrukturiranih podataka čine dostupnima za istraživanje informacija, mogu imati koristi od takvog aranžmana. Ovo važi i za usluge računarstva u oblaku koje imaju modularni računarski sistem 200 kao osnovni resurs za obezbeđivanje računske snage i skladištenja.
[0070] Sl.3 prikazuje drugi način izvođenja modularnog računarskog sistema 300 prema predmetnom pronalasku. Modularni računarski sistem 300 uključuje modul 302 klastera, modul 304 bustera i modul 306 za skladištenje.
[0071] Modul 302 klastera uključuje mnoštvo čvorova 310 klastera (engl. Cluster Nodes - CN). Na svakom čvoru 310 klastera obezbeđen je upravljač 309 čvorovima (engl. Node Manager - NM), koji u saradnji sa drugim upravljačima 309 čvorova obezbeđuje komunikaciju i funkcionalnost upravljanja modularnom računarskom sistemu 300. Čvorovi 310 klastera su međusobno povezani preko klasterskog međupovezivanja 312.
[0072] Modul 304 bustera uključuje veći broj čvorova 320 bustera (engl. Booster Nodes - BN). Na svakom čvoru 320 bustera obezbeđen je upravljač 309 čvorovima, koji u saradnji sa drugim upravljačima 309 čvorova obezbeđuje komunikaciju i funkcionalnost upravljanja modularnom računarskom sistemu 300. Čvorovi 320 bustera su međusobno povezani preko busterskog međupovezivanja 322.
[0073] Modul 306 za skladištenje uključuje mnoštvo čvorova 330 za skladištenje (SN). Na svakom čvoru 330 za skladištenje obezbeđen je upravljač 309 čvorovima, koji u saradnji sa drugim upravljačima 309 čvorovima obezbeđuje funkcionalnost komunikacije i funkcionalnost upravljanja modularnom računarskom sistemu 300. Čvorovi 330 za skladištenje su povezani jedni sa drugima preko skladišnog međupovezivanja 332.
[0074] Čvor klastera može biti formiran od računara koji ima mikroprocesor opšte namene, kao što je Intel Xeon procesor, memoriju, interfejse, kao što su mrežne kartice. Čvorovi bustera mogu biti formirani od sistema za obradu opremljenih GPU-ovima ili many-core procesorima, memorijom i interfejsima, kao što su mrežne kartice. Čvorovi za skladištenje uključuju memoriju, koja može biti RAM (memorija sa slučajnim pristupom) i trajna memorija, kao što je fleš memorija, SSD (brzi hard disk), hard disk, dalje čvor za skladištenje uključuje kontroler čvora, kao što je mikroprocesor, i interfejse, kao što su mrežne kartice.
[0075] Modul 302 klastera može komunicirati sa modulom 306 za skladištenje preko čvora 340 interfejsa koji spaja klastersko 312 međupovezivanje sa skladišnim 332 međupovezivanjem. Modul 306 za skadištenje može komunicirati sa modulom 304 bustera preko čvora 342 interfejsa koji spaja skladišno 332 međupovezivanje sa busterskim 322 međupovezivanjem. Modul 304 bustera može komunicirati sa modulom 302 klastera preko čvora 344 interfejsa koji povezuje bustersko 322 međupovezivanje sa klasterskim 312 međupovezivanjem.
[0076] Modul 302 klastera koristi npr. InfiniBand međupovezivanje, dok modul 304 bustera koristi Intel Omni-Path strukturu, koja je povezana sa InfiniBand međupovezivanjem preko čvorova 344 interfejsa. Svaki čvor interfejsa može biti formiran od mnoštva čvorova u cilju povećanja performansi i propusnosti. Isto važi i za ostale tipove modula.
[0077] Svi upravljači 309 čvorovima koji su obezbeđeni u različitim čvorovima 310, 310, 312 koriste istu komunikacionu infrastrukturu. Na klaster međupovezivanje 312 je priključen front end 350 koji omogućava kontrolu celokupnog modularnog računarskog sistema. Front end 350 takođe uključuje upravljača 309 čvorovima, koji obavlja stvarnu komunikaciju s drugim upravljačima 309 čvorovima.
[0078] Da bi se različiti moduli kombinovali u jedan sistem, obezbeđen je modularni računarski sloj apstrakcije (MCAL) kao što je opisano pozivajući se na sl.1. MCAL pruža funkcionalnost komunikacije i funkcionalnost upravljanja. Para Station kompanije Par Tec Cluster Competence Center GmbH mogla bi predstavljati polaznu tačku za realizaciju MCAL koji ima funkcionalnost i svojstva opisane u nastavku.
[0079] MCAL implementiraju upravljači 309 čvorovima u svakom čvoru, što se može koristiti za proces da se obradi komunikacija za bilo koju vrstu obezbeđenog komunikacionog linka.
[0080] Kao što je gore pomenuto, upravljači 309 čvorovima takođe obezbeđuju upravljanje čvorovima. Upravljanje čvorovima je usmereno na pojedinačne čvorove, kao što su čvorovi 310 klastera u modulu 302 klastera, čvorovi 320 bustera u modulu 304 bustera, čvorovi 330 za skladištenje u modulu 306 za skladištenje. Upravljači 309 čvorovima takođe imaju sposobnost odabira određenih čvorova u zavisnosti od faktora poput dostupnosti, zaostajanja ili fizičkog položaja. Ovo se može učiniti potpuno transparentno za pokrenutu aplikaciju. Oni uvek imaju celokupan pogled na sistem i stalno ažuriraju stanje svakog čvora i svakog međupovezivanja. Upravljači 309 čvorovima u svakom trenutku informišu jedni druge o posebnim svojstvima svakog čvora i međupovezivanja, kao što su broj raspoloživih CPU po čvoru, pokrenute usluge, raspoloživo skladište, propusni opseg međupovezivanja, slobodna memorija, temperatura, brzina sistemskog takta itd.
[0081] Druga funkcija koju sprovode je upravljanje modulima. Upravljanje modulom je slično upravljanju čvorovima i može uključivati upravljanje čvorovima za određeni modul, ali uzima u obzir aspekte specifične za modul. Upravljanje modulom fokusira se na aspekte specifične za modul, kao što je stanje čvorova interfejsa, ako su obezbeđeni, preko kojih modul komunicira sa drugima.
[0082] Upravljači 309 čvorovima takođe sprovode upravljanje procesima. Svaka pokrenuta aplikacija podeljena je na mnoštvo pojedinačnih procesa, koje treba pokrenuti, distribuirati i nadgledati. Istovremeno, potrebno je dodeliti resurse koji odgovaraju potrebama procesa za računarskom snagom i skladištenjem. Oni su konfigurisani da prepoznaju i kontrolišu zavisnosti između procesa i njihovih zahteva. Na osnovu ovoga, upravljači 309 čvorovima kreiraju procese na čvorovima u slučaju modula 304 bustera ili modula 302 klastera, ili dodeljuje skladište u slučaju modula 306 za skladištenje. Procesi se nadgledaju i zavisni procesi se tretiraju kao grupe, što omogućava brzo reagovanje na greške koje se javljaju u bilo kom od paralelnih zadataka. Ovo omogućava da se procesi odmah ponovo pokrenu, tako da je ukupno kašnjenje za pokrenutu aplikaciju svedeno na minimum.
[0083] Upravljanje resursima je još jedan zadatak koji upravljači 309 čvorovima sprovode u modularnom računarskom sistemu 300. Kao deo upravljanja resursima, MCAL ostvaruje mehanizam rasterećenja, tj. procese, koji su npr. buster 320 čvorovi iz modula 304 bustera. U takvom slučaju upravljač 309 čvorovima može „mrestiti“ procese na izabranim buster 320 čvorovima, kako bi pokrenuo zadatak paralelno.
[0084] Kao deo rasterećenja, neće biti kreiran samo jedan proces koji radi na jednom busteru, već višestruki procesi, koji međusobno direktno komuniciraju pomoću komunikacione strukture modula bez potrebe za posredovanjem host procesora.
[0085] Upravljanje resursima takođe obezbeđuje smanjenje potrošnje memorije, npr. smanjenjem broja veza između različitih procesa. To se postiže korišćenjem veza na zahtev, koje se zapravo uspostavljaju samo onda kada je to potrebno. Ovo drastično smanjuje potrošnju memorije po vezi. Dakle, ne samo da se resursi kao što su čvorovi tretiraju na virtuelni način, već se virtuelno dodeljivanje takođe primenjuje na fizičke mreže.
[0086] Prilikom dodeljivanja resursa, upravljači 309 čvorovima ne uzimaju u obzir samo zahtev od strane jednog procesa, već i od drugih procesa takođe. Ovo omogućava da se fleksibilno reaguje na promene komunikacione infrastrukture zasnovano na integrisanoj kontroli.
[0087] Integrisana kontrola je još jedan funkcionalni aspekt koji obezbeđuju upravljači 309 čvorovima. Integrisana kontrola se odnosi na upotrebu informacija koje su upravljači čvorovima prikupili na osnovu svoje funkcije upravljanja za kontrolu komunikacije i obrnuto. Dakle, funkcija komunikacije i funkcija upravljanja nisu odvojene, već integrisane kako bi se dodatno optimizovale sveukupne performanse sistema.
[0088] Znanje upravljača čvorovima o svim različitim aspektima svih čvorova u svim modulima i o statusu svih međupovezivanja, unutarmodulske komunikacije i međumodulske komunikacije se koristi za pokretanje sistema. Ovo omogućava dinamičko prilagođavanje promenljivom ponašanju sistema, kao i promenljivoj potražnji aplikacije koja je pokrenuta na sistemu.
[0089] Integrisana kontrola ne uzima u obzir samo trenutno stanje sistema i potražnju aplikacije, već predviđa i predstojeće zahteve za korišćenje modula ili međupovezivanja. Informacije o stanju sistema koriste se za dinamičko dodeljivanje čvorova. Ovo uključuje da se dodeljivanje resursa vrši pomoću povratne sprege koja na celom sistemu registruje uticaj odluka o dodeljivanju, tako da se buduća dodeljivanja adekvatno prilagođavaju. Sistem takođe skladišti takve informacije radi poboljšanja odluka o dodeljivanju u budućim slučajevima, na način samoučenja.
[0090] Čak i ako se glavni deo aplikacije normalno pokreće na modulu 302 klastera, MCAL identifikuje koji deo aplikacije treba pokrenuti na modulu 302 klastera ili modulu 304 bustera. Osnova za donošenje odluke je npr. naznaka samog kôda aplikacije, posmatranje performansi kôdova tokom rada. Ovo omogućava prilagođavanje dodeljivanja tokom izračunavanja aplikacije.
[0091] Upravljači 309 čvorovima mogu biti implementirani u hardveru ili u softveru, npr. kao pozadinski procesi koji se pokreću na odgovarajućim čvorovima. Upravljači 309 čvorovima stalno prikupljaju informacije kako bi izgradili sveobuhvatan pogled na module i čitav sistem. Aplikacije koje se pokreću na sistemu mogu imati koristi od ovih informacija komunikacijom sa funkcijom upravljanja ili direktno sa pojedinačnim upravljačima 309 čvorovima. Ovo se ostvaruje posebnim interfejsom, koji može biti hardverski ili API (interfejs za programiranje aplikacija).
[0092] Komunikacioni saobraćaj upravljača čvorovima strogo je odvojen od komunikacije unutar i između modula. Ovo omogućava da se komunikacija unutar i između modula odvija velikom brzinom, bez prekida funkcijama upravljanja. Osim toga, bezbednost sistema može se dodatno unaprediti takvim razdvajanjem.
[0093] Upotrebu stvarne komunikacione mreže kontrolišu upravljači 309 čvorovima, što pruža takvu funkcionalnost aplikaciji preko interfejsa za prenos poruka (MPI). Upravljači 309 čvorovima koriste administrativnu mrežu (nije prikazano). Administrativna mreža (nije prikazana) može biti ista ili različiza fizička mreža od fizičke mreže koja se koristi za komunikaciju unutar i između modula. Na primer, komunikacija unutar i između modula može biti InfiniBand, Myrinet itd., a administrativna mreža može biti formirana Eternetom koji povezuje upravljače 309 čvorovima.
[0094] U sistem mogu biti uključeni specijalni čvorovi za pružanje front end koji omogućava administrativnim zadacima ili kontrolnim funkcijama da pokreću sistem. Front end 350 ne mora da bude povezan na komunikacionu mrežu, već samo na komunikacionu mrežu. Preko front end 350 čvora, koji se može formirati npr. računarom radne stanice, personalnim računarom (PC), laptop računarom ili bilo kojim pametnim računarskim uređajem, može se administrirati modularni računarski sistem 300. Aplikacije koje rade na modularnom računarskom sistemu 300s mogu se zakazivati, pokretati, zaustavljati i nadgledati. To može biti urađeno serijskom obradom, tj. izvršavanjem niza poslova na modularnom računarskom sistemu 200 bez manuelne intervencije, dakle, neinteraktivno.
[0095] Osim izvođenja niza poslova na modularnom računarskom sistemu 300 bez manuelne intervencije, upravljači čvorovima mogu pružiti i interaktivno računarstvo, u kojem aplikacija koja je pokrenuta na modularnom računarskom sistemu 300 prihvata ulaze od ljudi dok radi. Ovaj ulaz se može obezbediti preko računara radne stanice, personalnog računara (PC), laptop računara ili bilo kog pametnog računarskog uređaja. U takvom scenariju modularni računarski sistem 300 je dostupan preko npr. laptop računara, pri čemu izgleda da laptop računar ima snagu izračunavanja modularnog računarskog sistema 300. Ovo je veoma korisno za aplikacije u realnom vremenu, koje moraju da odgovore unutar vremenskog okvira koji korisnik oseća kao neposredni ili trenutni. Takođe, aplikacije Big Data, koje ogromnu količinu strukturiranih, polustrukturiranih i nestrukturiranih podataka čine dostupnima za istraživanje informacija, mogu imati koristi od takvog aranžmana. Ovo važi i za usluge računarstva u oblaku koje imaju modularni računarski sistem 300 kao osnovni resurs za obezbeđivanje računske snage i skladištenja.

Claims (7)

Patentni zahtevi
1. Modularni računarski sistem (100) za izvođenje izračunavanja aplikativnih programa, modularni računarski sistem koji uključuje različite module (130, 140, 150, 160, 170), pri čemu svaki modul uključuje mnoštvo čvorova (208, 210, 212, 310, 320, 330), modularni računarski sistem dalje uključuje modularni računarski sloj (120) apstrakcije koji omogućava aplikacionom sloju da pristupi resursima sistema, pri čemu se modularni računarski sloj apstrakcije distribuira po čvorovima i obezbeđuje komunikaciju unutar i između modula i funkciju upravljanja za čvorove različitih modula, kao i funkciju upravljanja modulima, procesima i resursima,
naznačeno time što modularni računarski sloj apstrakcije uključuje upravljače (209, 309) čvorovima koji su implementirani na svakom čvoru,
pri čemu svaki od upravljača čvorovima održava skup informacija o statusu svakog čvora i svaku međusobnu vezu između čvorova, a upravljači čvorovima razmenjuju informacije međusobnom komunikacijom preko administrativne mreže (224), i pri čemu se resursi mogu dodeljivati čvorovima korišćenjem skupa informacija da se dinamički prilagodi rad sistema, povratna sprega koja registruje uticaj odluka o dodeljivanju na ceo sistem.
2. Modularni računarski sistem prema patentnom zahtevu 1, naznačen time što su različiti moduli sačinjeni najmanje od modula (130) klastera, modula (140) bustera i modula (150) za skladištenje.
3. Modularni računarski sistem prema bilo kom od prethodnih patentnih zahteva, naznačen time što mnoštvo čvorova komunicira preko komunikacione mreže (220).
4. Modularni računarski sistem prema patentnom zahtevu 3, naznačen time što se komunikaciona mreža realizuje korišćenjem komunikacije sa deljenom memorijom.
5. Modularni računarski sistem prema patentnom zahtevu 1, pri čemu je komunikacija između upravljača čvorovima odvojena od komunikacije između modula.
6. Postupak za upravljanje modularnim računarskim sistemom prema patentnom zahtevu 1 za izvođenje izračunavanja aplikativnih programa, pri čemu postupak uključuje korak obezbeđivanja komunikacije unutar i između čvorova i funkciju upravljanja za čvorove različitih modula pomoću modularnog računarskog apstrakcionog sloja.
7. Postupak za upravljanje modularnim računarskim sistemom prema patentnom zahtevu 6, koji dalje uključuje korak da upravljači čvorovima prikupljaju informacije o statusu čvorova i dodeljuju resurse čvorovima u zavisnosti od prikupljenih informacija o statusu.
RS20211127A 2016-10-05 2017-10-05 Računarski sistem visokih performansi i postupak RS62402B1 (sr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16192430 2016-10-05
EP17777304.1A EP3523723B8 (en) 2016-10-05 2017-10-05 High performance computing system and method
PCT/EP2017/075375 WO2018065530A1 (en) 2016-10-05 2017-10-05 High performance computing system and method

Publications (1)

Publication Number Publication Date
RS62402B1 true RS62402B1 (sr) 2021-10-29

Family

ID=57083209

Family Applications (1)

Application Number Title Priority Date Filing Date
RS20211127A RS62402B1 (sr) 2016-10-05 2017-10-05 Računarski sistem visokih performansi i postupak

Country Status (19)

Country Link
US (1) US11494245B2 (sr)
EP (3) EP3944084A1 (sr)
JP (2) JP7066694B2 (sr)
KR (2) KR102464616B1 (sr)
CN (1) CN109791509B (sr)
CA (1) CA3035459C (sr)
CY (1) CY1124626T1 (sr)
DK (1) DK3523723T3 (sr)
ES (1) ES2886491T3 (sr)
HR (1) HRP20211436T1 (sr)
HU (1) HUE056042T2 (sr)
LT (1) LT3523723T (sr)
PL (1) PL3523723T3 (sr)
PT (1) PT3523723T (sr)
RS (1) RS62402B1 (sr)
RU (1) RU2733058C1 (sr)
SI (1) SI3523723T1 (sr)
SM (1) SMT202100559T1 (sr)
WO (1) WO2018065530A1 (sr)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7672821B2 (ja) 2018-01-23 2025-05-08 パルテック・アーゲー アプリケーションの実行中に決定される異種コンピューティングリソースの動的な割り当て
US11315013B2 (en) * 2018-04-23 2022-04-26 EMC IP Holding Company LLC Implementing parameter server in networking infrastructure for high-performance computing
KR102338729B1 (ko) * 2019-03-11 2021-12-14 서울대학교산학협력단 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램
WO2020184982A1 (ko) * 2019-03-11 2020-09-17 서울대학교산학협력단 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램
KR102231359B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법
KR102231357B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 소프트웨어 정의 서버 배포 스케줄링 방법
KR102231358B1 (ko) 2019-11-04 2021-03-24 주식회사 이노그리드 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템
KR102378817B1 (ko) 2020-09-25 2022-03-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스의 네트워크 격리를 위한 동적 클러스터 구성 방법 및 시스템
KR102413923B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 전력효율을 위한 로드 밸런싱 방법 및 그 시스템
KR102413922B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템
KR102413924B1 (ko) 2020-09-25 2022-06-29 주식회사 이노그리드 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 프로세스 그룹 관리 방법 및 그 시스템
KR102627514B1 (ko) 2021-08-13 2024-01-23 주식회사 이노그리드 메타버스를 위한 고성능 클라우드 서비스 시스템 및 방법
KR102573439B1 (ko) 2021-11-10 2023-09-04 주식회사 이노그리드 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법
KR20230068055A (ko) 2021-11-10 2023-05-17 주식회사 이노그리드 Arm 프로세서 컴퓨팅 노드 기반의 보드형 고성능 클라우드 시스템 및 운영방법
KR102721874B1 (ko) 2021-11-10 2024-10-28 주식회사 이노그리드 보드형 컴퓨팅 노드들을 이용한 고성능 클라우드 분리 운영 방법 및 그 시스템
US12346775B2 (en) 2021-12-22 2025-07-01 Red Hat, Inc. Migrating quantum services based on temperature thresholds

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US7058858B2 (en) * 2001-04-23 2006-06-06 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US7257638B2 (en) * 2001-12-20 2007-08-14 Microsoft Corporation Distributing network applications
WO2004081762A2 (en) * 2003-03-12 2004-09-23 Lammina Systems Corporation Method and apparatus for executing applications on a distributed computer system
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US20050080982A1 (en) * 2003-08-20 2005-04-14 Vasilevsky Alexander D. Virtual host bus adapter and method
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US7685319B2 (en) * 2004-09-28 2010-03-23 Cray Canada Corporation Low latency communication via memory windows
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US7819345B2 (en) * 2007-09-17 2010-10-26 Shoap Stephen D Method and system for fluid transmission along significant distances
US9163618B2 (en) * 2008-06-24 2015-10-20 Agilent Technologies, Inc. Automated conversion between SFC and HPLC
US8869160B2 (en) 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
JP5276632B2 (ja) 2010-08-25 2013-08-28 日本電信電話株式会社 クラスタシステムおよびソフトウェアデプロイ方法
EP2442228A1 (en) 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
CN102742251A (zh) * 2011-08-11 2012-10-17 华为技术有限公司 一种实现对称多处理系统的节点聚合系统
US9203900B2 (en) * 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
KR20130088512A (ko) 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
JP5884578B2 (ja) * 2012-03-16 2016-03-15 富士通株式会社 アクセラレータ管理装置、アクセラレータ管理方法および入出力装置
US9742877B2 (en) * 2012-12-04 2017-08-22 International Business Machines Corporation Clustering support across geographical boundaries
US9298490B2 (en) 2012-12-20 2016-03-29 Vmware, Inc. Managing a data structure for allocating graphics processing unit resources to virtual machines
CN103207814B (zh) * 2012-12-27 2016-10-19 北京仿真中心 一种去中心化的跨集群资源管理与任务调度系统与调度方法
WO2015020605A1 (en) * 2013-08-09 2015-02-12 Telefonaktiebolaget L M Ericsson (Publ) Resource allocation for mobile terminal configured for dual connectivity
EP2960791A1 (en) * 2014-06-27 2015-12-30 Fujitsu Limited Method of executing an application on a distributed computer system, a resource manager and a distributed computer system
US9521089B2 (en) * 2014-08-30 2016-12-13 International Business Machines Corporation Multi-layer QoS management in a distributed computing environment
US10409810B2 (en) * 2015-05-08 2019-09-10 International Business Machines Corporation Generating multilingual queries

Also Published As

Publication number Publication date
KR20210136179A (ko) 2021-11-16
EP3523723B8 (en) 2021-07-28
JP2019533249A (ja) 2019-11-14
SI3523723T1 (sl) 2021-11-30
SMT202100559T1 (it) 2021-11-12
CY1124626T1 (el) 2022-07-22
JP2022050541A (ja) 2022-03-30
HRP20211436T1 (hr) 2021-12-10
WO2018065530A1 (en) 2018-04-12
CN109791509B (zh) 2023-11-28
JP7066694B2 (ja) 2022-05-13
EP3523723B1 (en) 2021-06-16
RU2733058C1 (ru) 2020-09-29
PL3523723T3 (pl) 2021-12-20
LT3523723T (lt) 2021-10-11
KR102464616B1 (ko) 2022-11-09
CA3035459A1 (en) 2018-04-12
PT3523723T (pt) 2021-09-20
DK3523723T3 (da) 2021-09-20
ES2886491T3 (es) 2021-12-20
HUE056042T2 (hu) 2022-01-28
KR102326474B1 (ko) 2021-11-15
US20190243694A1 (en) 2019-08-08
CA3035459C (en) 2023-02-21
EP3944084A1 (en) 2022-01-26
US11494245B2 (en) 2022-11-08
EP4711927A2 (en) 2026-03-18
KR20190058619A (ko) 2019-05-29
CN109791509A (zh) 2019-05-21
JP7405876B2 (ja) 2023-12-26
EP3523723A1 (en) 2019-08-14

Similar Documents

Publication Publication Date Title
RS62402B1 (sr) Računarski sistem visokih performansi i postupak
US11934883B2 (en) Computer cluster arrangement for processing a computation task and method for operation thereof
HK40067475A (en) High performance computing system and method
HK40011824A (en) High performance computing system and method
HK40011824B (en) High performance computing system and method
Zanella et al. A Hierarchical Approach for Resource Management in Heterogeneous Systems