Lygiagreti virtuali mašina yra programinė įranga, leidžianti keliems nepriklausomiems kompiuteriams, geografiškai išsidėsčiusiems, prisijungti vienas prie kito kaip tinklą ir panaudoti savo sistemos apdorojimo galią bei atmintį vienai programai.
Gamybos kaštų pokytis ir namų kompiuterių populiarumas padidino labai galingų kompiuterių įperkamumą vartotojų rinkoje. Šios mašinos nepakankamai išnaudojamos naudojant standartines programinės įrangos programas, todėl daug apdorojimo galios nėra. Lygiagreti virtualiosios mašinos programinė įranga leidžia sujungti šiuos išteklius ir pasiekti juos siekiant išspręsti dideles, sudėtingas mokslo, medicinos ar pramonės problemas.
Lygiagrečią virtualią mašiną 1989 m. Oak Ridge National Labs pirmą kartą sukūrė Al Geist. Remiantis ten atliktais darbais, projektas buvo išplėstas Tenesio universitete 1991 m. kovo mėn. ir nuo to laiko nuolat auga.
Lygiagrečią virtualių mašinų sistemą sudaro dvi dalys: programa, kuri yra atskiruose įrenginiuose, ir sąsajos veiksmų biblioteka. Programinė įranga vadinama lygiagrečios virtualios mašinos demonu, pvmd3 arba pmvd. Ši maža programa veikia pasyviai, kol reikia paleisti lygiagrečią virtualios mašinos programą. Kai vartotojas nori paleisti tokio tipo programą, jis pirmiausia turi paleisti lygiagrečią virtualią mašiną. Tai leidžia jiems pasiekti programinę įrangą bet kuriame kitame pagrindiniame kompiuteryje.
Lygiagrečioje virtualios mašinos įprastoje bibliotekoje yra visas sąrašas visų kodų, reikalingų įvairioms užduotims, vykdomoms atskiruose pagrindiniuose kompiuteriuose, koordinuoti. Į šią biblioteką įtrauktos standartinės pranešimų perdavimo, užduočių koordinavimo ir bet kokių pačios virtualios mašinos pakeitimų procedūros.
Pagrindinė lygiagrečios virtualios mašinos koncepcija yra ta, kad bet kuri programa turi keletą užduočių, kurias galima paleisti atskirai. Tokio tipo logika yra labai paplitusi sudėtinguose moksliniuose skaičiavimuose. Lygiagrečiose virtualiose mašinose naudojami du modeliai; funkcinis ir duomenų paralelizmas.
Funkciniai paralelizmas atskiria programą į aiškiai apibrėžtas nepriklausomas užduotis. Šios užduotys atliekamos atskiruose pagrindiniuose kompiuteriuose. Lygiagreti virtuali mašina naudojama koordinavimui pagal funkcijas, tokias kaip įvestis, sprendimas, išvestis ir ekranas.
Duomenų lygiagretumas arba vienos programos keli duomenys (SPMD) yra populiaresnis metodas. Taikant šį metodą, visos užduotys yra lygios, tačiau kiekvienas šeimininkas sprendžia nedidelę didesnio galvosūkio dalį. Lygiagrečios virtualios mašinos aplinka palaiko abu metodus, o tai svarbu, nes gali būti efektyviausia maišyti šiuos du metodus, atsižvelgiant į būtinus skaičiavimus.
C, C++ ir Fortran yra kompiuterių programavimo kalbos, naudojamos lygiagrečioje virtualioje mašinoje. Šios kalbos buvo pasirinktos, nes dauguma šioje aplinkoje naudojamų programų buvo sukurtos šiomis kalbomis. Lygiagrečios virtualios mašinos programinės įrangos šaltinio kodas yra plačiai prieinamas internete ir jį galima pasiekti naudojant ftp, www, xnetlib arba automatinį el.