49 lines
1.6 KiB
Bash
Executable file
49 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
rm -r build-mpi || true
|
|
mkdir build-mpi
|
|
cd build-mpi
|
|
mkdir mpich-build
|
|
mkdir mpich
|
|
base=`pwd`
|
|
cd mpich-build
|
|
wget http://www.mpich.org/static/downloads/3.1.2/mpich-3.1.2.tar.gz
|
|
tar -xvzf mpich-3.1.2.tar.gz
|
|
cd mpich-3.1.2
|
|
./configure --prefix=$base/mpich --with-device=ch3:sock --disable-fortran
|
|
make -j5
|
|
make install
|
|
export PATH=$base/mpich/bin:$PATH
|
|
cd ../..
|
|
mkdir mpi4py
|
|
cd mpi4py
|
|
wget https://pypi.python.org/packages/source/m/mpi4py/mpi4py-1.3.1.tar.gz
|
|
tar -xvzf mpi4py-1.3.1.tar.gz
|
|
cd mpi4py-1.3.1
|
|
# Force the correct MPI distribution
|
|
rm mpi.cfg || true
|
|
echo "[mpi]" >> mpi.cfg
|
|
echo "" >> mpi.cfg
|
|
echo "include_dirs = $base/mpich/include" >> mpi.cfg
|
|
echo "libraries = mpi" >> mpi.cfg
|
|
echo "library_dirs = $base/mpich/lib" >> mpi.cfg
|
|
echo "runtime_library_dirs = $base/mpich/lib" >> mpi.cfg
|
|
echo "mpicc = $base/mpich/bin/mpicc" >> mpi.cfg
|
|
echo "mpicxx = $base/mpich/bin/mpicxx" >> mpi.cfg
|
|
python setup.py build --mpi=mpi
|
|
python setup.py install --user
|
|
|
|
echo "=============================="
|
|
echo "== All done =="
|
|
echo "=============================="
|
|
echo ""
|
|
echo "Please add $base/mpich/bin to your PATH"
|
|
echo "This is done by adding the line"
|
|
echo " export PATH=$base/mpich/bin:\$PATH"
|
|
echo "to a file parsed at system startup, e.g. ~/.bashrc"
|
|
echo "For example for Ubuntu: http://askubuntu.com/questions/60218/how-to-add-a-directory-to-my-path"
|
|
echo ""
|
|
echo "Alternative:"
|
|
echo "A symbolic link can be made from /usr/local/bin/mpirun to $base/mpich/bin/mpirun (probably requires root)"
|
|
echo "This is done with the command:"
|
|
echo " sudo ln -s $base/mpich/bin/mpirun /usr/local/bin/mpirun"
|