Microhilo (núcleo múltiple)

A medida que los microprocesadores se vuelven más rápidos, principalmente debido a que los núcleos se agregan cada pocos meses, la brecha de latencia de la memoria se amplía. La latencia de la memoria era de pocos ciclos en 1980 y está alcanzando hoy en día casi 1000 ciclos. Si el microprocesador tiene suficientes núcleos y, con suerte, no está enviando solicitudes a la memoria principal al mismo tiempo, habrá una ocultación agregada parcial de la latencia de la memoria. Es posible que algunos núcleos se ejecuten mientras que otros esperan la respuesta de la memoria. Esta no es la mejor situación para los procesadores multinúcleo. Los expertos en computación de alto rendimiento se esfuerzan por mantener ocupados todos los núcleos todo el tiempo. Por lo tanto, si cada núcleo se mantiene ocupado todo el tiempo, es posible una utilización completa de todo el microprocesador. Crear subprocesos basados en software no resolverá el problema por una razón obvia. El cambio de subprocesos de contexto a la memoria principal es una operación mucho más costosa en comparación con la latencia de la memoria. Por ejemplo, en el contexto del Motor de Banda Ancha celular, cambiar cualquiera de los hilos del núcleo toma 2000 microsegundos en el mejor de los casos. Algunas técnicas de software como el almacenamiento doble o múltiple en búfer pueden resolver el problema de latencia de la memoria. Sin embargo, se pueden usar en algoritmos regulares, donde el programa sabe dónde está el siguiente fragmento de datos a recuperar de la memoria; en este caso, envía la solicitud a la memoria mientras procesa los datos de la solicitud anterior. Sin embargo, esta técnica no funcionará si el programa no conoce el siguiente fragmento de datos a recuperar de la memoria. En otras palabras, no funcionará en algoritmos combinatorios, como la extensión de árboles o la clasificación de listas aleatorias. Además, el almacenamiento en búfer múltiple asume que la latencia de la memoria es constante y puede ocultarse de forma estática. Sin embargo, la realidad muestra que la latencia de la memoria cambia de aplicación a otra. Depende de la carga general de los recursos compartidos del microprocesador, como la velocidad de las solicitudes de memoria de las interconexiones de núcleos compartidos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

More: