install_mpi4py.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. set -e
  3. rm -r build-mpi || true
  4. mkdir build-mpi
  5. cd build-mpi
  6. mkdir mpich-build
  7. mkdir mpich
  8. base=`pwd`
  9. cd mpich-build
  10. wget http://www.mpich.org/static/downloads/3.1.2/mpich-3.1.2.tar.gz
  11. tar -xvzf mpich-3.1.2.tar.gz
  12. cd mpich-3.1.2
  13. ./configure --prefix=$base/mpich --with-device=ch3:sock --disable-fortran
  14. make -j5
  15. make install
  16. export PATH=$base/mpich/bin:$PATH
  17. cd ../..
  18. mkdir mpi4py
  19. cd mpi4py
  20. wget https://pypi.python.org/packages/source/m/mpi4py/mpi4py-1.3.1.tar.gz
  21. tar -xvzf mpi4py-1.3.1.tar.gz
  22. cd mpi4py-1.3.1
  23. # Force the correct MPI distribution
  24. rm mpi.cfg || true
  25. echo "[mpi]" >> mpi.cfg
  26. echo "" >> mpi.cfg
  27. echo "include_dirs = $base/mpich/include" >> mpi.cfg
  28. echo "libraries = mpi" >> mpi.cfg
  29. echo "library_dirs = $base/mpich/lib" >> mpi.cfg
  30. echo "runtime_library_dirs = $base/mpich/lib" >> mpi.cfg
  31. echo "mpicc = $base/mpich/bin/mpicc" >> mpi.cfg
  32. echo "mpicxx = $base/mpich/bin/mpicxx" >> mpi.cfg
  33. python setup.py build --mpi=mpi
  34. python setup.py install --user
  35. echo "=============================="
  36. echo "== All done =="
  37. echo "=============================="
  38. echo ""
  39. echo "Please add $base/mpich/bin to your PATH"
  40. echo "This is done by adding the line"
  41. echo " export PATH=$base/mpich/bin:\$PATH"
  42. echo "to a file parsed at system startup, e.g. ~/.bashrc"
  43. echo "For example for Ubuntu: http://askubuntu.com/questions/60218/how-to-add-a-directory-to-my-path"
  44. echo ""
  45. echo "Alternative:"
  46. echo "A symbolic link can be made from /usr/local/bin/mpirun to $base/mpich/bin/mpirun (probably requires root)"
  47. echo "This is done with the command:"
  48. echo " sudo ln -s $base/mpich/bin/mpirun /usr/local/bin/mpirun"