Ir al contenido

Modelo PRAM y Teorema de Brent

RAM⟶PRAM⟶pseudocoˊdigo paralelo⟶Work y Span⟶SpeedupRAM\longrightarrow PRAM\longrightarrow\text{pseudocódigo paralelo}\longrightarrow\text{Work y Span}\longrightarrow\text{Speedup}
  • RAM: 1 procesador + memoria infinita de acceso directo; sumar nn números es Θ(n)\Theta(n).
  • PRAM: pp procesadores idénticos + memoria compartida, ejecutando el mismo código de forma síncrona. Sin red: se comunican vía memoria. Ignora cachés, latencia y costos físicos. Cada paso: leer memoria compartida → cómputo local → escribir.
ModeloReglaEjemplo
EREWcada dirección la lee/escribe un solo procesador por pasosuma de vectores, reducción binaria
CREWlectura concurrente, escritura exclusivabroadcast; Bi=Ai+xB_i=A_i+x (todos leen xx)
ERCWescritura concurrente, lectura exclusivapoco usado
CRCWlectura y escritura concurrentesGlobal OR/AND
EREW⊂CREW⊂CRCWEREW\subset CREW\subset CRCW

Escritura concurrente (CW): común (todos escriben el mismo dato) · arbitrario (gana uno cualquiera) · combinado (se acumula/reduce lo escrito) · prioritario (gana el de mayor prioridad).

PRAM: escrituras concurrentes (EREW · CREW · CRCW)

Fase 1: los procesadores envían su escritura a la misma celda. Fase 2: la memoria resuelve según el modelo.

fase 0/2
P0w=3P1no escribeP2w=3P3w=7P4no escribeP5w=3memoria compartida: M[0]?
  • Tp(n)T_p(n): pasos con pp procesadores. Costo Cp(n)=Tp(n)⋅P(n)C_p(n)=T_p(n)\cdot P(n).
  • Span T∞T_\infty: tiempo con procesadores ilimitados. Trabajo W(n)W(n): total de operaciones.
  • Costo óptimo: Cp(n)=Θ(Ts(n))C_p(n)=\Theta(T_s(n)).

Conociendo el paralelismo ideal (WW, T∞T_\infty con procesadores ilimitados), ¿cuánto tarda con p≪np\ll n?

W(n)p  ≤  Tp(n,p)=∑i=1T∞⌈Wi(n)p⌉  ≤  ⌊W(n)p⌋+T∞(n)\frac{W(n)}{p}\;\le\;T_p(n,p)=\sum_{i=1}^{T_\infty}\left\lceil\frac{W_i(n)}{p}\right\rceil\;\le\;\left\lfloor\frac{W(n)}{p}\right\rfloor+T_\infty(n)

Idea: el paso ii tiene WiW_i operaciones; con pp procesadores toma ⌈Wi/p⌉≤Wi/p+1\lceil W_i/p\rceil\le W_i/p+1 pasos; sumando sobre los T∞T_\infty pasos sale la cota. Versión intuitiva: Tp≤W−T∞p+T∞=Wp+(1−1p)T∞T_p\le\dfrac{W-T_\infty}{p}+T_\infty=\dfrac Wp+\left(1-\dfrac1p\right)T_\infty.

  • Costo máximo: Cp=O(W+T∞p)C_p=O(W+T_\infty p); WW y CpC_p coinciden cuando p=O(W/T∞)p=O(W/T_\infty).
  • Ejemplo: W=1000W=1000, T∞=20T_\infty=20: p=10⇒Tp≈120p=10\Rightarrow T_p\approx120; p=100⇒Tp≈30p=100\Rightarrow T_p\approx30.
  • WT-óptimo: W(n)=Ts(n)W(n)=T_s(n) (el trabajo iguala al secuencial óptimo).
for 1 ≤ i ≤ n pardo
B(i) ← A(i)

Las nn iteraciones son independientes y corren a la vez (PiP_i hace B(i)←A(i)B(i)\leftarrow A(i)), típicamente con n=pn=p.

Ejercicio (PD02 2026-I, Ej. 3 — arquetipo F)

Sección titulada «Ejercicio (PD02 2026-I, Ej. 3 — arquetipo F)»
for each process P(i,j) do
C[i,j] := 0
for k := 0 to n-1 do
C[i,j] := C[i,j] + A[i,(i+j+k) mod n] × B[(i+j+k) mod n, j]

Matrices n×nn\times n, tct_c = tiempo de suma/multiplicación. (3.1) TpT_p. (3.2) SS, EE. (3.3) Escalabilidad. (3.4) ¿Qué modelo PRAM?

Para la 3.4, reproduce los accesos paso a paso y compara con el bucle ingenuo:

Multiplicación de matrices en paralelo

k 0/4

Haz clic en una celda de C para seguir a ese procesador P(i,j). Verde = celda leída por 1 procesador; rojo = lectura concurrente.

ABC0/40/40/40/40/40/40/40/40/40/40/40/40/40/40/40/4
P(1,2) en paso k=——
máx. lectores de una celda—
escrituras en C[i,j]solo P(i,j)
modelo mínimo—
Con el índice rotado, en cada paso los n² procesadores leen n² celdas distintas de A y de B, y cada uno escribe solo su C[i,j] ⇒ EREW. Fila i fija: j distinto ⇒ columna (i+j+k) mod n distinta.
Ts=O(n3)tc,Tp=O ⁣(n3ptc+n),E=11+ptcn2T_s=O(n^3)t_c,\quad T_p=O\!\left(\tfrac{n^3}{p}t_c+n\right),\quad E=\tfrac{1}{1+\frac{p}{t_cn^2}} ⇒ débil: escala si n∝pn\propto\sqrt p.
Ver solución

3.1 Cada proceso ejecuta un bucle lineal en nn: Tp=O ⁣(n3ptc+n)T_p=O\!\left(\dfrac{n^3}{p}t_c+n\right).

3.2 S=O ⁣(n3tcn3tc/p+n)S=O\!\left(\dfrac{n^3t_c}{n^3t_c/p+n}\right),   E=O ⁣(tcn3/pn3tc/p+n)=11+ptcn2\;E=O\!\left(\dfrac{t_cn^3/p}{n^3t_c/p+n}\right)=\dfrac{1}{1+\frac{p}{t_cn^2}}.

3.3 nn constante ⇒ E=O(1/p)E=O(1/p): no escala fuerte. Si nn crece, E=O(1)E=O(1) si n∝pn\propto\sqrt p: escala débil.

3.4 EREW: cada Pi,jP_{i,j} escribe solo C[i,j]C[i,j], y el índice rotado (i+j+k) mod n(i+j+k)\bmod n hace que en un mismo paso ningún par de procesos lea la misma celda de AA o BB.

Autoevaluación

0/5 correctas · 0 respondidas
1. Todos los procesadores leen la variable xx y cada uno escribe su BiB_i. Modelo mínimo:
2. Brent con W=nlog⁡nW=n\log n, T∞=log⁡2nT_\infty=\log^2 n:
3. ¿Para qué pp coinciden WW y CpC_p?
4. CRCW “combinado” significa…
5. La jerarquía correcta es…

Fuente ·estudio/04_PRAM.md §1–5 · U2.2-Diseño_en_paralelo-PRAM_01.pdf · previos/2026-I-CS4052-PD02(sol).pdf (Ej. 3) · 08_Solvers (Arquetipo F)