PVM
Konfiguracja PVM
-
Dodanie w pliku ~/.rhosts nazw komputerów w celu umożliwienia zdalnego logowania bez podawania hasła. Postać pliku:
nazwa_hosta nazwa_użytkownika inna_nazwa_hosta nazwa_użytkownika ...
Nazwa użytkownika może być pominięta, jeżeli na komputerze zdalnym i lokalnym ta nazwa jest taka sama -
Przetestowanie działania rsh:
rsh nazwa_zdalnego_hosta
W rezultacie wykonania polecenia powinniśmy zalogować się na wskazany komputer bez podawania hasła -
Ustawienie zmiennych środowiskowych: W pliku ~/.bashrc dopisujemy:
export PVM_ROOT=/usr/lib/pvm3 export PVM_ARCH=`$PVM_ROOT/lib/pvmgetarch` export PVM_HOME=$HOME/pvm3/bin/$PVM_ARCH/
-
Stworzenie katalogu na pliki wykonywalne:
mkdir -p $PVM_HOME
-
Przygotowanie pliku konfiguracyjnego dla PVM. Przykładowa postać pliku:
lab-sec-1 lab-sec-2 lab-sec-3
- Pobranie i rozpakowanie pliku example.tar.gz
- Zbudowanie programu master i salve poleceniem make
-
Uruchomienie pvm:
pvm nazwa_pliku_konfiguracyjnego
- Odczytanie informacji o dostępnych hostach poleceniem conf
-
Dodanie nowego hosta poleceniem:
add nazwa_hosta
-
Usunięcie jednego z hostów poleceniem:
delete nazwa_hosta
-
Uruchomienie przykładowego programu:
spawn -> master
Zadanie
-
Napisać aplikację równlogłą do wyznaczania przybliżonej wartości liczby π metodą Monte Carlo. Realizację można oprzeć na poniżej wersji sekewncyjnej:
#include < stdio.h > #include < stdlib.h > main(){ unsigned long n = 0, N = 0, i; double x, y; for( i = 0; i < 100000; i++ ){ x = drand48(); y = drand48(); N++; if ( x*x + y*y <= 1 ) n++; } // for printf( "%lf\n", 4.0*n/N ); }
- Zrealizować aplikację zgodnie ze schematem master-slave: master uruchamia procesy slave, które odsyłają do niego wyniki obliczeń. pi.tar.gz
- Zastosować mechanizm dynamicznych grup procesów oraz funkcję pvm_reduce. reduce.tar.gz
- Zmodyfikować aplikację w taki sposób, żeby obliczenia rozpoczynały się dopiero po uzyskaniu gotowości do działania przez co najmniej 4 procesy typu slave. barrier.tar.gz