Теперь немного о том, как запускать ББ с использованием MPICH2.
После загрузки вот такого архива:
http://www.mpich.org/static/downloads/3 ... 1.4.tar.gzЕго необходимо скомпилировать на двух машинах, на сервере и на Ubuntu в режиме 32 бита.
Папки с файлами поместить на сервер. У меня
mpich-3.1.4 — собрано в Red Hat.
mpich32 — собрано в Ubuntu 64bit так:
Код:
export CFLAGS=-m32
export CPPFLAGS=-m32
export CXXFLAGS=-m32
export LDFLAGS=-m32
export MPICHLIB_CFLAGS=-m32
export MPICHLIB_CPPFLAGS=-m32
export MPICHLIB_CXXFLAGS=-m32
export MPICHLIB_LDFLAGS=-m32
./configure --host=x86-linux --build=x86-linux --enable-fast --disable-fortran —prefix=/usr/local/mpich32
make
make install
тогда на сервере я могу запускать ББ следующим образом:
Код:
#!/bin/sh
rn=`readlink -f "${0}"`
pd=`dirname "${rn}"`
sd=`readlink -f .`
PATH=/home/denisov/mpich-3.1.4/bin:$PATH; export PATH
LD_LIBRARY_PATH=/home/denisov/mpich32/lib:/usr/local/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
env \
BB_PRIMARY_DIR="${pd}" \
BB_SECONDARY_DIR="${sd}" \
BB_PACKED_NAME="${lib}" \
mpiexec -n 4 /home/denisov/lib32/ld-linux.so.2 --library-path /home/denisov/lib32:$LD_LIBRARY_PATH ./blackbox
Вот так выглядит вывод тестовой программки:
Код:
[denisov@headnode bb]$ ./mpi
Process 0 / 4
Process 1 / 4
Process 2 / 4
Process 3 / 4
Process 1 sum is 123497.7153748374
Process 2 sum is 123497.7153748374
Process 3 sum is 123497.7153748374
Process 0 sum is 123497.7153748374
Total: 493990.8614993497