XIV JORNADAS DE PARALELISMOLEGANES, SEPTIEMBRE 2003 1
ResumenEl desarrollo de nuevas mejoras arquitectnicas
depende, en gran medida, de la disponibilidad de herramientas de simulacin fiables y cargas de trabajo representativas que permitan conocer su efectividad real. En este trabajo estudiaremos una metodologa de simulacin de cargas de trabajo transaccionales de tipo ayuda a la toma de decisiones en entornos de simulacin de sistema completo. Para permitir reducir el tiempo de simulacin estudiaremos la estacionaridad de este tipo de aplicaciones. Basndonos en dicha estacionaridad mostraremos como considerando nicamente un 5% de la ejecucin del benchmark completo el error obtenido en las principales figuras de rendimiento del sistema esta por debajo del 3%. Palabras clave TPC-H, IRIX, SimOS, PostgreSQL, DSS, SGBD, jerarqua de memoria, sistema de interconexin. I. INTRODUCCIN ASTA hace relativamente pocos aos, los grandes sistemas de computacin han sido utilizados casi exclusivamente para procesar cargas numricas. Sin embargo en los ltimos aos se observa un cambio de tendencia en dichos usos [1]. Un porcentaje cada vez ms relevante de los grandes sistemas de computacin est siendo dedicado a cargas de trabajo de tipo transaccional. Ante esta situacin, las grandes compaas de hardware y software han fomentado la aparicin de nuevos estndares de benchmark . Para proveer al mercado y a los desarrolladores de herramientas de benchmarking que permitan conocer el impacto de cargas transaccionales, se forma el Transaction Processing Performance Council (TPC) [2]. Uno de los estndares promovidos por dicha organizacin es el estndar TPC-H. Este estndar simula un sistema de ayuda a la toma de decisiones (Decision Support System o DSS) en sincronizacin con un sistema de procesado de transacciones en lnea (On-Line Transaction Processing u OLTP). La metodologa de desarrollo de nuevas propuestas arquitectnicas requiere de la utilizacin de simuladores para su evaluacin. Debido a que los sistemas de alto rendimiento orientaban su uso al clculo numrico, la mayor parte de las cargas de trabajo empleadas habitualmente se centran en este escenario . Es necesario ampliar el marco de trabajo contemplando la posibilidad de emplear cargas de tipo transaccional en esta clase de anlisis. Para poder
1 Este trabajo ha sido financiado por la Comisin Interministerial de Ciencia y Tecnologa (CICYT), proyecto TIC-2001-591-C02-01 2 Grupo de Arquitectura y Tecnologa de Computadores, Universidad de Cantabria. {lamigo,vpuente,jagm}@atc.unican.es
simular benchmarks transaccionales se requiere simular el sistema completo, incluyendo todos los elementos hardware y software que intervienen (Sistema operativo y sistema gestor de la base de datos). Lgicamente para determinar el impacto de una mejora arquitectnica los requerimientos computacionales pueden ser extraordinariamente elevados. Para reducirlos es necesario reducir la complejidad del problema sin alterar su representatividad. En aplicaciones numricas esta reduccin se realiza mediante el escalado del tamao de la carga y de las caractersticas de los elementos del sistema. En cargas transaccionales, esto no es posible debido a que no se puede encontrar una relacin clara entre el tamao de la carga y la cantidad de trabajo. Proceder de este modo puede alterar completamente las caractersticas propias de la carga. En este trabajo mostraremos como es posible atenuar la demanda computacional de una carga de este tipo sin perdida de representatividad. Se mostrar como, a diferencia de lo que ocurre en las cargas de tipo numrico, el comportamiento es estable a lo largo de la ejecucin de la aplicacin. Tomando en consideracin este hecho es posible analizar tan solo una parte de su ejecucin para poder determinar el impacto global de una posible mejora arquitectnica con una demanda computacional substancialmente menor a la que correspondera a la ejecucin del benchmark completo. En la seccin 2 se mostrarn las principales diferencias existentes entre las cargas numricas y transaccionales y como pueden afectar a la metodologa de estudio. En la seccin 3 se describir el benchmark considerado en este estudio as como su implementacin. En la seccin 4 se detallar el entorno empleado. En la seccin 5 se indicarn los resultados obtenidos. Por ltimo, en la seccin 6 se apuntarn las principales conclusiones que se desprenden de este trabajo II. CARGAS NUMRICAS FRENTE A CARGAS TRANSACCIONALES. El esquema de ejecucin de las cargas numricas genera patrones de comportamiento que se pueden resumir en sucesivas fases de clculo y comunicacin intercaladas entre s. Este patrn de comportamiento hace necesaria la completa ejecucin de la carga para caracterizar su impacto sobre el sistema. Como la mayor limitacin de un entorno de simulacin es su elevada demanda computacional, la forma de introducir este tipo de cargas en dicho entorno pasa por el correcto escalado del tamao del problema y los parmetros arquitectnicos del sistema simulado [3]. Este tipo de escalados es posible debido la relacin clara que existe Metodologa de Simulacin para Cargas Transaccionales DSS 1 . Luis Amigo, Valentn Puente, Jos A. Gregorio 2 . H 2 AMIGO, PUENTE Y GREGORIO: METODOLOGA DE SIMULACIN PARA CARGAS TRANSACCIONALES DSS.
entre el patrn de clculo y comunicacin del problema con el tamao del mismo. Por otro lado, el esquema de ejecucin de las cargas transaccionales presenta una fase de establecimiento de las conexiones, una fase de ejecucin de las consultas y una fase de finalizacin de las conexiones. Las fases de establecimiento y finalizacin de conexiones pueden considerarse como transitorios de inicio y fin de ejecucin, mientras que el patrn de clculo durante la fase de ejecucin presenta un comportamiento estacionario. Sin embargo, en este tipo de cargas, la cantidad de clculo y comunicacin no resulta sencilla de relacionar con el tamao del problema. La cantidad de trabajo de un sistema transaccional, as como su patrn de ejecucin, depende de la complejidad de la base de datos sobre la que se trabaje. Un mismo esquema de relaciones en una base de datos puede dar comportamientos diametralmente opuestos en funcin de la cantidad de datos de las tablas. En un sistema DSS se realizan consultas que abarcan un gran nmero de tablas. En funcin de la cantidad de referencias cruzadas entre dichas tablas, variar la cantidad de trabajo que se ha de realizar para obtener el resultado de la consulta. Imaginemos un caso sencillo en el que se desea interrelacionar dos tablas en funcin de una nica condicin, si no existiese ninguna entrada que cumpla la condicin en la primera tabla, no sera necesario buscar ocurrencias en la segunda. Este hecho hace que sea necesario tener mucho cuidado a la hora de seleccionar el tamao de los datos incluidos en la base de datos. Por otro lado, el planificador realiza estimaciones sobre el contenido de los datos para elegir el mtodo de resolucin de una consulta. As, en funcin del nmero de ocurrencias que estime que va a haber en una tabla, y de su distribucin, se resolver dicha consulta con mtodos secuenciales o ndices. Es decir, si el planificador estima que el nmero de ocurrencias de datos, que cumplan una determinada condicin, es reducido, utilizar ndices para obtener los resultados. En cambio si estima que el nmero de resultados ser elevado, o que estos se hallan fsicamente contiguos, utilizar accesos secuenciales. El uso de ndices para resolver las consultas, agiliza las operaciones si el tamao de la carga es elevado, pero como contrapartida, provoca bloqueos entre los distintos procesos, puesto que dos consultas no pueden acceder simultneamente a un mismo nivel de un ndice. Si se tuviera una base de datos reducida, el planificador de consultas optara siempre por mtodos secuenciales, al encontrarse los datos fsicamente contiguos, lo que dara un comportamiento distinto al de las cargas de trabajo reales. Todo esto provoca que, para mantener el patrn de comportamiento de las cargas transaccionales, sea necesario mantener tambin un tamao de base de datos que asegure que habr ocurrencias en todas las condiciones, y que sigan emplendose ndices para agilizar las consultas. El tipo de operaciones realizadas en cargas de trabajo numricas muestra una escasa dependencia con el sistema operativo, debido a que el uso de funcionalidades del sistema se reduce al uso del espacio de memoria virtual. Debido a esta escasa dependencia no suele ser habitual incluir el impacto del sistema operativo en el estudio del sistema bajo anlisis en estas condiciones, simplificndose as enormemente el proceso de simulacin. Por el contrario, en cargas de trabajo transaccionales, aparece una elevada dependencia con el sistema operativo [4]. Dicha dependencia se debe, principalmente, al mecanismo de comparticin de datos entre los distintos procesos y al elevado uso que, este tipo de cargas, hacen de los elementos de disco, y por ello, de los mecanismos de sincronizacin y cache del acceso a disco proporcionado por el sistema. Esta elevada dependencia de los sistemas gestores de base de datos (SGBD) con el sistema operativo, obliga a que sea necesario incluir su impacto dentro las simulaciones de cargas transaccionales. Para reflejar el impacto del sistema operativo en ste y otro tipo de cargas, surge lo que se conoce como simuladores de sistema completo. Estos entornos de simulacin reflejan, con un elevado grado de detalle, todos los elementos de un sistema computacional de tal manera que se puede ejecutar en ellos sistemas operativos comerciales. Uno de estos entornos de simulacin es SimOS [5], desarrollado en la Universidad de Stanford en 1996. SimOS simula arquitecturas basadas en procesadores MIPS, Alpha y Power PC, de tal manera que permite ejecutar versiones modificadas de los sistemas operativos IRIX, Digital y AIX. III. LA CARGA DE TRABAJO. El estndar TPC-H [6] modela un sistema de ayuda a la toma de decisiones de una gran corporacin multinacional. Este sistema incluye una base de datos que representa clientes, proveedores, pedidos y artculos de la corporacin en 25 pases y 5 regiones geogrficas. El sistema DSS se sincroniza peridicamente con un sistema de transacciones en lnea, que procesa los nuevos pedidos y las modificaciones sobre los pedidos ya existentes. Esta sincronizacin se modela con la inclusin de nuevos datos y el borrado de datos obsoletos en lo que se conoce como funciones de refresco. Sobre esta base de datos se realizan dos tests cuya media geomtrica representa el resultado del benchmark. El primer test, conocido como Power Test, se basa en la ejecucin secuencial de las funciones de refresco y de lo que se conoce como stream. Un stream es la ejecucin secuencial de 22 consultas DSS complejas desde una nica conexin. El objetivo de este test es medir la velocidad de respuesta del sistema en el mejor caso. En el segundo test, conocido como Throughput Test, se ejecutan varios streams concurrentemente con las funciones de refresco. El objetivo de este test es la medicin de la capacidad de respuesta del sistema en una situacin de carga elevada. El tamao de la base de datos sobre la que se realiza el benchmark depende de un parmetro conocido como factor de escala. El factor de escala es un multiplicador sobre el tamao base del sistema, que corresponde a 1 GB de datos en crudo. El factor de escala se elegir en funcin del rea del mercado a la que est orientado el sistema. Este tamao de datos en crudo multiplica varias XIV JORNADAS DE PARALELISMOLEGANES, SEPTIEMBRE 2003 3 veces su valor una vez que se introduce en un esquema relacional. El aumento que se produce vara en funcin de los mecanismos de seguridad que se suministren, logs de recuperacin, replicacin de datos A. Implementacin del benchmark . Para realizar un benchmark siguiendo las especificaciones TPC-H se ha utilizado como SGBD PostgreSQL [7]. Se trata de un sistema gestor de base de datos desarrollado originalmente en la Universidad de Berkeley. El objetivo de este proyecto es realizar un SGBD libre que ofrezca funcionalidades similares a las de los grandes gestores de bases de datos comerciales. PostgreSQL utiliza un esquema cliente-servidor [8], mediante el cul, para cada nueva conexin de un cliente se genera un nuevo proceso servidor, que realiza las funciones requeridas por el cliente. Cada servidor dispone de un rea de memoria dedicada utilizada para procesar datos intermedios. Adems, todos los procesos servidores estn conectados a un rea de memoria compartida cuya integridad se controla mediante semforos. Este rea de memoria compartida funciona a modo de cache, de tal manera que en ella se almacenan los datos que han sido accedidos con anterioridad por alguno de los servidores. Todas las modificaciones sobre la base de datos se realizan sobre dicho rea de memoria. Para asegurar la durabilidad de los datos, dichas modificaciones son transferidas a disco antes de que puedan ser utilizadas por el resto de los servidores. PostgreSQL no soporta paralelismo a nivel de consulta, lo que no permite dividir la ejecucin de una consulta entre varios procesadores. Debido a esta falta de paralelismo, y para provocar la mayor carga posible en los sistemas, durante el Throughput Test se ejecutar un stream por procesador del sistema. Para realizar este trabajo utilizaremos un factor de escala de 0,1 lo que nos proporciona una base de datos de 100 MB en crudo. Los 100 MB se convierten en aproximadamente 500 MB cuando se incluye en un esquema relacional, se generan ndices para agilizar las consultas y se provee de mecanismos de seguridad necesarios para recuperar posibles fallos y permitir el Roll-Back de las transacciones. En trabajos anteriores se comprob[9] que este tamao de base de datos conserva la complejidad de las interrelaciones con las que se idearon las especificaciones y adems permite realizar toda la ejecucin en memoria principal, lo que asla el resultado de la ejecucin de las prestaciones de los dispositivos de almacenamiento. Aunque utilizar este factor de escala no concuerda con las especificaciones del benchmark TPC-H, ya que ste slo contempla factores de escala enteros lo emplearemos porque deseamos centrar el anlisis en la arquitectura del sistema. Utilizar un tamao de base de datos que no permitiera su ejecucin completa en memoria principal supondra permitir que se produjese un cuello de botella en el sistema de E/S. Para evitar esta situacin, y as poder localizar otros posibles cuellos de botella, se podran haber utilizado modelos de disco perfectos. El hecho de utilizar dichos modelos tambin hara desaparecer el efecto provocado por la actualizacin de los datos, por parte de las funciones de refresco, en las tablas de la base de datos. Asimismo, se perdera el efecto provocado por los mecanismos de integridad y roll-back. La eliminacin de estos efectos provocara un patrn de comportamiento radicalmente distinto al observado en sistemas reales. IV. EL ENTORNO DE SIMULACIN. A. El simulador SimOS. SimOS proporciona tres modelos de ejecucin basados en arquitecturas MIPS [10]: Embra.- Este es el modelo de ejecucin ms rpido disponible en SimOS. Utiliza un sistema de ejecucin directa que no simula el procesador ni la memoria cache y que permite preparar las cargas de trabajo e interactuar con el sistema operativo en la mquina simulada. Permite ejecutar aplicaciones con un tiempo de ejecucin unas diez veces superior al sistema real. Existe una variacin de este modelo que proporciona un esquema de cache simple. Mipsy.- Este modelo simula un procesador segmentado como los procesadores R3000 y R4000. Adems lleva a cabo una simulacin detallada de la jerarqua de memoria, proporcionando dos niveles de memoria cache y un interfaz de creacin de nuevos modelos. Permite la utilizacin de arquitecturas UMA y NUMA de 1 a 32 procesadores completamente configurables. El tiempo de ejecucin en este modelo es centenares de veces superior al de la ejecucin en un sistema real. MXS.- Este modelo simula un procesador superescalar como el R10000. Adems proporciona el mismo modelo de jerarqua de memoria que el procesador Mipsy. Este modelo se encuentra incompleto ya que slo reconoce el juego de instrucciones del R3000, lo que limita su utilidad. El tiempo de ejecucin es miles de veces superior al del sistema real.
Los tiempos relativos de ejecucin son para un nico procesador, hay que tener en cuenta que al ser un simulador secuencial, este slowdown se incrementa cuando se simulan varios procesadores. El sistema simulado por SimOS incluye una unidad de gestin de memoria (MMU) completa, con manejo de excepciones, de tal manera que la traduccin entre direcciones fsicas y virtuales ocurre igual que en el sistema real. Adems de los procesadores y la jerarqua de memoria, SimOS incluye modelos de disco duro complejos y de latencia fija, adems de un modelo de interfaz de ethernet. El modelo de disco detallado incluye el modelado del interfaz SCSI y realiza las transferencias, tanto desde, como hacia la memoria a travs de DMA, provocando una interrupcin una vez que se ha completado la transferencia. El simulador permite la ejecucin de un sistema operativo IRIX 6.4 con pequeas modificaciones en el kernel. Aunque posibilita correr aplicaciones actuales, no permite actualizar el sistema operativo con versiones ms modernas. Otra limitacin del simulador es el 4 AMIGO, PUENTE Y GREGORIO: METODOLOGA DE SIMULACIN PARA CARGAS TRANSACCIONALES DSS.
repertorio de instrucciones utilizado. Se puede salvar compilando las aplicaciones con repertorios de instrucciones reducidos, siempre y cuando se disponga de los cdigos fuente, o de binarios compatibles con estos procesadores. Esta limitacin del repertorio de instrucciones reduce (aunque no elimina) la posibilidad de utilizar aplicaciones comerciales. B. Descripcin de los sistemas computacionales. En trabajos anteriores [9] se caracterizaron dos sistemas computacionales utilizando el benchmark TPC- H. A continuacin adjuntamos una breve descripcin de los mismos: Un sistema SGI PowerChallenge de arquitectura de acceso uniforme a memoria sobre un bus PowerPath 2 con 8 procesadores MIPS R10000 a 196 MHz, 1 Gigabyte de memoria principal, 2 Megabytes de cache unificada de segundo nivel y 32+32 Kilobytes de cache de primer nivel ejecutando un sistema operativo IRIX 6.5. Un sistema SGI Origin 3200 de arquitectura de acceso no uniforme a memoria NUMAflex, con 2 nodos de 4 procesadores MIPS R12000 a 400MHZ y 2 Gigabytes de memoria principal por nodo, 8 Megabytes de cache unificada de segundo nivel y 32+32 Kilobytes de cache de primer nivel ejecutando un sistema operativo IRIX 6.5. Estos dos sistemas pueden ser introducidos en el entorno de simulacin con lo que, una vez verificada la estacionaridad de los sistemas reales, se puede realizar la simulacin de ambas arquitecturas. V. METODOLOGA DE ESTUDIO. A. Consideraciones acerca del entorno de simulacin La velocidad de ejecucin de un sistema de ocho procesadores en el entorno simulado, es de aproximadamente 1,8x10 5 instrucciones por segundo en modo Mipsy. Si tenemos en cuenta que la ejecucin completa del benchmark requiere la ejecucin de aproximadamente 1,5x10 12 instrucciones, seran necesarios unos 100 das para completar la simulacin. Si se utilizase un modo MXS seran necesarios unos tres aos para completar la simulacin. Esta limitacin temporal obliga a desarrollar una metodologa de simulacin que permita el estudio de posibles mejoras arquitectnicas en un plazo de tiempo razonable. Como se ha comentado anteriormente, la variacin del tamao de la aplicacin provoca un patrn de comportamiento diferente, al variar los mtodos seleccionados para resolver las consultas, el uso de ndices, y sobre todo el nmero de relaciones cruzadas entre las distintas tablas de la base de datos. Esto obliga a ejecutar en el simulador la misma carga de trabajo que se ha demostrado efectiva en el sistema real. Al no poder escalar la carga de trabajo como se realiza en cargas numricas, estudiaremos la posibilidad de realizar un escalado temporal. Para ello, emplearemos la capacidad de Checkpoint y Restart que proporciona el simulador. Mediante esta funcionalidad es posible comenzar una ejecucin con un modelo de procesador simple para, posteriormente, cambiar el modo de ejecucin a un modelo ms detallado. Para realizar un Checkpoint es necesario situar un punto de parada que puede venir fijado por un nmero de ciclos determinado, la llegada a un punto del cdigo predeterminado, o cuando se obtenga una respuesta por consola. No obstante, para utilizar un Checkpoint, SimOS no permite que haya ninguna instruccin de salto evalundose en ninguno de los procesadores del sistema. Esta limitacin a la hora de situar los Checkpoints puede predeterminar el punto en el que se deba cambiar de modo de ejecucin, como veremos ms adelante. El escalado temporal ha de ser realizado de tal manera que permita asegurar que el punto de trabajo del sistema es el mismo que el del sistema real. Esto permitir estudiar el efecto de posibles mejoras en el rendimiento del sistema. Como PostgreSQL no permite paralelismo a nivel de consulta, y al estar nuestro trabajo dedicado al estudio de arquitecturas multiprocesador, enfocaremos la simulacin en el Throughput Test. Este enfoque permite que la ejecucin del Power Test pueda ser realizada en un modo de ejecucin poco detallado, lo que nos permite reducir el tiempo de simulacin. An as, la ejecucin restante supone un tiempo de simulacin prohibitivo (60 das). Un tiempo de ejecucin tan elevado nos obliga a reducir an ms la zona de la ejecucin que se simular. El patrn de ejecucin del Throughput Test muestra una zona de transitorios al inicio de la ejecucin. Dichos transitorios se deben al establecimiento de las conexiones. Tambin presenta una segunda zona transitoria en su conclusin debido a la finalizacin de las mismas y almacenamiento de los resultados. Durante el resto de la ejecucin el patrn de comportamiento es relativamente estacionario. B. Determinacin de la estacionaridad A continuacin mostraremos el comportamiento de la carga de trabajo a lo largo de su ejecucin. Lgicamente estas medidas no pueden ser llevadas a cabo en el entorno simulado por que necesitamos conocer el resultado de la ejecucin completa del benchmark. Como hemos comentado previamente es nicamente factible en el entorno real. Analizaremos diferentes porciones de la ejecucin y comprobaremos cul es la desviacin de los parmetros ms significativos del sistema con respecto a la media final observada. En este anlisis nos centraremos exclusivamente en las tasas de acierto de las caches y el nmero de instrucciones por ciclo. Por tanto, compararemos estas cantidades durante el total de la ejecucin y en intervalos de tiempo menores. Para obtener estos datos se recurrir al sistema real empleando los contadores hardware que proporcionan los procesadores MIPS R10000/R12000. Utilizando una librera externa enlazada en tiempo de ejecucin, se pueden obtener los valores de estos contadores mediante muestreos temporales. Estos muestreos provocan una perturbacin escasa en la ejecucin (inferior al 3%). XIV JORNADAS DE PARALELISMOLEGANES, SEPTIEMBRE 2003 5 Para comprobar la estacionaridad de la ejecucin estudiaremos el Throughput Test desde el comienzo de su ejecucin. Tendremos que tener en cuenta, que el punto ms seguro para colocar un Checkpoint dentro del simulador es precisamente el punto en el que finaliza el Power Test y comienza el Throughput Test. El comenzar la ejecucin simulada, en modo detallado, en este punto incorpora en la medida el efecto transitorio del establecimiento de las conexiones y los fallos de arranque en fro. As, en la figura 1 se muestra el error cometido al aproximar la tasa de acierto de la cache de datos de primer nivel mediante un intervalo de tiempo, frente al promedio de dicho test al completo. Tambin se muestra el porcentaje del tiempo de ejecucin que representa dicha medida sobre el total del Throughput Test.
Fig. 1.- Error cometido al aproximar la tasa de fallos de la cache de datos de nivel uno en un intervalo inferior a la ejecucin completa.
Como se puede observar, la tasa de acierto en la cache de datos de primer nivel presenta un comportamiento estacionario. A partir de 10 segundos de ejecucin el error cometido es inferior al 5%. A partir de 2 minutos, y hasta el final de la ejecucin este error es inferior al 1%. Una desviacin del 1% se puede producir entre dos ejecuciones sucesivas en el mismo sistema. Debido a esto, a partir de los 2 minutos de ejecucin se puede considerar despreciable el error cometido al aproximar la tasa de acierto de la ejecucin por la tasa de acierto del intervalo. Con este resultado podemos decir que el comportamiento de la jerarqua de memoria durante la ejecucin de la aplicacin puede ser caracterizado mediante la simulacin de 10 segundos con un error inferior al 5%. Si el tiempo de simulacin se amplia a los dos minutos podemos caracterizar e comportamiento de la jerarqua con un error prcticamente despreciable. La segunda medida obtenida sobre la regularidad del sistema ha sido la cuenta de instrucciones por ciclo por procesador. El error cometido al aproximar la tasa media de la ejecucin por el valor obtenido en diferentes intervalos, as como el porcentaje de ejecucin del Throughput Test que representan dichos intervalos, se muestra en la figura 2. Error enInstrucciones/ciclo 0,00% 5,00% 10,00% 15,00% 20,00% 25,00% 30,00% 35,00% 40,00% 45,00% 50,00% 1seg 5seg 10seg 20seg 30seg 40seg 50seg 1min 2min 3min 4min error %Throughput Test
Fig. 2.- Error al considerar la cuenta de instrucciones por ciclo en un intervalo inferior a la ejecucin completa.
Como se puede observar, para intervalos muy cortos, se produce un error considerable, pero a partir de 20 segundos de ejecucin el error cometido es inferior al 5%. Es conveniente destacar, aunque no se muestre en la figura por no ser relevante, que este error se mantiene siempre inferior al 5% a partir de 20 segundos, sin importar el tamao del intervalo. La cuenta de instrucciones por ciclo es un reflejo de todo lo que ocurre en el sistema, ya que cualquier variacin en las tasas de las caches, los predictores de salto, TLB o bloqueos se refleja en ella. El hecho de que presente un comportamiento estacionario es un reflejo de la estacionaridad del sistema. Dicho comportamiento permite, ejecutando una parte de la simulacin, obtener el impacto relativo de cualquier mejora arquitectnica con esta carga de trabajo. VI. CONCLUSIONES. El uso extensivo de cargas de trabajo transaccionales en un elevado porcentaje de los computadores de altas prestaciones hace necesaria su inclusin en el marco de trabajo empleado a la hora de validar la efectividad de nuevas alternativas arquitectnicas en este contexto. Puesto que la metodologa de diseo pasa ineludiblemente por el empleo de herramientas de simulacin y dado el elevado tiempo de computacin necesario para ejecutar cargas transaccionales complejas, se necesita reducir sus exigencias computacionales. En este trabajo hemos puesto de manifiesto la estacionaridad de la ejecucin de un benchmark TPC-H sobre una base de datos creada en PostgreSQL. Utilizando esta estacionaridad es posible realizar ejecuciones de 20 segundos de tiempo simulado para caracterizar el correcto funcionamiento de dichas mejoras. Estas simulaciones suponen, utilizando procesadores MIPS R12000 a 400 MHZ, un tiempo de simulacin de unas 36 horas para un sistema de 8 procesadores. La etapa de posicionamiento permite tener lista la carga de trabajo en un tiempo inferior a tres horas para un sistema de 8 procesadores. Esta carga de trabajo, mediante el uso de checkpoints, slo ha de ser preparada 6 AMIGO, PUENTE Y GREGORIO: METODOLOGA DE SIMULACIN PARA CARGAS TRANSACCIONALES DSS.
una vez, ya que puede ser reutilizada en sucesivas simulaciones. Esto nos permite obtener un error inferior al 5% ejecutando el 3% del Throughput Test. El total de la simulacin supone un tiempo de computacin inferior a dos das para un sistema de 8 procesadores, frente a los ms de 100 das requeridos en principio para realizar la simulacin de la aplicacin. VII. AGRADECIMIENTOS Los autores quieren expresar su ms sincero agradecimiento a William Hachfeld de SGI por su inestimable ayuda en el desarrollo de las libreras que han permitido muestrear los contadores hardware de los procesadores R10000/R12000. VIII. REFERENCIAS. [1] http://www.top500.org. [2] http://www.tpc.org. [3] David E. Culler, Jaswinder Pal Singh Parallel Computer Architecture. 1999 Morgan Kaufmann Publishers, Inc. [4] L. A. Barroso, K. Gharachorloo, and E. D. Bugnion. Memory System Characterization of Commercial Workloads. In Proceedings of the 25th International Symposium on Computer Architecture, June 1998. [5] M. Rosenblun, E. Bugnion, S. Devine, and S. A. Herrod. Using the SimOS machine simulator to study complex computer systems. ACM Transactions on Modeling and Computer Simulation, Vol. 7, No. 1, January 1997, Pages 78103. [6] TPC Benchmark H (Decission Support) Standard Specification Rev. 1.3.0 1993 2002 Transaction Processing Performance Council. [7] http://www.postgresql.org [8] PostgreSQL Developer Version of the Docs. Internal Architecture. [9] L. Amigo, V. Puente, J.A. Gregorio, Demanda computacional del benchmark TPC-H. XIII Jornadas de paralelismo Lleida. [10] S. Herrod y COL , The SimOS simulation enviroment. 1996 Standford University.