Mis on paralleelne virtuaalmasin?

Paralleelne virtuaalmasin on tarkvararakendus, mis võimaldab mitmel geograafiliselt jaotatud sõltumatul arvutil üksteisega võrguna ühenduda ning laenata oma süsteemi töötlemisvõimsust ja mälu ühele rakendusele.

Tootmiskulude nihe ja koduarvuti populaarsus on kaasa toonud väga võimsate arvutite taskukohasuse tõusu tarbijaturul. Need masinad on nende standardsete tarkvararakendustega alakasutatud, jättes vabaks hulgaliselt töötlemisvõimsust. Paralleelse virtuaalmasina tarkvara võimaldab neid ressursse koondada ja neile juurde pääseda, et lahendada suuri, keerulisi teaduslikke, meditsiinilisi või tööstuslikke probleeme.

Paralleelse virtuaalmasina lõi esmakordselt 1989. aastal Oak Ridge National Labsis Al Geist. Sealse töö põhjal laiendati projekti 1991. aasta märtsis Tennessee ülikoolis ja see on sellest ajast alates pidevalt kasvanud.

Paralleelsel virtuaalmasina süsteemil on kaks osa: rakendus, mis asub üksikutel masinatel, ja liideste rutiinide teek. Tarkvararakendust nimetatakse paralleelseks virtuaalmasina deemoniks, pvmd3 või pmvd. See väike programm istub passiivselt, kuni seda nõutakse paralleelse virtuaalmasina rakenduse käivitamiseks. Kui kasutaja soovib seda tüüpi programmi käivitada, peab ta esmalt käivitama paralleelse virtuaalmasina. See võimaldab neil juurdepääsu mis tahes muu hosti tarkvarale.

Paralleelsel virtuaalmasina rutiini teegil on täielik loetelu kõigist koodidest, mis on vajalikud erinevatel hostidel töötavate toimingute koordineerimiseks. Sellesse teeki kuuluvad standardsed rutiinid sõnumite edastamiseks, ülesannete koordineerimiseks ja virtuaalmasina enda muudatuste tegemiseks.
Paralleelse virtuaalmasina põhikontseptsioon seisneb selles, et igal rakendusel on mitu ülesannet, mida saab iseseisvalt käivitada. Seda tüüpi loogika on keerukate teaduslike arvutuste puhul väga levinud. Paralleelsetes virtuaalmasinates kasutatakse kahte mudelit; funktsionaalsed ja andmete paralleelsused.
Funktsionaalsed paralleelsused jagavad rakenduse selgelt määratletud sõltumatuteks ülesanneteks. Neid ülesandeid teostatakse eraldi hostmasinatel. Paralleelset virtuaalmasinat kasutatakse funktsioonide (nt sisend, lahendus, väljund ja kuva) alusel koordineerimiseks.
Andmete paralleelsus või ühe programmiga mitmed andmed (SPMD) on populaarsem meetod. Selle meetodi puhul on kõik ülesanded võrdsed, kuid iga peremees lahendab väikese tüki suuremast puslest. Paralleelselt töötav virtuaalmasina keskkond toetab mõlemat meetodit, mis on oluline, kuna olenevalt vajalikest arvutustest võib olla kõige tõhusam neid kahte meetodit segada.
C, C++ ja Fortran on paralleelses virtuaalmasinas kasutatavad arvutiprogrammeerimiskeeled. Need keeled valiti, kuna enamik selles keskkonnas kasutatavaid rakendusi on ehitatud nendes keeltes. Paralleelse virtuaalmasina tarkvara lähtekood on Internetis laialdaselt saadaval ja sellele pääseb juurde ftp, www, xnetlib või automaatse meili kaudu.