Kaj je vzporedni virtualni stroj?

Vzporedni virtualni stroj je programska aplikacija, ki omogoča več neodvisnim računalnikom, geografsko razporejenim, da se povežejo med seboj kot omrežje in eni aplikaciji posojajo svojo sistemsko procesorsko moč in pomnilnik.

Premik proizvodnih stroškov in priljubljenost domačega računalnika je povzročila povečanje cenovne dostopnosti zelo zmogljivih računalnikov na potrošniškem trgu. Ti stroji so premalo izkoriščeni s svojimi standardnimi programskimi aplikacijami, zaradi česar je veliko procesorske moči brez. Programska oprema vzporednih navideznih strojev omogoča združevanje teh virov in dostop do njih za reševanje velikih, zapletenih znanstvenih, medicinskih ali industrijskih problemov.

Vzporedni virtualni stroj je leta 1989 v Oak Ridge National Labs prvič ustvaril Al Geist. Na podlagi tamkajšnjega dela je bil projekt marca 1991 razširjen na Univerzi v Tennesseeju in od takrat vztrajno raste.

Sistem vzporednih navideznih strojev ima dva dela, aplikacijo, ki se nahaja na posameznih strojih, in knjižnico vmesniških rutin. Programska aplikacija se imenuje parallel virtual machine daemon, pvmd3 ali pmvd. Ta majhen program deluje pasivno, dokler ni potreben za zagon aplikacije vzporednega virtualnega stroja. Ko želi uporabnik zagnati to vrsto programa, mora najprej zagnati vzporedni virtualni stroj. To jim omogoča dostop do programske opreme na katerem koli drugem gostitelju.

Knjižnica rutin vzporednega virtualnega stroja vsebuje celoten seznam vseh kod, potrebnih za usklajevanje različnih nalog, ki se izvajajo na ločenih gostiteljih. V to knjižnico so vključene standardne rutine za posredovanje sporočil, usklajevanje nalog in kakršne koli spremembe na samem virtualnem stroju.
Osnovni koncept vzporednega virtualnega stroja je, da ima vsaka aplikacija več nalog, ki jih je mogoče izvajati neodvisno. Ta vrsta logike je zelo pogosta pri zapletenih znanstvenih izračunih. V vzporednih virtualnih strojih se uporabljata dva modela; funkcionalni in podatkovni paralelizmi.
Funkcionalni paralelizmi ločijo aplikacijo na jasno opredeljene neodvisne naloge. Te naloge se izvajajo na ločenih gostiteljskih strojih. Vzporedni virtualni stroj se uporablja za usklajevanje na podlagi funkcij, kot so vnos, rešitev, izhod in prikaz.
Podatkovni paralelizem ali en program z več podatki (SPMD) je bolj priljubljena metoda. Pri tej metodi so vse naloge enake, vendar vsak gostitelj rešuje majhen košček večje uganke. Okolje vzporednega navideznega stroja podpira obe metodi, kar je pomembno, saj je morda najbolj učinkovito mešati ti dve metodi, odvisno od zahtevanih izračunov.
C, C++ in Fortran so računalniški programski jeziki, ki se uporabljajo v vzporednem virtualnem stroju. Ti jeziki so bili izbrani, ker je bila večina aplikacij, uporabljenih v tem okolju, zgrajenih v teh jezikih. Izvorna koda za programsko opremo vzporednih virtualnih strojev je široko dostopna na internetu in je dostopna prek ftp, www, xnetlib ali samodejne elektronske pošte.