Multiprocesadores Simétricos

Presenter Notes

Resumen

  • ¿Dónde estamos en la Taxonomía de Flynn?
  • Scaling, Amdhal's y Gustafson's Law.
  • ILP y SMT.
  • Multicore.
  • Coherencia y Consistencia.
  • Bibiliografía.

Nicolás Wolovick, $Date: 2012-04-25 00:42:45 -0300 (Wed, 25 Apr 2012) $, $Revision: 3439 $

Presenter Notes

Taxonomía de Flynn: ahora en MIMD

Taxonomía de Flynn

Presenter Notes

Tenemos N procesadores

Muchos son los nombres

Unidades de procesamiento independientes.

  • SMP (Symmetric Multiprocessing).
  • Manycore.
  • Multicore.

Veremos el impacto en la performance y sus límites.

Speedup y Eficiencia

Speedup fmla Eficiencia fmla

donde, T1 tiempo secuencial, Tp tiempo paralelo para p procesadores.

Presenter Notes

Aceleración

Escalado perfecto: "N procesadores, tienen que ir N veces más rápido".

Típico gráfico balístico

Gráfico de tiro balístico

Presenter Notes

Aceleración: trampas y falacias

Gráfico de mortero 2

  • ¿Es comparable la performance secuencial con la paralela N=1?
    • Comparar algoritmos secuenciales y su paralelización: relative speedup.
    • Comparar el mejor secuencial y el mejor paralelo: true speedup.
  • ¿Escalar linealmente es sinónimo de buena performance?
  • ¿Podemos tener escalado sublineal y que sea útil? (cost-effective).
  • ¿Existe el escalado superlineal?

Presenter Notes

Ejemplo: escalabilidad 3 workloads

Speedup

(Hennessy, Patterson, CAAQA4, p.260)

Presenter Notes

Ejemplo: performance/costo 3 workloads

Efectividad en costo

(Hennessy, Patterson, CAAQA4, p.261)

Presenter Notes

El límite: Amdahl's Law

Fórmula

  • S(N): aceleración para N procesadores.
  • P: porción paralelizable.
  • N: número de componentes paralelas.

Presenter Notes

Amdahl's Law: larga vida al unicore

Siempre necesitaremos buena preformance en 1 hilo!

Amdhal's Law

(Wikipedia, Amdahl's Law)

Presenter Notes

Ejemplo

Problema

  • Quiero un speedup de 80x.
  • Con 100 procesadores.
  • ¿Qué fracción de la computación original puede ser secuencial?

Respuesta

0.25%

(Hennessy, Patterson, CAAQA4, p.202)

AGGGGGGGGGGGG!

Presenter Notes

Aceleración en escala

La ley de Amdahl's pone límites muy fuertes en la paralelización.

Pero...

  • Es para un tamaño de problema fijo.
  • Usualmente a mayor poder de procesamiento, más grande es el set de datos que quiero procesar!

Gustafson's Law

Supone que el data-set aumenta linelmente con la cantidad de procesadores.

Gustafson's Law

  • S(P): aceleración para P procesadores.
  • P: número de procesadores.
  • α: fracción secuencial.

Presenter Notes

Ni tanto, ni tan poco

Although simply scaling the data size with processor count is rarely appropriate, assuming a fixed problem size for a much larger processor count is often inappropriate as well, since it is likely that users given a much larger multiprocessor would opt to run a larger or more detailed version of an application.

(Hennessy, Patterson, CAAQA4, p.259)

Presenter Notes

SIMD < SIMT < SMT

Even in server workloads, where there’s naturally a lot of independent processing, single-threaded latency still matters.

Urs Hölzle, Brawny cores still beat wimpy cores, most of the time, Google, 2010.

So why doesn’t everyone want wimpy-core systems? Because in many corners of the real world, they’re prohibited by law—Amdahl’s law. Even though many Internet services benefit from seemingly unbounded request- and data-level parallelism, such systems aren’t above the law. As the number of parallel threads increases, reducing serialization and communication overheads can become increasingly difficult. In a limit case, the amount of inherently serial work performed on behalf of a user request by slow single-threaded cores will dominate overall execution time.

Presenter Notes

ILP & SMT

Presenter Notes

Límites del ILP

Extraer paralelismo del programa que se está ejecutando tiene sus límites.

Cómo aprovechar toda la infraestructura de:

  • Register renaming.
  • Scheduling dinámico.
  • Múltiples unidades de ejecución (entero y punto flotante).
  • etc ...

Symmetric Multithreading (SMT)

Un hilo es un mecanismo para marcar código que se puede ejecutar en paralelo.

Idea: si las unidades de ejecución están libres, hacer un interleaving de otro stream independiente de instrucciones.

Presenter Notes

Hyperthreading™ (©2002, Intel)

  • 2 hilos a la vez en 1 core.
  • Explota el paralelismo interno de cada unidad de ejecución.
  • Ellos proclaman: "Most power efficient performance feature"
    • Muy poca área.
    • Da beneficios a la mayoría de los workloads.
    • Muchísimo más eficiente que agregar un core.

Presenter Notes

Hyperthreading™, cont.

HT time-chart

(Glenn Hinton, Intel Fellow, Nehalem Lead Architect, Key Nehalem Choices, 2010.)

Presenter Notes

Hyperthreading™, cont. 2

Recursos replicados y compartidos en HT

(Glenn Hinton, Intel Fellow, Nehalem Lead Architect, Key Nehalem Choices, 2010.)

Presenter Notes

Idas y venidas

  • Presentado en 2002, Pentium 4 (Northwood).
  • Intel Core y Core2, no la tuvieron.
  • Reapareción en Nehalem, Sandy Bridge, Ivy Bridge.
  • AMD Bulldozer es también como SMT.

Hoja de ruta de procesadores Itel

(Wikipedia, Intel Processor Roadmap.)

Crítica

Agner Fog, How good is hyperthreading?, blog entry, 2009.

Alguna vez nos dieron para probar un Intel® Xeon® Processor X7560 (8 cores, 16 threads), pero con Hyperthreading deshabilitado (citation needed).

Presenter Notes

SMT vs. ST: IBM Power5 (2005)

SMT vs. ST

(Hennessy, Patterson, CAAQA4, p.178)

Presenter Notes

Como usar las unidades de ejecución

Como usar las unidades de ejecución

(Hennessy, Patterson, CAAQA4, p.174)

  • Superscalar: Athlon 64.
  • Coarse Multithreading (MT): ?
  • Fine MT: Sun T1 (Niágara).
  • SMT: Power5, Intel Core Nehalem.

Presenter Notes

El problema de compartir recursos

Cada vez más complejo.

  • Unidades de ejecución.
    • Sandy Bridge vs. Bulldozer, diferentes elecciones.
  • Memoria caché.

Más información:

Presenter Notes

Multicore

Presenter Notes

Es una tendencia sin retorno

  • Rendimientos decrecientes en la explotación de ILP.
  • Problemas de consumo.
  • Ventajas enormes en la relación costo-performance de los SMP.

Reforzado por:

  • Gran demanda de server workloads (web, altamente paralelas).
  • Gran demanda de data-intensive workloads (análisis de datos, altamente paralelas).
  • ?Desinterés por el desktop? (pero si su GPU)
  • Madurez para entender los problemas de la multiprogramación a gran escala.
  • Amortización de costos de diseño a través de la replicación.

Presenter Notes

Tipos de MIMD

Distribuídos o integrados

  • Clusters: commodity & custom.
  • Multiprocesadores en un chip (multicore)

Multiprocesadores

  • Memoria compartida centralizada.
  • Memoria compartida distribuida.

Presenter Notes

Memoria centralizada

Uniform memory access (UMA).

Memoria compartida centralizada

  • Poca escalabilidad.
  • Usado por Intel hasta Core2.

-- acá es donde CAAQA4 se queda viejo (sadface) --

Presenter Notes

Memoria distribuída

Non-uniform memory access (NUMA).

Memoria distribuída

  • Buena escalabilidad.
  • El programa tiene que saber que la memoria está distribuída (performance).
    • Sin embargo el espacio de direcciones es único.
  • Intel reemplazó el FSB por Quickpath-QPI desde Nehalem, ¿2009?.
  • AMD la usa desde mucho antes (Hypertransport-HT en Direct Connect Architecture- DCA , desde Athlon 64 X2, 2006).

Presenter Notes

Presenter Notes

Coherencia y Consistencia

mini, lstopo

  • problema cachear memoria compartida, >=2 copias de la misma información.
  • Mantener la coherencia entre las copias, dar consistencia al acceso de datos compartidos.

Presenter Notes

Coherencia

1) Orden secuencial del programa

