Existe una gran variedad de compiladores de MPI, algunos disponibles en Linux Debian
son instalados mediante:
# aptitude install lam-runtime xmpi libmpich-dev mpich mpi-default-dev
mpi-default-bin openmpi-bin valgrind-mpi
Para compilar y ejecutar usar alguna de estas opciones:
mpic++ | mpic++.openmpi | mpiexec.mpich | mpif90.openmpi | mpirun.lam |
mpicc | mpicxx | mpiexec.openmpi | mpifort | mpirun.mpich |
mpiCC | mpicxx.mpich | mpif77 | mpifort.mpich | mpirun.openmpi |
mpicc.mpich | mpicxx.openmpi | mpif77.mpich | mpifort.openmpi | mpitask |
mpicc.openmpi | mpiexec | mpif77.openmpi | mpimsg | mpivars |
mpiCC.openmpi | mpiexec.hydra | mpif90 | mpipython | mpichversion |
mpipython | mpiexec.lam | mpif90.mpich | mpirun |
Por ejemplo para compilar ejemp.cpp en mpic++ solicitando que el ejecutable tenga el nombre ejemp, usar:
$ mpic++ ejemp.cpp -o ejemp
En este caso no se uso ninguna opción de optimización en tiempo de compilación,
se puede hacer uso de ellas (-O1, -O2 o -O3), mediante:
$ mpic++ -O3 ejemp.cpp -o ejemp
para ejecutar el programa ya compilado:
Por ejemplo para compilar ejemp.c en mpicc solicitando que el ejecutable tenga el nombre ejemp, usar:
$ mpicc ejemp.cpp -o ejemp
En este caso no se uso ninguna opción de optimización en tiempo de compilación,
se puede hacer uso de ellas (-O1, -O2 o -O3), mediante:
$ mpicc -O3 ejemp.c -o ejemp
para ejecutar el programa ya compilado:
En el caso de usar mpiCC.mpic y lamboot, entonces es necesario compilar usando:
$ mpiCC.mpich -O2 ejemp.cpp -o ejemp -lm
Iniciar ambiente de ejecución paralelo
Correr usando 8 procesadores por ejemplo:
$ mpirun.mpich -np 8 ejemp
Correr usando 4 procesadores según lista machines.lolb por ejemplo:
$ mpirun.mpich -machinefile machines.lolb -np 5 ejemp
Terminar ambiente de ejecución paralelo:
Nota:
Para que en la ejecución de MPI no pida la clave de usuario:
En cada pregunta responder con ENTER, para después copiar usando:
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
Ojo: Si continua pidiendo clave es que también esta instalado rsh o lsh