[Python-es] Almacenado de datos

Jaime Perea jaime.perea en gmail.com
Vie Mar 2 11:01:10 CET 2012


On Jueves, 1 de marzo de 2012 22:12:03 Daπid escribió:
> He estado analizando las respuestas y repensando algunas cuestiones de
> base. En primer lugar, reespecificando el problema:
> 
> -Por cada evento tengo que registrar unas tres o cuatro variables
> independientes (depende del tipo que sea), los parámetros que yo fijo
> al hacer la simulación: n, p, z.
> 
> -En cada caso, guardaré cinco medidas de cada evento, los resultados
> de mi simulación: C, L, S, M, Mbarra.
> 
> El total es la ristra (n, p, z, C, L, S, M, Mb)
> 
> Mi objetivo es recuperar de la forma más sencilla posible, todos los
> valores de M para cada n fijado z (por ejemplo).
> 
> Hacer esto en Numpy se me va a volver molesto porque el número de
> parámetros es más elevado.
> 
> 
> Además, he conseguido acceso a un grid de ordenadores en la
> universidad, lo que supone dos cambios:
> 
> - El número de datos que voy a manejar va a ser mucho mayor. Quizá los
> ficheros de texto se vayan quedando fuera.
> - Dado que mi problema es embarazosamente paralelizable, voy a tener
> cuatro programas corriendo en el mismo ordenador, y una decena de
> ordenadores en total. Una de dos, o mi base de datos admite varios
> accesos de escritura a la vez (pyTables dice que no muy bien). La
> pregunta ahora es: ¿pueden ser fusionadas varias bases de datos
> fácilmente? Esto es algo que no he sabido encontrar en la
> documentación de ninguna de las opciones.
> 
> 
> Nótese que del tema soy un absoluto desconocedor, así que no sé si lo
> que estoy pidiendo es demasiado o lo mínimo para una BD. Tampoco sé
> cómo se llaman las cosas que quiero hacer, así que me es difícil
> encontrar las palabras clave por las que buscar.
> 
> 
> Muchas gracias a todos.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/

Hola, la pregunta es si vas a utilizar todos esos ordenadores en paralelo. Si 
ese es el caso, una opción es distribuir el trabajo de tal manera que uno de 
los procesos sea el que se encargue de la escritura y los demás se encarguen 
del cálculo y sólo le envíen tu "ristra" al proceso que se encarga de lectura 
y escritura.

Si es dentro del mismo ordenador el módulo multiprocessing es muy cómodo. Si 
vas a usar varios, puedes arrancar con sockets a pelo o utilizar alguna de las 
implementaciones mpi para python (la de scipy está bien). Si quieres un 
espacio global de arrays y cuentas con mpi, los global arrays también son muy 
majos 

Otra alternativa, yo no entiendo del tema, pero según entiendo, puedes acceder 
desde la red a una  base de de datos en, por ejemplo, mysql y sería ésta la 
que tiene que bregar con el flujo de escritura y lectura. Esto está muy bien 
implementado en python. Tus procesos sólo se tendrían que  hablarle al 
servidor mysql o similar.

Saludos

--
Jaime Perea 


Más información sobre la lista de distribución Python-es