Almacenar muchos datos dentro de Python

Quizás empiezo con una pequeña introducción para mi problema. Estoy escribiendo un programa de Python que se utilizará para el procesamiento posterior de diferentes simulaciones físicas. Cada simulación puede crear hasta 100 GB de salida. Trato diferentes informaciones (como posiciones, campos y densidades, ...) para diferentes pasos de tiempo. Me gustaría tener acceso a todos estos datos a la vez, lo que no es posible porque no tengo suficiente memoria en mi sistema. Normalmente uso el archivo de lectura y luego hago algunas operaciones y borro la memoria. Luego leo otros datos, hago algunas operaciones y borro la memoria.

Ahora mi problema. Si lo hago de esta manera, paso mucho tiempo leyendo datos más de una vez. Esto lleva mucho tiempo. Me gustaría leerlo solo una vez y almacenarlo para un fácil acceso. ¿Conoce un método para almacenar una gran cantidad de datos que sea realmente rápido o que no necesite mucho espacio?

Acabo de crear un método que es aproximadamente diez veces más rápido que una lectura abierta normal. Pero yo usocat (comando de Linux) para eso. Es un método realmente sucio y me gustaría sacarlo de mi script.

¿Es posible usar bases de datos para almacenar estos datos y obtener los datos más rápido que la lectura normal? (perdón por esta pregunta, pero no soy un informático y no tengo mucho conocimiento detrás de las bases de datos).

EDITAR

Mi código de gato se parece a esto, solo un ejemplo:

out = string.split(os.popen("cat "+base+"phs/phs01_00023_"+time).read())
# and if I want to have this data as arrays then I normally use and reshape (if I
# need it)
out = array(out)
out = reshape(out)

Normalmente, usaría un método numpynumpy.loadtxt que necesita el mismo tiempo que la lectura normal.

f = open('filename')
f.read()
...

Pienso queloadtxt solo use los métodos normales con algunas líneas de código adicionales.

Sé que hay algunas formas mejores de leer datos. Pero todo lo que encontré fue realmente lento. Ahora intentarémmap y espero tener un mejor rendimiento.

Respuestas a la pregunta(3)

Su respuesta a la pregunta