Dzisiaj jest 11 stycznia 2025 r.
Chcę dodać własny artykuł

Parallel Virtual Machine

Parallel Virtual Machine (PVM)

Parallel Virtual Machine (PVM) to zestaw narzędzi umożliwiających tworzenie oprogramowania dla komputerów połączonych w sieci równolegle. Jego głównym celem jest integracja komputerów o różnych konfiguracjach sprzętowych w jeden zespół działający równolegle.

Historia PVM

PVM został opracowany na Uniwersytecie Tennessee oraz w Oak Ridge National Laboratory, Emory University i Carnegie Mellon University. Pierwsza wersja powstała w 1989 roku, a jej druga wersja została udostępniona w marcu 1991. Obecnie PVM jest wciąż używany w programowaniu równoległym.

Opis działania PVM

PVM działa jako narzędzie do zarządzania i wymiany informacji między procesami uruchomionymi na różnych maszynach. Umożliwia „połączenie” wielu komputerów w jeden system, co odbywa się poprzez dołączanie hostów z zainstalowanym PVM. Po skonfigurowaniu, PVM pełni rolę pomostu komunikacyjnego między zarejestrowanymi procesami.

Przesyłanie informacji pomiędzy programami

PVM obsługuje dwa rodzaje przesyłania informacji: blokujące i nieblokujące. W przesyłaniu blokującym nadawca i odbiorca czekają na zakończenie operacji wysyłania/odbierania, natomiast w przesyłaniu nieblokującym procesy działają równolegle, co może wymagać synchronizacji. Każdy zarejestrowany proces w PVM ma przypisane bufory do wysyłania i odbierania informacji.

Procedura przesyłania informacji

  • Wysłanie informacji przez nadawcę:
    • Inicjalizacja bufora wysyłania
    • Spakowanie danych do bufora
    • Wysłanie wiadomości
  • Odebranie informacji przez odbiorcę:
    • Odebranie wiadomości
    • Rozpakowanie informacji z bufora

Przykładowe procedury przesyłania informacji

W PVM dostępne są różne funkcje, takie jak:

  • pvm_send: do wysyłania wiadomości do konkretnego procesu.
  • pvm_recv: do odbierania wiadomości z określonego procesu.
  • pvm_mcast: do wysyłania wiadomości do grupy procesów.
  • pvm_bcast: do rozsyłania komunikatu do wszystkich procesów w grupie.
  • pvm_reduce: do wykonania operacji zbiorczych na danych procesów grupy.

Konfiguracja i kompilacja PVM

Aby korzystać z PVM, należy ustawić zmienne środowiskowe:

export PVM_ROOT=/usr/share/pvm3
export PVM_ARCH=`$PVM_ROOT/lib/pvmgetarch`

Kompilacja kodu źródłowego odbywa się za pomocą polecenia:

gcc -o master master.c -I$PVM_ROOT/include -L$PVM_ROOT/lib/$PVM_ARCH -lpvm3 -lgpvm3

Przykłady programów korzystających z PVM

Przykładowe programy, takie jak „Hello World” oraz obliczanie liczby PI metodą Monte Carlo, ilustrują wykorzystanie PVM w praktycznych zastosowaniach obliczeniowych.

PVM, mimo swojej użyteczności, staje się coraz mniej popularny, a wsparcie dla niego jest ograniczone, co utrudnia rozwiązywanie problemów związanych z jego działaniem.