close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Closed 11 years ago

#615 closed doubt (fixed)

repository: Default, Light

Reported by: ebcristo Owned by: Pedro Gea
Priority: major Milestone: Development 1B
Component: Results Keywords: repository
Cc:

Description

En el proyecto de Vivo por el grande número de output, queremos disminuir el tamaño de los ficheros guardos en repository.

Actualmente lo hacemos con est::Save_AtRepository en modo "Default", pero son grande, hasta 2 Mb por Forecast o Estimate.

Probamos hacerlo con modo "Light", pero resulta que no se guarda ni la serie del output, que nos son importantes. Seria posible un modo intermediario, que no salve algunas cosas, ejemplo: las cadenas?

Change History (5)

comment:1 Changed 14 years ago by Pedro Gea

Milestone: Release 0.6
Owner: changed from Elier to Pedro Gea
Status: newaccepted

Como comentas hay tres opciones de guardado: Light, Default y Heavy.

La primera (Light) guarda la información mínima del objeto: básicamente su definición sin incluir los datos de las variables (que podrían obtenerse en principio reevaluando las expresiones) sin incluir los resultados de estimaciones o previsiones (pues podrían volver a evaluarse) y sin guardar la caché de datos que agiliza la consulta de resultados.

La segunda opción (Default) guarda la estimación en el estado en el que se encuentra: es decir si se evaluó la expresión de una variable pero no la de otra, se guarda una con datos y la otra sin ellos.

La tercera (Heavy) guarda toda la información posible y si la expresión de una variable no había sido evaluada aún, se evaluará en el momento de guardado, de modo que el objeto dispondrá de toda la información necesaria para ser consultado fuera del proyecto o sin acceso a las fuentes de origen.

Respeto a tu pregunta, planteas si puedes guardar una estimación sin las cadenas, esto se puede entender de dos maneras:

  • No quieres guardar los resultados, entonces lo que puedes hacer es limpiar la estimación (borrar los resultados: parámetros estimados y caché y los objetos auxiliares de la estrategia) antes de guardarla:
    Real <estimation>::Clear(?);
    
  • Quieres guardar los resultados, pero no todas las cadenas, sino que te conformarías con una muestra de las cadenas o algunos de sus estadísticos. En este caso no disponemos aún de ningún mecanismo. Si es esta opción la que necesitas tendríamos que definir bien qué se busca e implementarlo.

comment:2 Changed 14 years ago by atorre

Entiendo que ebcristo se refiere a la segunda opción. Muy relacionado con el #588

comment:3 Changed 14 years ago by imendez

Creo que una solución podría ser guardar los resultados de forma modular. Eso permitiría poder definir qué módulos se desea guardar, y no tener que acceder a todos los resultados cuando sólo es necesario obtener una pequeña parte.

Se me ocurren dos ejemplos:

  1. En un modelo con muchos submodelos nos puede interesar obtener sólo los resultados de un submodelo (o un subconjunto de submodelos). Claro, habría que ver qué ocurre con la información común (por ejemplo, los hiperpárametros), que se podría guardar en un módulo independiente. Está claro que habría que pensar bien el diseño del guardado, aquí sólo apunto lo que sería deseable.

2.- En sistemas masivos con modelos de series temporales, es muy relevante (en cuanto a espacio de memoria ocupado) definir si se desean guardar los efectos por input, y si se guardan puede ser muy útil poder elegir si se desean incluir a la hora de recuperar los resultados de una estimación.

Un saludo.

comment:4 Changed 14 years ago by jgallardo

Se puede reducir el espacio usando la función MMS_Est_ReduceSpace(), pero se perderán las cadenas (se usarán en su lugar la media y la desviación típica) y los resultados de la caché.

//////////////////////////////////////////////////////////////////////////////
Real MMS_Est_ReduceSpace(NameBlock est)
//////////////////////////////////////////////////////////////////////////////
{
  WriteLn("MMS_Est_ReduceSpace:\n MMS_Est_SetParamSampleMin..."+ Time);
  Set paramNew = MMS_Est_SetParamToNormal(est);
  WriteLn("MMS_Est_ReduceSpace:\n Setting CacheSpecification..."+ Time);
  Real setCacSpe = est::GetModel.Results(?)::_.SetCacheSpecification(Empty);
  And(Card(paramNew), setCacSpe)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription("
 // Por ejemplo:

NameBlock est = MMS::Container::GetEstimation(1);
Real MMS_Est_ReduceSpace(NameBlock est);

// al guardarlo después, puede cambiar el tamaño del .oza de 2192 KB a 71 KB

", MMS_Est_ReduceSpace);
//////////////////////////////////////////////////////////////////////////////

comment:5 Changed 11 years ago by Pedro Gea

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.