1 P1: write(X,d)
2 ...
3 P1: read(X) = d

2) Coherencia entre procesadores

Eventualmente se lee el valor nuevo. No se puede leer siempre un valor viejo.

1 P1: write(X,d)
2 ...
3         ... (suficientemente separados) ...
4 ...
5                                       P2: read(X) = d

3) Serialización de las escrituras

1 P1: write(X,d)
2 ...
3                         P2: write(X,e)
4 ...
5                                                 P3: read(X) = e

Acá no hay un "eventualmente".

Presenter Notes

Consistencia

Modelo de consistencia

¿Cuándo se ve en los otros procesadores una escritura?
¿Cuán consistente es la visión de la memoria?

Ejemplo

1 P1: A = 0                   P2: B = 0
2     ...                         ...
3     A = 1                       B = 1
4 L1: if (B == 0) ...         L2: if (A == 0) ...

Dependiendo el modelo puede pasar o no que ambos lean 0!
(el algoritmo de Dekker puede no funcionar)

Consistencia secuencial

  • Los accesos a memoria por el mismo procesador se mantienen ordenados.
  • Los accesos entre diferentes procesadores son interleaved arbitrariamente.

Con este modelo no podemos poner el A = 1 en un write-buffer y continuar con la lectura.

Reduce la performance!

Presenter Notes

Modelos relajados de consistencia

Orden sequencial, perserva el órden de read versus write, etc.:

R->W, R->R, W->R, W->W.

  • Relajar W->R.
    total store ordering, processor consistency.
  • Relajar W->W.
    partial store.
  • Relajar R->W, R->R.
    weak ordering.

X86 implementa algo asi como total store ordering (TSO).

Presenter Notes

Modelo de memoria X86

Modelos definidos en prosa y con ejemplos. Difícil de formalizarlos, similar a TSO. Se lo denomina X86-TSO.

Una formalización:

Barreras de memoria en hardware

Para forzar consistencia secuencial. Flush de memoria (load&stores), stores y loads.

MFENCE, SFENCE y LFENCE.

_mm_mfence(), _mm_sfence(), _mm_lfence()

Presenter Notes

Impacto de la performance en NUMA

Memoria distribuída

Pensar en los mensajes que se transmiten en la red:

  • Invalidación de cache.
  • Comunicación de memoria no-local.

Gran impacto en la performance.

Presenter Notes

Impacto de la performance en NUMA

  • lstopo: lista la topología de memoria.
  • numactl: memory policies for NUMA system.

Artículos

Presenter Notes

Bibliografía

Presenter Notes

Bibliografía

Presenter Notes

La clase que viene

Sincronización

OpenMP

Presenter Notes