# mpi ! Instances of Ubuntu Linux with [MPICH](https://www.mpich.org) -- portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment. ## LabInstance mpi2 ![alt text](images/swarmlab-network.png "") > ### NOTE > > Vlabs are reset every night around 02:00! > >> If you would like to keep your work please refer to "publish". > > Vlabs dont have firewall restrictions BUT the machines are not exposed to the internet. > > You share all machines so please be cooperative and discrete. > ## Quickstart This is a quickstart guide of howto use this *LabInstance to deploy MPI programs* ### HowTo use it - cd /home/ubuntu > git clone https://git.swarmlab.io:3000/labs/examples-mpi2.git - cd examples-mpi2/examples > make all ### Default Configuration - Working Directory > /home/ubuntu - Default user > ubuntu #### Find lab workers The host file that contains addresses of connected workers can be created with: > > swarmlab-getworkers > /home/ubuntu/invhosts > #### connect to workers ```bash ssh ubuntu@[IP] Info: user has sudo privileges without a password ``` #### Compile > mpicc -o /home/ubuntu/mpi_hello_world examples/mpi_hello_world.c #### run the MPI hello world program > mpirun -n 10 -f /home/ubuntu/hosts /home/ubuntu/mpi_hello_world --- **NOTE:** copy hello world to all clients ```bash # scp hello wrold to all clients. sudo -u mpi for auto scp connect. see /home/mpi/.ssh while read -r line; do scp /home/ubuntu/mpi_hello_world ubuntu@$line:/home/ubuntu/mpi_hello_world done < /home/ubuntu/hosts ``` --- #### Publish Your Work ```bash mkdir /home/ubuntu/directory put your files and other directories into /home/ubuntu/directory swarmlab-publish /home/ubuntu/directory open URL in Browser ``` --- **MORE INFO** See examples directory ```bash cd examples make mpi_hello_world make example ex=squares ... ``` ---