Vad är en parallell virtuell maskin?

En parallell virtuell maskin är en mjukvaruapplikation som tillåter flera oberoende datorer, utspridda geografiskt att ansluta till varandra som ett nätverk och låna ut sin systemprocessorkraft och minne till en applikation.

Förskjutningen i tillverkningskostnader och hemdatorns popularitet har resulterat i en ökning av prisvärdheten för mycket kraftfulla datorer på konsumentmarknaden. Dessa maskiner är underutnyttjade med sina standardprogram, vilket lämnar en mängd processorkraft fri. Parallell virtuell maskinprogramvara gör att dessa resurser kan slås samman och nås för att lösa stora, komplexa vetenskapliga, medicinska eller industriella problem.

Den parallella virtuella maskinen skapades först 1989 på Oak Ridge National Labs av Al Geist. Baserat på arbetet där utökades projektet vid University of Tennessee i mars 1991 och har växt stadigt sedan dess.

Ett parallellt virtuellt maskinsystem har två delar, applikationen som sitter på de enskilda maskinerna och biblioteket med gränssnittsrutiner. Programvaran kallas för den parallella virtuella maskindemonen, pvmd3 eller pmvd. Detta lilla program sitter passivt tills det krävs för att köra en parallell virtuell maskinapplikation. När användaren vill köra den här typen av program måste de först starta den parallella virtuella maskinen. Detta ger dem tillgång till programvaran på vilken annan värd som helst.

Rutinbiblioteket för parallella virtuella maskiner innehåller en komplett lista över alla koder som är nödvändiga för att koordinera olika uppgifter som körs på separata värdar. Inkluderat i detta bibliotek är standardrutiner för meddelandeöverföring, koordinering av uppgifter och eventuella ändringar av själva den virtuella maskinen.
Kärnkonceptet bakom den parallella virtuella maskinen är att varje applikation har flera uppgifter som kan köras oberoende av varandra. Denna typ av logik är mycket vanlig i komplexa vetenskapliga beräkningar. Det finns två modeller som används i parallella virtuella maskiner; funktionella och dataparalleller.
Funktionella paralleller delar upp en applikation i tydligt definierade, oberoende uppgifter. Dessa uppgifter utförs på separata värddatorer. Den parallella virtuella maskinen används för att koordinera baserat på funktionerna, såsom input, lösning, output och display.
Dataparallellism eller single program multiple data (SPMD) är den mer populära metoden. I den här metoden är alla uppgifter lika, men varje värd löser en liten bit av det större pusslet. En parallell virtuell maskinmiljö stöder båda metoderna, vilket är viktigt eftersom det kan vara mest effektivt att blanda dessa två metoder beroende på vilka beräkningar som krävs.
C, C++ och Fortran är datorprogrammeringsspråken som används i den parallella virtuella maskinen. Dessa språk valdes ut eftersom de flesta av de applikationer som används i den här miljön byggdes på dessa språk. Källkoden för parallell virtuell maskinmjukvara är allmänt tillgänglig på internet och kan nås via ftp, www, xnetlib eller ett automatiskt e-postmeddelande.