Co to jest równoległa maszyna wirtualna?

Równoległa maszyna wirtualna to aplikacja, która pozwala wielu niezależnym komputerom, rozproszonym geograficznie, łączyć się ze sobą w sieć i udostępniać moc obliczeniową systemu i pamięć jednej aplikacji.

Zmiana kosztów produkcji i popularność komputera domowego zaowocowała wzrostem przystępności bardzo wydajnych komputerów na rynku konsumenckim. Maszyny te nie są w pełni wykorzystywane przy standardowych aplikacjach oprogramowania, pozostawiając bogactwo mocy obliczeniowej wolnej od mocy obliczeniowej. Oprogramowanie równoległych maszyn wirtualnych umożliwia łączenie tych zasobów i udostępnianie ich w celu rozwiązywania dużych, złożonych problemów naukowych, medycznych lub przemysłowych.

Równoległa maszyna wirtualna została po raz pierwszy stworzona w 1989 roku w Oak Ridge National Labs przez Ala Geista. W oparciu o tamte prace projekt został rozszerzony na Uniwersytecie Tennessee w marcu 1991 roku i od tego czasu stale się rozwija.

System równoległych maszyn wirtualnych składa się z dwóch części: aplikacji, która znajduje się na poszczególnych maszynach oraz biblioteki procedur interfejsu. Aplikacja nazywa się demonem równoległej maszyny wirtualnej, pvmd3 lub pmvd. Ten mały program działa pasywnie, dopóki nie będzie potrzebny do uruchomienia równoległej aplikacji maszyny wirtualnej. Gdy użytkownik chce uruchomić tego typu program, musi najpierw uruchomić równoległą maszynę wirtualną. Dzięki temu mogą uzyskać dostęp do oprogramowania na dowolnym innym hoście.

Biblioteka procedur równoległej maszyny wirtualnej zawiera pełną listę wszystkich kodów niezbędnych do koordynowania różnych zadań wykonywanych na oddzielnych hostach. W tej bibliotece znajdują się standardowe procedury przekazywania wiadomości, koordynacji zadań i wszelkich zmian w samej maszynie wirtualnej.
Podstawową koncepcją równoległej maszyny wirtualnej jest to, że każda aplikacja ma kilka zadań, które mogą być uruchamiane niezależnie. Ten rodzaj logiki jest bardzo powszechny w skomplikowanych obliczeniach naukowych. W równoległych maszynach wirtualnych wykorzystywane są dwa modele; równoległości funkcjonalne i danych.
Paralelizmy funkcjonalne dzielą aplikację na jasno określone, niezależne zadania. Te zadania są wykonywane na oddzielnych komputerach hosta. Równoległa maszyna wirtualna jest używana do koordynowania w oparciu o funkcje, takie jak wejście, rozwiązanie, wyjście i wyświetlanie.
Bardziej popularną metodą jest równoległość danych lub wiele danych w jednym programie (SPMD). W tej metodzie wszystkie zadania są równe, ale każdy gospodarz rozwiązuje mały kawałek większej układanki. Równoległe środowisko maszyny wirtualnej obsługuje obie metody, co jest ważne, ponieważ połączenie tych dwóch metod może być najbardziej efektywne w zależności od wymaganych obliczeń.
C, C++ i Fortran to języki programowania komputerowego używane w równoległej maszynie wirtualnej. Te języki zostały wybrane, ponieważ większość aplikacji używanych w tym środowisku została zbudowana w tych językach. Kod źródłowy oprogramowania do równoległej maszyny wirtualnej jest powszechnie dostępny w Internecie i można uzyskać do niego dostęp przez ftp, www, xnetlib lub automatyczną pocztę e-mail.