Categories
- deporte (1)
- entretenimiento (11)
- física (23)
- google SoC (19)
- informática (58)
- desarrollo web (4)
- java (2)
- motos (4)
- opinión (4)
- trabajo (9)
- ull (4)
- ulpgc (38)
- uncategorized (4)
Latest News
- Sistemas de control de versiones: Subversion
- Movistar y timofónica. Odisea 2008: Liberar el móvil.
- Poblaciones del Carbono bajo campo de radiación
- Tasas de absorción y emisión estimulada
- Intel Fortran Compiler
- Espectro del carbono. El de verdad
- Retrasos becas FPU
- Espectro del carbono
- Frameworks PHP. Por fin una alternativa.
- Primer triatlón. Experiencias.
Monthly archives
- November 2008
- June 2008
- May 2008
- April 2008
- February 2008
- November 2007
- October 2007
- September 2007
- March 2007
- February 2007
- November 2006
- October 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
Links
Blogroll
Universidad
Search
MPI en Windows/Cygwin
David Suárez Perera@Movil /tmp/mpich2-1.0.3
$ ./configure
…
checking for Python
…
Python unavailable.
Configure will abort.
…Empecemos por el principio.
MPI para quien no lo sepa es un estandar para la paralelización de programas mediante el paso de mensajes (MPI = Message Passing-Interface). El hecho de que sea estandar permite, en principio, recompilar en otra arquitectura y que mantenga la capacidad de ejecutarse en múltiples procesadores. Hay varias implementaciones libres de MPI entre las que destacan LAM y MPICH, est última es de la que hablaré en este artículo.
Cygwin es un conjunto de librerías que permiten la ejecución de programas Unix/Linux en un PC equipado con Windows. Es muy útil para desarrollar código portable y utilizar herramientas de desarrollo GNU que normalmente solo estan disponibles para Linux en Windows.
El problema es utilizar MPICH y Cygwin. No hay mucha documentación al respecto en Internet, o al menos yo no la he encontrado. He optado por ir a http://www-unix.mcs.anl.gov/mpi/mpich2/ y descargarme las todas las fuentes “All (source)”.
Cygwin, que yo ya lo tenía instalado, se puede bajar de http://www.cygwin.com y el compilador de Fortran95 (’gfc’) para Cygwin de http://gcc.gnu.org/wiki/GFortranBinariesCygwin. Para que el Cygwin nos sea útil en nuestro propósito hay que instalar muchos paquetes entre los que cito: de la categoría desarrollo (devel) casi todos los compiladores que vayamos a usar, el make y las binutils, y de python y perl ambos lenguajes.
Instalas el GFortran (que basicamente es descomprimir en un directorio del árbol del Cygwin y hacer un enlace en /usr/bin) y descomprimes el MPICH en /tmp/mpich o donde te parezca.
Te metes y el clásico “./configure”…
Atención: Esto lo estoy haciendo mientras escribo sin saber que pasará al final. No puedo garantizar que el resultado sea satisfactorio. Si buscas información precisa y útil quizá no la encuentres aquí. Sin embargo, en Internet no hay, asi que es tu única oportunidad.
Ahora no me da el error de que falta el python, da un error de que faltan no se que librerias de las X, pero genera el makefile y podemos continuar el proceso…
“make” y a esperar un ratito a ver que pasa.
Mientras compila hablaré de que hay una versión del MPICH para Windows, con las dlls y listo para funcionar bajo los compiladores de Fortran (Visual Fortran entre otros, sea de la marca que sea ;-)). Ya la he usado y si que funciona, pero lo que quiero es poder hacer pruebas en el Cygwin, ya que el código en el que estoy trabajando funcionará en una máquina Linux y tendré que realizar la compilación con el ‘gfc’.
Para amenizar la compilación, hablaré del codigo que tengo que probar. Es un código que simula un plasma de fusión por confinamiento inercial, en dicho plasma se quieren calcular las abundancias iónicas del elemento que compone el plasma.
Podría decir que hay cosas más interesantes en que ocupar la tarde, pero ya las he hecho todas, y toca trabajar un rato en el proyecto, ¿no creen?
El “make” va compilando bien, pero tarda lo suyo. Tengo un portatil Centrino de 1.5 Ghz y 512 Mb de ocupadísima RAM.
Acabó y no hay errores. Fascinante. “make install”. Supuestamente debería funcionar. Hay un programa en Fortran95 que utiliza MPI en el directorio de ejemplos (he instalado el MPICH, se compilar programas para que usen el paso de mensajes, pero no se programar utilizando MPICH, asi que no me preguntes ;-)) y voy a probarlo. Me muevo a donde esta el dichoso programita, averigo donde se instalaron los ficheros de cabecera y las librerias del MPICH y… ¡a compilar!
$gfc -I/usr/local/include/ -L/usr/local/lib/ mpi1.f -l fmpich2
/cygdrive/c/David/CONFIG~1/Temp/cckwAu1U.o:mpi1.f:(.text+0×10): referencia a `_mpi_init_’ sin definir /cygdrive/c/David/CONFIG~1/Temp/cckwAu1U.o:mpi1.f:(.text+0×2a): referencia a `_mpi_comm_rank_’ sin definir /cygdrive/c/David/CONFIG~1/Temp/cckwAu1U.o:mpi1.f:(.text+0×44): referencia a `_mpi_comm_size_’ sin definir /cygdrive/c/David/CONFIG~1/Temp/cckwAu1U.o:mpi1.f:(.text+0×1b2): referencia a `_mpi_bcast_’ sin definir /cygdrive/c/David/CONFIG~1/Temp/cckwAu1U.o:mpi1.f:(.text+0×27b): referencia a `_mpi_reduce_’ sin definir /cygdrive/c/David/CONFIG~1/Temp/cckwAu1U.o:mpi1.f:(.text+0×308): referencia a `_mpi_finalize_’ sin definir collect2: ld returned 1 exit status
Bueno, ha quedado claro que algo falla. Parece que no encuentra unas funciones: todas las pertenecientes a MPI. Y sin embargo esta instalado… sospechoso. Me meto en el directorio de ejemplos, y dentro de este del directorio f77 (../mpich/examples/f77) y compruebo que el make compila correctamente el ejemplo del directorio. Lo hace y el ejemplo funciona. Fantástico, soy yo el que la está cagando al compilar.
Miro el Makefile y … (ahora estoy mirando el makefile, por favor, espera).
Vaya, el proceso de link lo hace una utilidad del MPICH llamada mpif77, curioso. ¿Habrá una utilidad fmpif90? Pues no, será que hay que ponerlo en el ‘configure’, asi que no me ha servido de mucho, porque mi programa original estaba en Fortran90.
Parece que tenía que haber puesto:
./configure –enable-f90 –enable-sharedlibs=cygwin-gcc
En lugar de solo configure. Vamos a seguir intentándolo… Sí, aun no me he frustrado. Parece ser que si tu compilador GFortran no se llama ‘f90′ no realiza bien el configure. Mal asunto: se hace un sym link y listo.ermina el configure de nuevo, y otra vez el make (realmente no creo que haya mucho que compilar). Una vez ha terminado vamos con el experimento…
…
Risas
Sigue sin funcionar la compilación de los programas en Fortran90. Sin embargo… ¡veo que en Fortran77 funciona perfectamente!. Me pongo a rebuscar en los README y miren lo que descubro:
–enable-f90 - Build the Fortran 90 bindings. This is not on by
default, since these have not yet been tested.
Ok, comprendo, la opción existe pero nadie ha comprobado que funciona. En fin, esperaré unos días a ver si se actualiza el MPICH o si alguien da con alguna solución. Hasta aquí he llegado.
Conclusión: He logrado un 50% de éxito. Funciona el MPICH y el Cygwin pero sólo par Fortran 77 y no para Fortran90 que era mi objetivo principal.
Posted by dsuarez
Posted in: informática, pfc
1 Comment »
March 2006
Carnet A de motocicleta
La semana pasada me presenté al teórico del carnet A y lo aprobé. Ya queda menos.
Me apunté en la autoescuela la semana pasada a toda prisa (pasé un mal día yendo y viniendo a hacerme el certificado médico, actualizarme el carnet de identidad, sacarme fotos, fotocopias de dni y carnet de conducir) porque a partir del pasado 1 de marzo cambiaban el sistema de evaluación y los temarios y claro, como el material tarda un tiempo en llegar a las autoescuelas y los examinadores en prepararse, pues tendría que esperar como un mes y medio para poder examinarme si me apuntaba más tarde.
Me costó 35 € el certificado médico (un individuo que me cobra desproporcionadamente, me pregunta si tengo problemas psiquiátricos y al que se supone que le tengo que decir la verdad. Le miento como me da la gana muhahahah muhahahaah); 50 € la matrícula y eso que estan de rebajas, 76 € por el derecho a examinarme y 4.5 € por las fotografías. Me ahorré 10 eurillos bajándome el libro de teoría del emule y pasando de comprarlo. ¡Ni siquiera iba a poder revenderlo si antesdeayer me cambiaban los temarios!
Fui al lugar de examen un poco perdido, hacia un tiempo de perros y las cuestas de Santa Cruz parecían barrancos de toda el agua que bajaba por ellas. El jefe me enseñó donde estaba el lugar el viernes anterior mirandolo en Google Maps, a quien no se haya metido le recomiendo que lo haga, se ve todo con mucho detalle. Juraría que le vi la cocorota al examinador ;-).
Por otro lado, se preguntarán porqué soy el propietario de un portal de motociclismo si no tengo carnet. No lo voy a aclarar ni aquí, ni ahora.
Posted by dsuarez
Posted in: entretenimiento, motos
1 Comment »
March 2006