Capítulo 7: Implementación y Pruebas7.3.7 Tiempo Consumido por cada SubprogramaEn esta prueba, se mide el tiempo de procesamiento de los algoritmosinvolucrados en la actualización de las estructuras de datos y rendering,variando el tamaño de la memoria de textura a utilizar entre 100MB y400MB con el dataset de mayor tamaño (VF8b). Para realizar lasmediciones de tiempo, se promedian los tiempos de procesamiento dedeterminados algoritmos a lo largo de 2000 frames. En estos 2000frames, el punto de interés se mueve de manera predefinida (ver Fig. 7.8)a una razón de 70 vóxeles por frame, con una resolución de imagen de1024x768 píxeles. Para el despliegue se utiliza ray casting basado enGPU, con muestreo adaptativo basado en la opacidad y terminacióntemprana de rayo. Los subprogramas involucrados en la generación decada frame son los siguientes:a) Actualización del error de los bricks en S al mover el puntode interés, O(N).b) Ordenamiento parcial de los bricks en S, O(N+Mlog2(M)).c) Algoritmo de Split-and-Collapse, O(Mlog2(M)).d) Ordenamiento de los bricks del conjunto S en profundidad,en sentido front to back, O(N).e) Carga de los bricks en memoria textura y rendering.Figura 7.8: movimiento predefinido del punto de interés.Los resultados mostrados en la tabla 7.12 demuestran que el tiempo derespuesta depende alrededor de 88% del rendering, y cerca de un 12% enla actualización de las estructuras de datos. Adicionalmente, notamosque los tiempos aumentan con el incremento del tamaño de la memoriade textura, pero salvo el tiempo de carga y rendering, ningúnsubprograma toma más de 3 centésimas de segundo. Mientras el tiempode carga y rendering varía entre 0,11 y 0,34 décimas de segundo, el restode los algoritmos en total toma hasta 4 centésimas de segundo,mostrando que son adecuados para procesar volúmenes de gran tamaño.-126-
Tiempo (segundos)Capítulo 7: Implementación y PruebasNote que los algoritmos a, b, y d aumentan linealmente conformeaumenta la cantidad de memoria de textura (N bricks) como se puedeobservar en la Fig. 7.9. Esto se debe a que la complejidad en tiempo deestos algoritmos es lineal respecto de N. Sin embargo, el algoritmo c(Split-and-Collapse) tiene un tiempo de respuesta similar para distintostamaños de la memoria de textura. Esto se debe a que este algoritmo esde O(MLog2(M)), por lo cual no depende de la cantidad de memoria detextura utilizada.MediciónVF8b100MB 200MB 300MB 400MB(a) 0,0117 0,0187 0,0246 0,0297(b) 0,0008 0,0018 0,0028 0,0037(c) 0,0018 0,0017 0,0014 0,00151(d) 0,0015 0,0031 0,0046 0,0066(e) 0,1149 0,1715 0,2316 0,3407a+b+c+d 0,0157 0,0252 0,0334 0,0416a+b+c+d+e 0,1307 0,1967 0,2650 0,3822%(a+…+d) 12,05% 12,81% 12,59% 10,87%%e 87,95% 87,19% 87,41% 89,13%F.P.S. (Hz) 7,65 5,08 3,77 2,62Tabla 7.12: tiempo en segundos requerido por cada subprograma.0,0350,030,0250,020,0150,01(a)(b)(c)(d)0,0050100MB 200MB 300MB 400MBFigura 7.9: tiempo requerido por cada subprograma. (a) Actualización del error, (b)Ordenamiento parcial, (c) Algoritmo de Split-and-Collapse, (d) Ordenamiento enprofundidad.-127-