miércoles, 4 de abril de 2012

Pypar

Instalarlo es sencillo necesitamos algunos paquetes

# Python paquetes
python2.5
python-dev
python-numpy
python-numpy-dev
python-imaging (PIL)


# MPI
lam4c2
lam4-dev
lam-runtime

#Descargar
http://code.google.com/p/pypar/downloads/list




Para verificar que todo se instalo correctamente tecleamos

mpirun -np 2 testpypar.py

Empezar

Importamos la librería en python:


Ahora nosotros podemos escribir algunas funciones propias de esa libreria por ejemplo
>>pypar.size()
Con eso podemos obtener el numero de procesos en paralelo, cuando usamos pypar en la linea de comandos esto debe de ser 1:


Los procesadores estan numerados desde el 0 hasta pypar.size() - 1, entonces con el comando pypar.rank(), podemos obtener el numero de procesador actual que esta corriendo:


Y para obtener el nombre del procesador del nodo actual se usa:
>>pypar.get_processor_name()
Y vemos que obtenemos el nombre de mi computadora:



Primer programa




La manera de correrlo es:

mpirun -np 4 demo.py

con esto le dices que se ejecutara en 4 procesadores y se mande una copia del programa a cada uno de ellos.


Este programa demo.py manda un mensaje de el procesador 0 y lo envía alrededor de un anillo

Cada procesador añadiendo un poco a ella hasta que llegue de vuelta en procesador 0.

Es escencial en los programas paralelos averiguar qué procesador esta ejecutando que cosa, esto se hace mediante la llamada:

myid pypar.rank = ()

El número total de procesadores se obtiene a partir

proc = pypar.size ()

Entonces uno puede tener diferentes códigos para diferentes procesadores de ramificación como en

si == 0 myid

Para enviar una estructura general de Python a un procesador de p, se escribe pypar.send (A, p) y para recibir algo de procesador de q, se escribe X = pypar.receive (q)

Esta es la base para la programación en paralelo usando Pypar, esperemos cuando este listo el cluster poder implementar esto en varios procesadores.


Referencias

Pypar

1 comentario:

  1. Muy bien. Son 8 de lab; corro los puntos extra para semanas que siguen.

    ResponderEliminar