Solvers por arquetipo (A–F)
| Arquetipo | 2025-I | 2025-II S01 | 2025-II S02 | 2026-I |
|---|---|---|---|---|
| A PRAM de operación agregada global | Ej.1 (suma) | Ej.1 (p-norma) | Ej.1 (normalización) | — |
| B Particionamiento filas vs bloques | — | Ej.2 | Ej.2 | — |
| C DAG desde código + PRAM con barreras | — | Ej.3 | Ej.3 | — |
| D Escalabilidad con FLOPs dados (N-Body) | Ej.2 | — | — | Ej.1 |
| E Recurrencia D&V / árbol (W, T∞, Brent) | Ej.3 (quicksort) | — | — | Ej.2 (árbol 2-3) |
| F Multiplicación de matrices en paralelo | — | — | — | Ej.3 |
Reconocerlo: fórmula (suma, norma, normalización) sobre un array/matriz; piden PRAM, , , , , escalabilidad.
- Paradigma: memoria compartida (PRAM). Dilo explícitamente: es punto de examen.
- PRAM: cada proceso hace
pardosobre su porción (o ), acumula localmente; al final reduce (árbol).for 1 ≤ i ≤ n/p pardo // proceso sacc_s += g(x_i) // g = x², |x|, producto…// reducción global de los acc_s (árbol binario) - (o si es matriz).
- : sin optimizar, Scatter + Reduce ; optimizada () Scatter + Reduce .
- ⇒ , .
- Fuerte: fijo ⇒ ¿? (casi siempre: no escala). Débil: despeja (típico o si hay ).
Ejemplos oficiales: p-norma ⇒ con fijo; débil con . Normalización ⇒ , ; débil con .
Reconocerlo: te dan dos ya hechos y piden granularidad, condición de escalabilidad y cuál escala mejor.
- : , ⇒ bloques: denominador menor ⇒ mayor granularidad, menos overhead.
- Escalabilidad: filas ; bloques .
- Conclusión redactada: bloques es más escalable (necesita menos crecimiento de / menos procesos para mantener ).
Playground: matriz × vector.
Reconocerlo: una función con tareas que comparten arrays; piden DAG + grado de concurrencia, PRAM con barrier(), , , , .
- Una tarea por llamada/bloque con su complejidad.
- Arista si lee lo que escribió. Dos tareas que solo leen lo mismo no se conectan (el error más común).
- Grado de concurrencia = ancho máximo de un nivel.
- = suma de costos del camino más costoso (no el de más nodos). = suma de todo.
- PRAM: lo que está en el mismo nivel va con
||, entrebarrier().a = tarea_1(A); || b = tarea_2(B);barrier();s1 = f(B,a); || s2 = g(B,a,b);barrier();z = s1 + s2; - ; , . Si piden «cantidad mínima de hilos», evalúa en el que satura la concurrencia (típico ).
Oficial 2025-II S01: , , , con . Playground: DAG (presets «PD02 2025-II»).
- Puntos de cruce = número óptimo de nodos (cómputo ↓, comunicación ↑). mayor ⇒ el óptimo se mueve a más nodos (arriba/derecha).
- Sustituye numéricamente; si domina ⇒ = 2.5 PFLOP con .
- ¿Depende de ? Justifica con el cálculo (2025-I: no; 2026-I: ligeramente).
- FLOPs (porque ).
- Fuerte: , no escala. Débil: .
Playground: FLOPs.
- (reutiliza subrutinas conocidas: prefix sum trabajo / span).
- : recurrencia del camino crítico (una rama): ⇒ : ; : ; : .
- Brent: .
- , — la forma que espera el profesor.
- Débil: .
- Si agregan comunicación (), súmala a antes de y : aparecen dos condiciones ( y ); la segunda domina.
Oficiales: quicksort , , . Árbol 2-3: , , , . Playground: Brent.
- .
- (bucle lineal por proceso).
- , .
- Fuerte: . Débil: .
- Modelo PRAM: ¿dos procesos leen la misma celda en el mismo paso? ¿escriben la misma? Cada escribe solo y los índices no se solapan ⇒ EREW.
Contraste: matmul por expansión + reducción (árbol) tiene y necesita combinar .
Checklist de cierre
Sección titulada «Checklist de cierre»Fuente ·estudio/08_Solvers_Examenes_Previos.md · estudio/previos/*.pdf