3. MPIPython

Para poder ejecutar nuestras librerías de computación paralela necesitamos que nuestro interprete de Python sea capaz de ejecutar una aplicación bajo una plataforma de computación paralela bajo el interfaz de intercambio de mensajes MPI. Sin embargo, no es el caso , puesto que Python se caracteriza por ser un lenguaje de alto nivel que se ejecuta de modo mono-proceso en su distribución estándar. Por tanto, el interprete de Python incluido en la distribución estándar no se configura como una solución valida para poder ejecutar un mismo código en un sistema multiproceso.

Sin embargo, el interprete de comandos proporcionado en la distribución estándar de su página principal http://www.python.org/, se distribuye libremente bajo licencia de código abierto (GNU) y se encuentra disponible junto con una extensa librería estandar de programación para poder modificar esta distribución adaptando el interprete a nuestras necesidades.

Con el fin de obtener un interprete de Python que se pueda ejecutar en modo multiproceso, modificaremos el código fuente de la distribución estándar. De este modo necesitamos un nuevo interprete de Python que inicialice un entorno de computación paralela a través del paradigma de paso de mensajes. Ante esta necesidad tenemos dos soluciones posibles:

Se desea destacar que la utilización de cualquiera de las dos soluciones es totalmente válida y el paquete PyACTS ha sido probado con ambos interpretes y en múltiples plataformas (LINUX, IBM SP2,...). En el resto del presente capítulo describiremos el proceso de compilación y generación del ejecutable mpipython que será el interprete utilizado para ilustrar los ejemplos de cada una de las rutinas incluidas en el paquete PyACTS.

Por otro lado, queremos destacar que el código fuente del ejecutable mpipython no se adjunta en la actual distribución de PyACTS, sin embargo está accesible desde la página de la distribución antes descrita. Este intérprete se ha obtenido a partir de la distribución de Scientific Python de Konrad Hinsen . La colección de rutinas para Python de Konrad Hinsen proporciona un amplio conjunto de funciones y librerías muy útiles en la computación científica. El numero de rutinas y librerías es muy amplio y si se desea profundizar recomendamos la lectura de la referencia indicada. Sin embargo, para el problema que nos ocupa, sólo una parte del código nos resultaba útil en nuestro proposito de generar un interprete de Python multiproceso. De este modo, hemos indentificado las partes necesarias de esta librerías y las adjuntamos en la actual distribución.



Subsecciones
See Sobre este documento... para sugerencias en cambios.