Skip to content Skip to navigation Skip to collection information

OpenStax-CNX

You are here: Home » Content » Cómputo de Alto Rendimiento » Introducción

Navigation

Table of Contents

Recently Viewed

This feature requires Javascript to be enabled.
 

Memoria

Supongamos que cierta noche se durmió temprano y comenzó a soñar. En su sueño, tiene una máquina del tiempo y unos pocos procesadores superescalares de 4 vías a 500 MHz. Programa su máquina del tiempo para regresar a 1981, y una vez en esa época, sale y compra una IBM PC con un microprocesador Intel 8088 corriendo a 4.77 MHz. Durante buena parte del resto de esa noche, da vueltas en la cama mientras trata de adaptar el procesador a 500 MHz al zócalo del Intel 8088, usando un cautín y una navaja suiza. Justo antes de despertar, la nueva computadora finalmente funciona, y la enciende para ejecutar el benchmark Linpack1 y emite un comunicado de prensa. ¿Cabe esperar que esto convierta el sueño en una pesadilla? Existe una buena posibilidad de que suceda, tal como si la noche anterior hubiese usted regresado a la Edad Media y puesto un motor a reacción a un caballo. (debe dejar de comer pizzas con doble pepperoni tan tarde en la noche).

Incluso aunque pudiera acelerar los aspectos computacionales de un procesador infinitamente rápido, deberá cargar y almacenar los datos y las instrucciones desde y hacia una memoria, respectivamente. Los procesadores modernos continúan apegándose muy de cerca a este proceso infinitamente rápido. Pero el rendimiento de la memoria incrementa a una tasa mucho menor (le tomará más tiempo a la memoria volverse infinitamente rápida). Muchos de los problemas interesantes en el cómputo de alto rendimiento utilizan una gran cantidad de memoria. Conforme las computadoras se vuelven más rápidas, el tamaño de los problemas con los que tienden a operar también crece. El problema es que cuando quiere usted resolver esos problemas a altas velocidades, necesita un sistema de memoria que es grande, a la vez que rápido -un gran reto. Algunos enfoques posibles son los siguientes:

  • Cada componente del sistema de memoria puede hacerse lo suficientemente rápido, de manera individual, para responder a cada solicitud de acceso a memoria.
  • Puede accederse a la memoria lenta en un estilo round-robin (con suerte), para lograr un efecto similar al de un sistema de memoria más rápido.
  • Puede "ensancharse" el diseño del sistema de memoria, de modo que cada transferencia contenga muchos bytes de información.
  • El sistema puede dividirse en porciones más rápidas y más lentas, y acomodarlas de forma que las primeras se usen más a menudo que las últimas.

De nuevo, la economía es la fuerza dominante en el negocio de las computadoras. Un sistema de memoria barato, optimizado estadísticamente se venderá mucho mejor que uno brillantemente rápido y prohibitivamente caro, de forma que la primera opción no es en realidad tal cosa. Pero estas opciones, usadas en combinación, pueden lograr una buena fracción del rendimiento que obtendría usted si cada componente fuera rápido. Hay muy buenas posibilidades de que su estación de trabajo de alto rendimiento incorpore varias o todas de estas opciones.

Una vez decidido el sistema de memoria, hay cosas que podemos hacer mediante software para ver que se use eficientemente. Un compilador que posee cierto conocimiento sobre la distribución de la memoria y los detalles del cache, puede usarlo para optimizar su uso hasta cierto punto. El otro punto propenso a optimizarse son las aplicaciones de usuario, como veremos más adelante en este libro. Un buen patrón de acceso a memoria trabajará con, y no en contra de, los componentes del sistema.

En este capítulo discutiremos cómo trabajan las piezas de un sistema de memoria. Veremos cómo los patrones de acceso a datos e instrucciones son relevantes en el tiempo de ejecución global, especialmente conforme incrementa la velocidad de la CPU. También hablaremos un poco acerca de las implicaciones que tiene para el rendimiento, el ejecutar los programas en un ambiente de memoria virtual.

Footnotes

  1. Véase (Reference)Capítulo 15, Usando Benchmarks Publicados, para detalles acerca del benchmark Linpack.

Collection Navigation

Content actions

Download:

Collection as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Module as:

PDF | More downloads ...

Add:

Collection to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks

Module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks