un vistazo a la arquitectura intel® core 2 y herramientas del desarrollo de software junio 2009
TRANSCRIPT
![Page 1: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/1.jpg)
Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software
Junio 2009
![Page 2: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/2.jpg)
Un vistazo a la arquitectura y las herramientas
Discutiremos: Qué materiales hay disponibles Qué prácticas hay disponibles En qué cursos pueden aplicarse los materiales Discusiones de alto nivel sobre la tecnología
![Page 3: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/3.jpg)
Objetivos
Al termino de este módulo, serpa capaz de: Estar al tanto y tener acceso a varias horas de temas
relacionados con MC incluyendo arquitectura, tecnología del compilador, tecnología de caracterización, OpenMP, y efectos de la caché
Será capaz de crear ejercicios y como evitar peligros comunes en en paralelización asociados con algunos sistemas MC- tales como una Pobre Utilización de la Caché, False Sharing y desbalanceo de carga
Será capaz de crear ejercicios en como utilizar directivas del compilador y switches para mejorar el comportamiento en cada núcleo
Será capaz de crear ejercicios en como aprovechar las herramientas para identificar rápidamente problemas de balanceo de carga, pobre reutilización de la caché y problemas de False Sharing
![Page 4: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/4.jpg)
Agenda
Motivación de Multi-core Un vistazo a las herramientas Aprovechar las características de Multi-core Aprovechar las características de paralelismo dentro de
cada núcleo (SSEx) Evitar efectos de la Memoria/Cache
![Page 5: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/5.jpg)
¿Por qué la industria está moviéndose a la tecnología Multi-core?
Para mejorar el rendimiento y reducir el consumo de energía
Es más eficiente ejecutar varios núcleos a una menor frecuencia que un solo núcleo a una frecuencia más alta
![Page 6: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/6.jpg)
Potencia y Frecuencia
Curva de Potencia vs. Frecuencia para arquitecturas con un núcleo
9
59
109
159
209
259
309
359
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 3.2 3.4
Frecuencia (GHz)
Po
ten
cia
(w
)
Baja de Frecuencia= Mayor baja de potenciaMenor Frecuencia nos da espacio para un segundo
núcleo
![Page 7: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/7.jpg)
Agenda
Motivación de Multi-core Un vistazo a las herramientas Aprovechar las características de Multi-core Aprovechar las características de paralelismo dentro de
cada núcleo (SSEx) Evitar efectos de la Memoria/Cache
![Page 8: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/8.jpg)
Optimizaciones independientes del procesador
/Od Optimizaciones desabilitadas
/O1 Optimiza el tamaño del binario y velocidad:
Código Servidor
/O2 Optimiza velocidad (default):
Vectorización en Intel 64
/O3 Optimiza Caché de Datos:
Código cíclico con operaciones de punto flotante
/Zi Crea símbolos para debug
/Ob0 Apaga “inlining” lo que ayuda a las herramientas de análisis a hacer un mejor trabajo
![Page 9: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/9.jpg)
Optimizaciones de Vectorización
QaxSSE2 Intel Pentium 4 y procesadorres Intel compatibles.
QaxSSE3 Procesadores de la familia Intel(R) Core(TM) con soporte SSE3 (Streaming SIMD Extensions 3)
QaxSSE3_ATOM Puede generar instrucciones MOVBE para procesadores Intel y puede optimizar para el procesador Intel® Atom™ y tecnología Intel Centrino® Atom™ SSE3
QaxSSSE3 Procesadores Intel(R) Core(TM)2 con SSSE3
QaxSSE4.1 Intel(R) 45nm Hi-k Nueva generación microarquitectura Intel Core(TM) con soporte para instrucciones de vectorización SSE4 y aceleración multimedia
QaxSSE4.2 Puede generar Intel(R) SSE4 instrucciones eficientes para aceleración en el procesamiento de strings y texto soportadas por procesadores Intel(R) Core(TM) i7. Puede generar vectorización Intel(R) SSE4 y aceleración multimedia, Instrucciones Intel(R) SSSE3, SSE3, SSE2, y SSE y puede optimizar para la familia de procesadores Intel(R) Core(TM).
Intel tiene una larga historia de proveer switches de auto-vectorización junto con el soporte de nuevas instrucciones del procesador y soporte hacia atrás para viejas instrucciones
Los desarrolladores deben echar un ojo a los nuevos desarrollos parasacar provecho del poder de los últimos procesadores
![Page 10: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/10.jpg)
Más Optimizaciones Avanzadas
Qipo
Optimización interprocedural hace un análisis topológico de la aplicación incluyendo todos los códigos fuentes. Con /Qipo (-ipo) el análisis se extiende todos los códigos fuentes. En otras palabras la generación de código en el módulo A puede mejorarse con lo que está sucediendo en el módulo B. Puede habilitar otras optimizaciones como autoparallel y autovectorr
Qparallel Habilita el auto-paralelizador para genenerar código multihilos en ciclos que pueden ejecutarse en paralelo de manera segura
Qopenmp Habilita al compilador para generar código multihilos basado en directivas de OpenMP*
![Page 11: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/11.jpg)
Actividad 1 – Auto-Paralelización
Objetivo: Usar auto-paralelización en un código simple para obtener experiencia usando la prestación de auto-paralelización del compilador
Sigue la actividad VectorSum del cuaderno de prácticas Prueba la compilación AutoParallel en la práctica
llamada VectorSum Crédito Extra: paraleliza manualmente y observa que
tanto se puede sobrepasar la opción AutoParallel – ver bloques de construcción de openmp para hacer esta prueba
![Page 12: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/12.jpg)
Parallel Studio para encontrar donde paralelizar
Parallel Studio lo usaremos en varias prácticas para encontrar los lugares apropiados para paralelizar el código
Parallel Amplifier será usado específicamente para encontrar hotspots- donde el código de la aplicación gasta más tiempo del CPU
Parallel Amplifier no requiere instrumentar el código para encontrar los hotspots, se recomienda compilar con información de símbolos /Zi
Compilar con /Ob0 apaga el “inlining” y algunas veces es mejor el análisis en Parallel Studio
![Page 13: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/13.jpg)
Parallel Amplifier Hotspots
![Page 14: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/14.jpg)
¿Qué muestra el análisis de hotspots?
![Page 15: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/15.jpg)
¿Qué hay en los detalles?
![Page 16: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/16.jpg)
El stack de llamadas
El stack de llamadas (call) muestra la relación llamado/llamador entre funciones en el código
![Page 17: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/17.jpg)
Encontrar paralelismo potencial
![Page 18: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/18.jpg)
Actividad 2 – Análisis de Hotspots del Mandelbrot
Objetivo: Usar el muestreo para encontrar algo de paralelismo en la aplicación Madelbrot
Sigue la práctica llamada Mandelbrot Sampling en el cuaderno de prácticas
Identifica ciclos que pueden ser paralelizados
![Page 19: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/19.jpg)
Agenda
Motivación de Multi-core Un vistazo a las herramientas Aprovechar las características de Multi-core
Vistazo a alto nivel – Arquitectura Intel® Core Aprovechar las características de paralelismo dentro de
cada núcleo (SSEx) Evitar efectos de la Memoria/Cache
![Page 20: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/20.jpg)
Plataforma móvil optimizada • 1-4 Núcleos• Tamaños de caché L2 3/6MB• Línea de la caché L2 64 Bytes• 64-bits
6M
6M L24M
4M L2
Plataforma de escritorio optimizada
• 2-4 Núcleos• Tamaños de la caché L2 2X3, 2X6
MB• Línea de la caché 64 Bytes• 64-bits
Plataforma de servidor optimizada
• 4 Núcleos• Cachés L2 2x6• Línea de la caché L2 64 Bytes• Soporte DP/MP• 64-bits
2 cores2 cores 4 cores4 cores
**Feature Names TBD
6M2X6M
L22X3M L2
2 cores2 cores 4 cores4 cores
12M
4 cores4 cores
2X6M L2
12M
Instante en el tiempo durante Penryn, Yorkfield, harpertown
Los desarrolladores de software deben saber cuántos núcleos, tamaño de la línea de la cache y tamaños de la caché para hacer frente a los efectos de la caché
Arquitectura Intel® Core 2
![Page 21: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/21.jpg)
Jerarquía de Memoria
Disco Magnético
Memoria principal
Caché
L2 Caché L1CPU
~ 1’s Ciclo ~ 1’s - 10 Ciclos
~ 100’s Ciclos
~ 1000’s Ciclos
![Page 22: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/22.jpg)
Arquitectura vista desde un alto nivel
A A A A
E E E E
C1 C2
B B
A A
E E
C
B
Procesador Intel Core 2 Duo
Procesador Intel Core 2 Quad
A = Estado de la Arquitectura E = Motor de ejecución e interrupcionesC = Caché nivel 2 B = Interfase con el bus
Memoria MemoriaLínea de caché 64B Línea de caché 64B
El Dual Core tiene caché compartida
Quad core tiene ambos: caché compartida y separada
Intel® Core™ Microarchitecture – Memory Sub-system
![Page 23: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/23.jpg)
Con cachés separadas
CPU1 CPU2
Memoria
Front Side Bus (FSB)
Linea de caché
Mover la línea de caché L2~Medio acceso a memoria
Intel® Core™ Microarchitecture – Memory Sub-system
![Page 24: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/24.jpg)
CPU2
Ventajas de la caché compartida– usando tecnología Advanced Smart Cache®
CPU1
Memoria
Front Side Bus (FSB)
Línea de la caché
L2 está compartida:No se requiere mover la línea de la caché
Intel® Core™ Microarchitecture – Memory Sub-system
![Page 25: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/25.jpg)
False Sharing
Problema de rendimiento en programas donde los núcleos pueden escribir a diferentes direcciones de memoria PERO en la misma línea de la caché
Conocido como efecto Ping-Pong – la línea de la cache se mueve entre núcleos Core 0 Core 1
Tie
mpo
1 0
X[0] = 1X[1] = 1
1
X[0] = 0 X[1] = 0
10
X[0] = 2
1 12
False Sharing no es un problema en cachés
compartidas
Es un problema en cachés separadas
![Page 26: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/26.jpg)
Agenda
Motivación de Multi-core Un vistazo a las herramientas Aprovechar las características de Multi-core Aprovechar las características de paralelismo dentro de
cada núcleo (SSEx) Evitar efectos de la Memoria/Cache
![Page 27: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/27.jpg)
Ejecución Super-Escalar F
P
SIM
D
INT
Varias unidades de ejecución
Permiten paralelismo SIMD
Muchas instrucciones pueden retirarse en un ciclo de reloj
Varias operaciones ejecutadas en un solo núcelo al mismo tiempo
![Page 28: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/28.jpg)
IntelIntel
SSESSEIntelIntel
SSE4.1SSE4.1
IntelIntel
SSE2SSE21999 2000
IntelIntel
SSE3SSE32004
IntelIntel
SSSE3SSSE32006
200770 instr
Vectores Simple-Precision
Streaming operations
144 instr
Vectores Doble-precision
8/16/32
64/128-bit vector entero
13 instr
Datos Complejos
32 instr
Decodifi-cación
47 instrucciones
Aceleradores de Video
bloques de contrucción para gráficos
Instrucciones avanzadas de vectoresContinuará con:
• Intel SSE4.2 (procesamiento XML a finales de 2008)
• ver - http://download.intel.com/technology/architecture/new-instructions-paper.pdf
Historia de las instrucciones SSE
Larga historia de nuevas instruccionesLa mayoría requieren instrucciones de empaquetar
y desempaquetar
![Page 29: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/29.jpg)
Tipos de datos SSE y Aceleración Potencial
4x floats4x floatsSSE
16x bytes16x bytes
8x 16-bit8x 16-bit shortsshorts
4x 32-bit4x 32-bit enterosenteros
2x 64-bit enteros2x 64-bit enteros
1x 128-bit enteros1x 128-bit enteros
2x doubles2x doubles
SSE-2SSE-3SSE-4
Aceleración potencial (en el ciclo destino) aproximadamente la misma que la cantidad de empaquetamientoEjemplo. para floats – aceleración ~ 4X
![Page 30: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/30.jpg)
Meta de SSE(x)
++
Procesamiento Escalar Modo tradicional Una instrucción produce un
resultado
XX
YY
X + YX + Y
==
Procesamiento SIMD con SSE(2,3,4) Una instrucción produce
múltiples resultados
++
x3x3 x2x2 x1x1 x0x0
y3y3 y2y2 y1y1 y0y0
x3+y3x3+y3 x2+y2x2+y2 x1+y1x1+y1 x0+y0x0+y0
XX
YY
X + YX + Y
==
•Usa toda la amplitud de los registros XMM•Muchas unidades funcionales•Selección de varias instrucciones•No todos los ciclos pueden vectorizarse
•No puede vectorizar la mayoría de las llamadas a funciones
![Page 31: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/31.jpg)
Actividad 3 – IPO Vectorización Asistida
Objetivo: Explorar como inlining una función puede dramáticamente mejorar el rendimiento permitiendo la vectorización de un ciclo con una llamada a función
Abrir el folder SquareChargeCVectorizationIPO y usar “nmake all” para construir el proyecto desde la línea de comandos
Para añadir switches para hacer el ambiente usar nmake all CF=“/QxSSE3”
![Page 32: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/32.jpg)
Agenda
Motivación de Multi-core Un vistazo a las herramientas Aprovechar las características de Multi-core Aprovechar las características de paralelismo dentro de
cada núcleo (SSEx) Evitar efectos de la Memoria/Cache
![Page 33: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/33.jpg)
Efectos de la caché
Los efectos de la caché pueden incidir en la velocidad de una aplicación tanto como 10x o hasta 100x
Para sacar provecho de la jerarquía de la caché en la máquina, se deben reusar los datos en la caché lo más que se pueda
Evitar acceder memoria en direcciones de memoria no contigua, especialmente en ciclos
Se puede considerar el intercambio en ciclos para acceder datos de una forma más eficiente
![Page 34: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/34.jpg)
Intercambio de ciclos
Muy importante para vectorizar
for(i=0;i<NUM;i++) for(j=0;j<NUM;j++) for(k=0;k<NUM;k++) c[i][j] =c[i][j] + a[i][k] * b[k][j];
for(i=0;i<NUM;i++) for(k=0;k<NUM;k++)
for(j=0;j<NUM;j++) c[i][j] =c[i][j] + a[i][k] * b[k][j];
Índice de ciclo rápido
Índice de ciclo rápido
Saltar en la memoria puede causar fallos de la caché – particularmente
para arreglos de tamaño 2^n
![Page 35: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/35.jpg)
Acceso de la memoria por paso de unidades (C/C++)
bN-10bN-10 bN-1N-1bN-1N-1
bk0bk0 bk1bk1 bk2bk2 bk3bk3 bkN-1bkN-1
b10b10 b11b11 b12b12 b13b13 b1N-1b1N-1
b00b00 b01b01 b02b02 b03b03 b0N-1b0N-1
j
j
b
k
El incremento de indice más rápidoAcceso de memoria consecutivo
aN-10aN-10 aN-1N-1aN-1N-1
ai0ai0 ai1ai1 ai2ai2 ai3ai3 aiN-1aiN-1
a10a10 a11a11 a12a12 a13a13 a1N-1a1N-1
a00a00 a01a01 a02a02 a03a03 a0N-1a0N-1
k
a
k
i
Próximo indice de ciclo más rápidoIndice de memoria consecutivo
![Page 36: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/36.jpg)
Sartén listo para freir huevos
Refrigerador
Utilización pobre de la caché – con huevos
::
•Un cartón representa una línea de cache
•El Refrigerador representa la memoria principal
•Mesa representa la caché
•Cuando la mesa se llena –los cartones viejos se expulsan y los huevos se desperdician
•Solicitar un huevo que no está en la mesa, trae un nuevo cartón de huevos del refrigerador, pero el usuario solo frie un huevo de cada cartón
•Cuando la mesa se llena, se expulsa un cartón viejo
El usuario solicita un huevo en específico
El usuario solicita un segundo huevo en específico
El usario solicita un tercer huevo – El cartón se expulsa
![Page 37: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/37.jpg)
Refrigerador
El usuario previo ha usado todos los huevos en la mesa
::
Buena utilización de la caché - con huevos
La expulsión de un carton no afecta porque ya freímos todos los huevos en los cartones que están en la mesa – tal como el usuario previo
El usuario solicita los huevos del 1 al 8
El usuario solicita los huevos del 9 al16
El usuaurio eventualmente solicita todos los huevos
•Solicitar un huevo trae un nuevo cartón de huevos del refrigerador
•El usuario solicita específicamente huevos del cartón que ya está en la mesa
•El usuario frie todos los huevos en el cartón antes de solicitar un huevo del siguiente cartón
![Page 38: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/38.jpg)
Actividad 4 – Efectos de la caché en la multiplicación de matrices
Objetivo: Explorar el impacto de un uso pobre de la caché en el rendimiento con Parallel Studio y ver como manipular los ciclos para lograr significativamente un mejor uso de la caché y rendimiento
![Page 39: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/39.jpg)
![Page 40: Un vistazo a la arquitectura Intel® Core 2 y herramientas del desarrollo de software Junio 2009](https://reader036.vdocuments.co/reader036/viewer/2022082408/54e845114a7959333c8b4a89/html5/thumbnails/40.jpg)
BACKUP