Rinnakkaisvirtuaalikone on ohjelmistosovellus, joka sallii useiden maantieteellisesti hajautettujen tietokoneiden muodostaa yhteyden toisiinsa verkkona ja lainata järjestelmän prosessointitehoa ja muistia yhdelle sovellukselle.
Valmistuskustannusten muutos ja kotitietokoneen suosio ovat lisänneet erittäin tehokkaiden tietokoneiden edullisuutta kuluttajamarkkinoilla. Nämä koneet ovat alikäytettyjä vakiosovelluksillaan, jolloin runsaasti prosessointitehoa ei ole käytettävissä. Rinnakkainen virtuaalikoneohjelmisto mahdollistaa näiden resurssien yhdistämisen ja käyttämisen suurten, monimutkaisten tieteellisten, lääketieteellisten tai teollisten ongelmien ratkaisemiseksi.
Al Geist loi rinnakkaisen virtuaalikoneen ensimmäisen kerran vuonna 1989 Oak Ridge National Labsissa. Siellä tehdyn työn perusteella hanketta laajennettiin Tennesseen yliopistossa maaliskuussa 1991 ja se on kasvanut tasaisesti siitä lähtien.
Rinnakkaisessa virtuaalikonejärjestelmässä on kaksi osaa, sovellus, joka sijaitsee yksittäisissä koneissa ja käyttöliittymäkirjasto. Ohjelmistoa kutsutaan rinnakkaisvirtuaalikone -daemoniksi, pvmd3 tai pmvd. Tämä pieni ohjelma istuu passiivisesti, kunnes sitä tarvitaan rinnakkaisen virtuaalikoneen sovelluksen suorittamiseen. Kun käyttäjä haluaa suorittaa tämän tyyppisen ohjelman, hänen on ensin käynnistettävä rinnakkainen virtuaalikone. Tämä antaa heille pääsyn ohjelmistoon missä tahansa muussa isännässä.
Rinnakkaisessa virtuaalikoneen rutiinikirjastossa on täydellinen luettelo kaikista koodeista, jotka ovat tarpeen eri tehtävien koordinoimiseksi erillisillä koneilla. Tähän kirjastoon kuuluvat vakiorutiinit viestien välittämiseen, tehtävien koordinointiin ja itse virtuaalikoneeseen tehtäviin muutoksiin.
Rinnakkaisen virtuaalikoneen taustalla on se, että kaikilla sovelluksilla on useita itsenäisesti suoritettavia tehtäviä. Tällainen logiikka on hyvin yleistä, monimutkaisia tieteellisiä laskelmia. Rinnakkaisissa virtuaalikoneissa käytetään kahta mallia; toiminnalliset ja tietojen rinnakkaisuudet.
Toiminnalliset rinnakkaisuudet erottavat sovelluksen selkeästi määriteltyihin, itsenäisiin tehtäviin. Nämä tehtävät suoritetaan erillisillä isäntäkoneilla. Rinnakkaisella virtuaalikoneella koordinoidaan toimintoja, kuten syöttö, ratkaisu, lähtö ja näyttö.
Datan rinnakkaisuus tai yhden ohjelman useat tiedot (SPMD) on suosituin menetelmä. Tässä menetelmässä kaikki tehtävät ovat samanarvoisia, mutta jokainen isäntä ratkaisee pienen palan suuremmasta palapelistä. Rinnakkainen virtuaalikoneympäristö tukee molempia menetelmiä, mikä on tärkeää, koska saattaa olla tehokkainta sekoittaa nämä kaksi menetelmää tarvittavien laskelmien mukaan.
C, C ++ ja Fortran ovat rinnakkaisessa virtuaalikoneessa käytetyt tietokoneohjelmointikielet. Nämä kielet valittiin, koska suurin osa tässä ympäristössä käytetyistä sovelluksista rakennettiin näillä kielillä. Rinnakkaisen virtuaalikoneohjelmiston lähdekoodi on laajalti saatavilla Internetissä, ja siihen pääsee ftp: n, www: n, xnetlibin tai automaattisen sähköpostin kautta.