Difference between revisions of "Setting Up MPI on Aurora at Smith"

From dftwiki3
Jump to: navigation, search
(Created page with "--~~~~ ---- <br /> <br /> __TOC__ <br /> <br /> <bluebox> This page presents the few steps required to setup MPI on a student account on Aurora. </bluebox> <br /> =Setting up ...")
 
(Testing)
Line 75: Line 75:
 
  Hello world from process 0 of 2
 
  Hello world from process 0 of 2
 
  Hello world from process 1 of 2
 
  Hello world from process 1 of 2
 +
 +
* If you get this output, you're all set!
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
<br />
 +
[[Category:MPI]][[Category:CSC352]]

Revision as of 22:22, 4 March 2017

--D. Thiebaut (talk) 21:18, 4 March 2017 (EST)






This page presents the few steps required to setup MPI on a student account on Aurora.


Setting up Bash as Default and Adding MPI to Path


  • Login to your 352 account
  • Using emacs, add these three lines at the end of your .login file:
if (-x /bin/bash) then
   exec /bin/bash -l
endif 

  • Using emacs, add the following lines at the end of your .bash_profile file:
PATH=/Users/classes/352b/bin/mpi/bin:$PATH:$HOME/bin

  • When done, logout and log back in.
  • Verify that MPI is now in the path and ready to run:
mpicc -v

You should get a long output of information Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.1'  
...
 --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1) 


Testing


  • Using emacs, create this simple C program:


/* C Example */
#include <stdio.h>
#include <mpi.h>


int main (argc, argv)
     int argc;
     char *argv[];
{
  int rank, size;

  MPI_Init (&argc, &argv);      /* starts MPI */
  MPI_Comm_rank (MPI_COMM_WORLD, &rank);        /* get current process id */
  MPI_Comm_size (MPI_COMM_WORLD, &size);        /* get number of processes */
  printf( "Hello world from process %d of %d\n", rank, size );
  MPI_Finalize();
  return 0;
}


  • Compile and run the program for 2 Processors:
mpicc helloWorld.c -o hello
mpirun -np 2 ./hello

  • You should get this output:
Hello world from process 0 of 2
Hello world from process 1 of 2

  • If you get this output, you're all set!