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
Milestone: | → Release 0.6 |
---|---|
Owner: | changed from Elier to Pedro Gea |
Status: | new → accepted |
comment:2 Changed 14 years ago by
Entiendo que ebcristo se refiere a la segunda opción. Muy relacionado con el #588
comment:3 Changed 14 years ago by
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:
- 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
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
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
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: