Paralelni virtualni stroj je softverska aplikacija koja omogućuje više neovisnih računala, raspoređenih zemljopisno, da se međusobno povežu kao mreža i daju snagu obrade i memoriju sustava jednoj aplikaciji.
Promjena troškova proizvodnje i popularnost kućnog računala rezultirala je povećanjem pristupačnosti vrlo moćnih računala na potrošačkom tržištu. Ovi su strojevi nedovoljno iskorišteni sa svojim standardnim softverskim aplikacijama, ostavljajući bogatstvo procesorske snage besplatno. Softver paralelnog virtualnog stroja omogućuje udruživanje ovih resursa i pristup za rješavanje velikih, složenih znanstvenih, medicinskih ili industrijskih problema.
Paralelni virtualni stroj prvi je put stvorio Al Geist 1989. godine u Oak Ridge National Labs. Na temelju tamošnjeg rada, projekt je proširen na Sveučilištu Tennessee u ožujku 1991. i od tada je stalno rastao.
Sustav paralelnog virtualnog stroja ima dva dijela, aplikaciju koja se nalazi na pojedinačnim strojevima i biblioteku rutina sučelja. Softverska aplikacija naziva se paralelni virtualni stroj daemon, pvmd3 ili pmvd. Ovaj mali program stoji pasivno sve dok ne bude potreban za pokretanje paralelne aplikacije virtualnog stroja. Kada korisnik želi pokrenuti ovu vrstu programa, prvo mora pokrenuti paralelni virtualni stroj. To im omogućuje pristup softveru na bilo kojem drugom hostu.
Knjižnica rutina paralelnog virtualnog stroja sadrži kompletan popis svih kodova potrebnih za koordinaciju različitih zadataka koji se izvode na odvojenim hostovima. U ovu biblioteku uključene su standardne rutine za prosljeđivanje poruka, koordinaciju zadataka i sve promjene na samom virtualnom stroju.
Osnovni koncept koji stoji iza paralelnog virtualnog stroja je da svaka aplikacija ima nekoliko zadataka koji se mogu izvoditi neovisno. Ova vrsta logike je vrlo česta u složenim znanstvenim izračunima. Postoje dva modela koja se koriste u paralelnim virtualnim strojevima; funkcionalni i podatkovni paralelizmi.
Funkcionalni paralelizmi odvajaju aplikaciju na jasno definirane, neovisne zadatke. Ovi se zadaci izvode na zasebnim glavnim strojevima. Paralelni virtualni stroj koristi se za koordinaciju na temelju funkcija, kao što su ulaz, rješenje, izlaz i prikaz.
Paralelizam podataka ili višestruki podaci jednog programa (SPMD) je popularnija metoda. U ovoj metodi svi su zadaci jednaki, ali svaki domaćin rješava mali dio veće slagalice. Paralelno okruženje virtualnog stroja podržava obje metode, što je važno jer bi moglo biti najučinkovitije miješati ove dvije metode ovisno o potrebnim izračunima.
C, C++ i Fortran su računalni programski jezici koji se koriste u paralelnom virtualnom stroju. Ovi jezici su odabrani jer je većina aplikacija korištenih u ovom okruženju izgrađena na tim jezicima. Izvorni kod za softver paralelnog virtualnog stroja široko je dostupan na internetu i može mu se pristupiti putem ftp-a, www, xnetlib-a ili automatske e-pošte.