Author Topic: Instancias de DBE  (Read 19846 times)

Offline C. Sonnenstein

  • PixInsight Addict
  • ***
  • Posts: 262
    • http://astrosurf.com/astro35mm
Instancias de DBE
« on: 2007 September 10 07:31:05 »
Hola:

Pongo esto aquí porque creo que no es un bug, si no algo distinto.

Abrimos DynamicBackgroundExtraction para realizar una generación automática de muestras a lo largo de una imagen. Seleccionamos un número no muy elevado de muestras en Samples per Row, digamos una treintena. A continuación le pedimos a DBE que genere automáticamente las muestras, el programa se queda pensando unos segundos y acaba colocando las muestras sobre la imagen. Con los parámetros actuales lanzo ahora una instancia sobre ProcessContainer, y en ese momento PixInsight pasa momentáneamente al estado No Responde. Pasado un momento, desaparece dicho estado y la instancia aparece finalmente reflejada en ProcessContainer. Hasta aquí todo bien.

Ahora realizo la misma operación pero generando en DBE un número muy elevado de muestras, digamos 140 por línea (Samples per Row). Lógicamente ahora DBE tarda algo más de tiempo en mostrar las cajas sobre la imagen. Sin embargo, cuando lanzo la instancia sobre ProcessContainer, PixInsight pasa ahora al estado No Responde indefinidamente.

La pregunta es: ¿el problema es una limitación de memoria en el ordenador, o algún problema con Windows? ¿Es posible guardar en una cadena de procesos una instancia de DBE con un número elevado de muestras (5.000 cajas por ejemplo) independientemente de la capacidad de memoria del ordenador?

Gracias.
Carlos Sonnenstein

Offline C. Sonnenstein

  • PixInsight Addict
  • ***
  • Posts: 262
    • http://astrosurf.com/astro35mm
Instancias de DBE
« Reply #1 on: 2007 September 10 08:18:43 »
Hola de nuevo:

He realizado la misma operación, pero esta vez lanzando en primer lugar la instancia de DBE al fondo de la aplicación, creando así un icono de proceso. Luego he cancelado la sesión de DBE y he lanzado el icono sobre ProcessContainer. El programa continua quedando igualmente en estado de No Responde de manera indefinida, con el uso de la CPU al 100%.

Salu2,
Carlos Sonnenstein

Offline David Serrano

  • PTeam Member
  • PixInsight Guru
  • ****
  • Posts: 503
Instancias de DBE
« Reply #2 on: 2007 September 10 10:03:07 »
Lo he probado en Linux y he visto que aquí no se manifiesta el problema. Lo he hecho tres veces:

 - Con 25 muestras/línea tarda aproximadamente 1 segundo en dibujarlas sobre la imagen. Creo un icono en el escritorio, lo meto en el ProcessContainer y es prácticamente inmediato.

 - Con 50 muestras/línea tarda así como 5 segundos en pintarlas sobre la imagen. Para el ProcessContainer se demora aproximadamente lo mismo.

 - Con 99 muestras/línea tarda un minuto en crear las muestras y casi 4 en meter el icono en el contenedor.

Parece que la tendencia es a tardar más para el segundo paso de lo que se tarda para el primero (el escalado es peor).

A mí me llama más la atención que en ningún momento he visto los dos procesadores ocupados al mismo tiempo, sino sólo uno... :?: También mencionar que al crear las muestras sólo se ocupa procesador en modo usuario, pero al meter el icono en el ProcessContainer, un 30% de la CPU va en modo kernel durante un rato, y luego se pone 100% en usuario.

Ahora tengo un 75% de la memoria libre, y en ningún momento me saltó la alarma del 50%, por lo que el consumo de memoria no ha sido superior  en ningún momento al 25%.

¿Puedes probar a dejarlo funcionando por la noche, y a ver si por la mañana ya ha acabado o sigue muerto?
--
 David Serrano

Offline C. Sonnenstein

  • PixInsight Addict
  • ***
  • Posts: 262
    • http://astrosurf.com/astro35mm
Instancias de DBE
« Reply #3 on: 2007 September 10 11:06:31 »
Quote
¿Puedes probar a dejarlo funcionando por la noche, y a ver si por la mañana ya ha acabado o sigue muerto?


Por supuesto, pero no me digas que esta es la solución definitiva :)

Por cierto, mi máquina tiene 2 Gb de RAM.

Gracias.
Carlos Sonnenstein

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Instancias de DBE
« Reply #4 on: 2007 September 11 01:26:56 »
Bueno, lo que Carlos ha detectado aquí podríamos decir que es un "semi-bug" :)

En serio, es realmente un fallo de diseño por mi parte. Me explico.

El problema es simplemente que ProcessContainer puede tardar bastante tiempo en generar el script correspondiente a una instancia con decenas de miles de valores numéricos. El script se genera mediante operaciones de cadenas. Aparte del hecho de que el problema es en sí mismo bastante complejo, parece que no escribí un código particularmente eficiente en este caso. He de revisarlo, y en cualquier caso la solución consiste en generar el script mediante un thread que pueda ser interrumpido de forma síncrona con eventos de la interfaz, de manera que la plataforma no se quede congelada.

En cualquier caso, lo que me extraña es que se te quede "muerto" durante más de digamos unos minutos. A que esto va a ser una muestra de la ineficiencia de Windows en el manejo de la memoria... haré mis experimentos :)

David: la aplicación sólo usa múltiples procesadores para tareas críticas como renderización de imágenes y gestión del color, entre otras. Además por supuesto la mayor parte de los módulos procesan en paralelo. Sin embargo, tareas "sencillas" (aparentemente) como generar un script se hacen con un sólo procesador.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Instancias de DBE
« Reply #5 on: 2007 September 11 01:33:52 »
Me respondo a mí mismo ahora :)

Aparte de todo lo dicho, está el hecho de que la generación de secuencias enormes de muestras en DBE debería ser cancelable y proporcionar algún tipo de feedback. No es de recibo que todo se quede muerto durante varios minutos...
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline C. Sonnenstein

  • PixInsight Addict
  • ***
  • Posts: 262
    • http://astrosurf.com/astro35mm
Instancias de DBE
« Reply #6 on: 2007 September 11 02:47:58 »
Gracias Juan, en realidad el proceso tarda un tiempo más o menos razonable hasta más o menos un millar de muestras en DBE. De momento guardo independiente el icono de proceso de esa instancia.

Salu2,
Carlos Sonnenstein