/ / OpenMPI określa pliki wykonywalne dla określonych węzłów - mpi, distributed-computing, openmpi

OpenMPI określa pliki wykonywalne dla określonych węzłów - mpi, distributed-computing, openmpi

Posiadam heterogeniczny klaster obliczeniowychciałby wykonywać równoległe zadania obliczeniowe przy użyciu OpenMPI. Ponieważ nie wszystkie węzły w klastrze mogą uruchamiać ten sam plik wykonywalny (z racji tego, że są heterogeniczne), chciałbym, aby niektóre węzły kompilowały własną wersję programu i miały otwarty MPI wywoływać ten plik wykonywalny na tych węzłach. Moje pierwsze pytanie dotyczy tego, czy OpenMPI umożliwia tego typu obliczenia w heterogenicznych architekturach.

Jeśli tak, moje drugie pytanie brzmi: jak określić, które pliki wykonywalne mają być uruchamiane na których węzłach. Na przykład powiedzmy node0, node1, i node2 może uruchomić plik wykonywalny prog1 i node3, node4, i node5 może uruchomić plik wykonywalny prog2, gdzie prog1 i prog2 są tym samym programem, ale skompilowane dla różnych architektur korzystających z mpicc lub mpic++ kompilatory opakowań.

Gdybym chciał uruchomić ten program równolegle we wszystkich węzłach, zrobiłbym:

mpirun -n 3 --hosts node0,node1,node2 prog1 : -n 3 --hosts node3,node4,node5 prog2

Jeśli nie, to co zrobiłbym, aby osiągnąć ten efekt? To post wskazuje, że heterogeniczna obsługa klastrów jest obsługiwana przez OpenMPI, ale muszę zbudować OpenMPI z --enable-heterogeneous flaga. Nie jestem pewien, jak to zrobić, ponieważ w moim klastrze działa ArchLinux, a ja zainstalowałem OpenMPI pacman.

Odpowiedzi:

1 dla odpowiedzi № 1

Uwaga jest literówka (--host nie wymaga zakończenia s), więc twoje polecenie powinno być

mpirun -n 3 --host node0,node1,node2 prog1 : -n 3 --host node3,node4,node5 prog2

--enable-heterogeneous jest potrzebny, więc Open MPI może działać heterogeniczniesystemy (na przykład między procesorami Intel x86_64 (little endian) i sparcv9 (big endian)). Jeśli OpenMPI (pochodzący z ArchLinux) nie został skonfigurowany z tą flagą, powinieneś odbudować ten pakiet. inną opcją jest przebudowanie Open MPI i zainstalowanie go w alternatywnym katalogu.

Last but not least, heterogeniczne wsparcie jest (bardzo) lekko testowane i gorąco zachęcam do korzystania z najnowszej serii Open MPI 3.0.