Existuje mnoho způsobů, jak si zprovoznit prostředí MPI ve svém počítači. Pokud se rozhodnete jít cestou vlastní instalace, je možné postupovat podle oficiálních návodů OpenMPI: https://docs.open-mpi.org/en/v5.0.x/
Pro potřeby UPP byl ale připraven provisioning virtuálních strojů, který si můžete všichni snadno zprovoznit u sebe. Nejprve si stáhněte a nainstalujte následující softwarové balíčky:
VirtualBox je potřeba pro samotnou virtualizaci a správu virtuálních strojů. Vagrant je potřeba pro rychlý a efektivní provisioning virtuálních strojů - zkrátka aby stačilo definovat, co chceme za základní image (OS), co chceme doinstalovat za balíky, kolik takových virtuálních strojů chceme a Vagrant to za nás zařídí. Pochopitelně pokud bychom chtěli trochu pokročilejší provisioning, sahli bychom po nástrojích jako je Ansible, Puppet a podobných. Pro nás bude ale plně dostačovat tohle.
V portletu níže si stahněte soubor "MPI Provisioning", který obsahuje Vagrantfile a složku data s testovacím programem. Rozbalte jej do nějaké vhodné složky.
V příkazové řádce (terminál, Win+R a "cmd", ...) se navigujte do této složky a spusťte příkaz vagrant up
. V tento moment se bude Vagrant snažit vytvořit a nakonfigurovat 2 virtuální stroje, každý s vlastní instancí OpenMPI. Hostitelská jména jsou "hydra-1" a "hydra-2". Pokud chcete vyšší počet virtuálních strojů, stačí editovat soubor Vagrantfile a nastavit konstantu N_VMS
na požadovanou hodnotu. Pro naše potřeby budou 2 stroje (zatím) stačit.
Pokud se vše povede, bude možné se do jednotlivých virtuálních strojů dostat pomocí "vzdáleného lokálního" terminálu (SSH) příkazem: vagrant ssh hydra-1
Pro testování můžete spustit například tento příkaz: mpirun -n 2 -host hydra-1,hydra-2 hostname
Tento příkaz by měl vypsat jen dva řádky:
hydra-1
hydra-2
Provede totiž spuštění příkazu hostname
na každém ze strojů.
Vagrant je nakonfigurován, aby předal do virtuálního stroje obsah složky "data", která je v archivu taktéž obsažena. Složka je mapována do cesty /opt/data
, a to na všech virtuálních strojích.
Nyní můžete přejít do této složky, vyzkoušet si překlad a spuštění jednoduchého MPI programu:
cd /opt/data
./build.sh
./run.sh
Což by mělo vypsat:
Hello from server hydra-1, rank 0 out of 2
Hello from server hydra-2, rank 1 out of 2
Pro další úpravy se můžete inspirovat v těchto souborech, popř. samozřejmě v kódech cvičení.