<< Chapter < Page Chapter >> Page >

Dada la importancia, en el área del cómputo de alto rendimiento, del desempeño del subsistema de memoria de una computadora, se han usado muchas técnicas para tratar de mejorarlo. Sus dos atributos más importantes son el ancho de banda y la latencia . Ciertos diseños de sistemas de memoria mejoran uno a expensas del otro, mientras que otros impactan positivamente tanto en el ancho de banda como en la latencia. El ancho de banda generalmente se enfoca en la mejor tasa de transferencia del sistema de memoria en estado estacionario, lo que usualmente se mide durante la ejecución de un ciclo largo de avance unitario, que lee o lee y escribe la memoria. Véase la sección FLUJO del documento=""/>Capítulo 15 para una revisión de las medidas del ancho de banda de la memoria. La latencia es una medida del rendimiento de un sistema de memoria, en el peor caso conforme mueve una pequeña cantidad de datos (como por ejemplo una palabra de 32 o 64 bits) entre el procesador y la memoria. Ambos son importantes porque son parte sustancial de muchas aplicaciones de alto rendimiento.

Como los sistemas de memoria se dividen en componentes, hay valores de ancho de banda y latencia de diferentes órdenes de magnitud entre los distintos componentes, como se muestra en [link] . La tasa de ancho de banda entre una cache y la CPU será más alta que el ancho de banda entre la memoria principal y la cache, por ejemplo. Además, puede haber muchas caches y rutas a la memoria. Usualmente, el valor pico del ancho de banda citado por los vendedores es la velocidad entre la cache de datos y el procesador.

En el resto de esta sección, revisaremos las técnicas para mejorar la latencia, el ancho de banda o ambos.

Caches grandes

Como mencionamos a inicios de este capítulo, la disparidad entre las velocidades de la CPU y la memoria está creciendo. Si lo observa de cerca, verá a los distribuidores innovando en varios aspectos. ¡Ofrecen algunas estaciones de trabajo con caches de datos de 4 MB! Es más que los sistemas de memoria principal de las máquinas de apenas hace algunos años. Con una cache lo suficientemente grande, un conjunto de datos pequeño (o incluso moderadamente grande) puede caber en ella completamente, y lograr un rendimiento increíblemente bueno. Fíjese muy bien en este aspecto cuando pruebe hardware nuevo. Cuando su programa se torna demasiado grande para la cache, el rendimiento caerá considerablemente, tal vez en un factor de 10 o más, dependiendo de los patrones de acceso a la memoria. Resulta interesante señalar que un incremento en el tamaño de la cache por parte de los distribuidores puede volver obsoleto un benchmark.

Un sistema de memoria sencillo

Esta figura muestra una caja grande, la Memoria, y una caja chica, la Cache, ambas con conjuntos de flechas apuntando a una caja rotulada CPU. Las cajas de memoria y cache tienen en su lado izquierdo flechas delgadas apuntando a la CPU, con un texto a la derecha diciendo Latencia igual a retraso de un solo viaje. Las cajas de memoria y cache, en su lado derecho, cada una tiene un grupo de cuatro flechas apuntando hacia abajo a la CPU, con un texto a su lado, Ancho de Banda igual a Máximo Rendimiento.

Hasta 1999, el benchmark Linpack 100x100 fue probablemente la prueba más respetada para determinar el rendimiento promedio comparativo de una amplia variedad de aplicaciones. En 1992, IBM introdujo la RS-6000, con una cache suficientemente grande para contener completa la matriz de 100x100 durante toda la duración de la prueba. Por vez primera, una estación de trabajo presentaba un rendimiento del mismo orden que las supercomputadoras. En un sentido, con la estructura de datos completa contenida en una cache SRAM, la RS-6000 operaba como una supercomputadora vectorial Cray. El problema era que la Cray podía mantener y memorar el rendimiento con matrices de 120x120, mientras que la RS-6000 sufría de una caída de rendimiento significativo con este aumento del tamaño de la matriz. Pronto, todos los otros vendedores de estaciones de trabajo introdujeron caches de tamaño similar, y la prueba Linpack 100x100 dejó de ser útil como un indicador del rendimiento promedio de una aplicación.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Cómputo de alto rendimiento. OpenStax CNX. Sep 02, 2011 Download for free at http://cnx.org/content/col11356/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Cómputo de alto rendimiento' conversation and receive update notifications?

Ask