Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2007
JF Sebastian JF Sebastian is offline
Miembro
 
Registrado: oct 2006
Posts: 108
Poder: 18
JF Sebastian Va por buen camino
Memoria virtual para grandes matrices

Hola:
Estoy desarrollando un programa de calculo matricial y para grandes matrices (4GB) necesitaria un gestinador eficiente de memoria que lea del fichero conteniendo la matriz los datos para una resolucion por el metodo de Gauss (sistemas de ecuaciones lineales) o Jacobi Generalizado (Autovalores). Deberia ser transparente al metodo de resolucion.

Hasta ahora leo en buffers de 1Mb bloques del fichero y lo traslado a memoria principal para leer en memoria varios elementos de la matriz. El problema es que es muy lento pues el programa tiene que acceder a elementos muy diversos de la matriz. Algunos estan bastante tiempo en memoria (elemento pivote) pero otros solo estan temporalmente. A pesar de que uso dos bloques de memoria independientes ocurre que muchas veces estos bloques repiten alternativamente dos posiciones iguales de memoria por ej. 1-2-1-2-1-2.... consumiendo mucho tiempo.
No tengo mucha experiencia para este tipo de manejadores de memoria virtual. Conoceis alguna referencia, pagina o componente que haga estas cosas?
Gracias.
Responder Con Cita
  #2  
Antiguo 30-01-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
como estas manejando los vectores? son dinamicos?

Intenta de verificar donde tenes el cuello de botella de consumo de tiempo. Pone contadores que te calculen el tiempo de diferentes partes.

* El tiempo total
* El tiempo de lectura del archivo
* El tiempo de creacion del vector (es un problema en vectores dinamicos grandes)
* El tiempo de llenado de los vectores
* tiempo de calculo
* etc
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 30-01-2007
JF Sebastian JF Sebastian is offline
Miembro
 
Registrado: oct 2006
Posts: 108
Poder: 18
JF Sebastian Va por buen camino
El cuello de botella esta en los accesos al disco duro que se trata de minimizar por eso dispongo de 2 buffers de 1Mb para intentar llegar a un compromiso entre la cantidad de memoria central y la velocidad y numero de accesos a disco.
El problema creo que esta en la seleccion de esos buffers para traer del disco duro a memoria central la informacion necesaria. Como ya he dicho algunos elementos estan mas tiempo en memoria central que otros por eso lo de los dos buffers...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Eleccion de nueva DBMS para grandes tablas Crandel Conexión con bases de datos 8 20-09-2006 09:54:11
Memoria virtual demasiado baja. Diavlo Windows 1 03-07-2006 00:21:31
Virtual Replay - Repetición Virtual de los Goles del Mundial delphi.com.ar La Taberna 0 26-06-2006 17:15:07
Grandes frases de grandes personas Nuria Humor 7 18-04-2004 05:40:17
Liberar Memoria Virtual susje Varios 1 23-07-2003 20:52:40


La franja horaria es GMT +2. Ahora son las 19:31:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi