Ir al contenido

Formulario (cheat sheet)

Esta página está preparada para imprimir (Ctrl+P): se ocultan la barra lateral y la navegación.

S=TsTp≤pE=Sp=Tsp Tp≤1Cp(n)=Tp(n)⋅pS=\frac{T_s}{T_p}\le p \qquad E=\frac{S}{p}=\frac{T_s}{p\,T_p}\le 1 \qquad C_p(n)=T_p(n)\cdot p
  • Costo óptimo: Cp(n)=Θ(Ts(n))C_p(n)=\Theta(T_s(n)).
  • Granularidad: G=TcompTcommG=\dfrac{T_{comp}}{T_{comm}} (mayor GG ⇒ menos overhead relativo).
  • Overhead: To=p Tp−TsT_o=p\,T_p-T_s; isoeficiencia: Ts=K ToT_s=K\,T_o.
Tp≥max⁡ ⁣(Tsp, T∞)W(n)=Ts∗(n)T_p\ge\max\!\left(\frac{T_s}{p},\,T_\infty\right)\qquad W(n)=T_s^*(n)

Brent:   Tp(n,p)≤⌊W(n)p⌋+T∞(n)=O ⁣(W(n)p+T∞(n))\;T_p(n,p)\le\left\lfloor\dfrac{W(n)}{p}\right\rfloor+T_\infty(n)=O\!\left(\dfrac{W(n)}{p}+T_\infty(n)\right)

  • Costo máximo Cp=O(W+T∞p)C_p=O(W+T_\infty p); WW y CpC_p coinciden si p=O(W/T∞)p=O(W/T_\infty).
  • Forma final esperada: E=O ⁣(11+p T∞(n)/W(n))E=O\!\left(\dfrac{1}{1+p\,T_\infty(n)/W(n)}\right) ⇒ débil si p∝W/T∞p\propto W/T_\infty.
Tp=fs+fppS=1fs+fp/pE=1p(fs+1−fsp)S→p→∞1fsT_p=f_s+\frac{f_p}{p}\qquad S=\frac{1}{f_s+f_p/p}\qquad E=\frac{1}{p\left(f_s+\frac{1-f_s}{p}\right)}\qquad S\xrightarrow{p\to\infty}\frac{1}{f_s} Tp=fs+fpTs=fs+p fpS=fs+p fpE=fs+p fppT_p=f_s+f_p\qquad T_s=f_s+p\,f_p\qquad S=f_s+p\,f_p\qquad E=\frac{f_s+p\,f_p}{p}

Generalizada: S=fs+fppαfs+fppα−1S=\dfrac{f_s+f_p p^\alpha}{f_s+f_p p^{\alpha-1}} (α=0\alpha=0 Amdahl, α=1\alpha=1 Gustafson).

Comunicación (α\alpha latencia, β\beta costo por dato, α≫β\alpha\gg\beta)

Sección titulada «Comunicación (α\alphaα latencia, β\betaβ costo por dato, α≫β\alpha\gg\betaα≫β)»
LinealÁrbol binario
BroadcastO(p(α+mβ))O(p(\alpha+m\beta))O(log⁡p (α+mβ))O(\log p\,(\alpha+m\beta))
Scatter / Gather(p−1)(α+βmp)=O(αp+βm)(p-1)(\alpha+\beta\tfrac mp)=O(\alpha p+\beta m)αlog⁡p+βm(1−1p)=O(αlog⁡p+βm)\alpha\log p+\beta m(1-\tfrac1p)=O(\alpha\log p+\beta m)
Punto a puntoT=α+xβT=\alpha+x\beta—
  • Tcomm=f(p)(α+xβ)T_{comm}=f(p)(\alpha+x\beta); BPRAM: T=α+βbT=\alpha+\beta b.
  • Suma de array con pp procesos: lineal O(pα+(n+p)β+n/p)O(p\alpha+(n+p)\beta+n/p); árbol O(n/p+αlog⁡p+npβ)O(n/p+\alpha\log p+\tfrac np\beta).

EREW⊂CREW⊂CRCWEREW\subset CREW\subset CRCW — CW: común, arbitrario, combinado, prioritario.

ModeloRelajaCosto / idea
APRAMsync globalasíncrono, wait(flag)
Phase PRAMsync gratisTsync=S⋅TbarrierT_{sync}=S\cdot T_{barrier}
LPRAMacceso uniformeTlocal<TglobalT_{local}<T_{global}
BPRAMpalabra a palabraα+βb\alpha+\beta b
BSPtodoT=∑ws+g∑hs+SLT=\sum w_s+g\sum h_s+SL; reducción O(np+(g+L)log⁡p)O(\tfrac np+(g+L)\log p)
LogPasincronía realL,o,g,PL,o,g,P; reducción O(np+log⁡p (L+o+g))O(\tfrac np+\log p\,(L+o+g))
AlgoritmoW(n)W(n)T∞(n)T_\infty(n)Modelo
Global ORΘ(n)\Theta(n)Θ(1)\Theta(1)CRCW (común)
MáximoO(n2)O(n^2) procsO(1)O(1)CRCW
Suma por reducciónO(n)O(n)O(log⁡n)O(\log n)EREW/CREW
Prefix sumO(n)O(n)O(log⁡n)O(\log n)CREW (como está escrito)
Mergesort (merge secuencial)O(nlog⁡n)O(n\log n)O(n)O(n)—
Matmul (expansión + reducción)O(n3)O(n^3)O(log⁡n)O(\log n)—
Matmul Pi,jP_{i,j} (2026-I)O(n3)O(n^3)O(n)O(n)EREW
T(n)=T(n/2)+O(1)⇒Θ(log⁡n)T(n)=T(n/2)+O(log⁡n)⇒Θ(log⁡2n)T(n)=T(n/2)+O(n)⇒Θ(n)T(n)=2T(n/2)+O(n)⇒Θ(nlog⁡n)T(n)=T(n−1)+O(n)⇒Θ(n2)T(n)=aT(n/b)+f(n)(maestro: compara f con nlog⁡ba)\begin{aligned} T(n)&=T(n/2)+O(1)&&\Rightarrow\Theta(\log n) & T(n)&=T(n/2)+O(\log n)&&\Rightarrow\Theta(\log^2 n)\\ T(n)&=T(n/2)+O(n)&&\Rightarrow\Theta(n) & T(n)&=2T(n/2)+O(n)&&\Rightarrow\Theta(n\log n)\\ T(n)&=T(n-1)+O(n)&&\Rightarrow\Theta(n^2) & T(n)&=aT(n/b)+f(n)&&\text{(maestro: compara } f \text{ con } n^{\log_b a}) \end{aligned} Tpfilas=γn2p+αlog⁡p+βnTpbloques=γn2p+2αlog⁡p+βnpT_p^{filas}=\gamma\frac{n^2}{p}+\alpha\log p+\beta n\qquad T_p^{bloques}=\gamma\frac{n^2}{p}+2\alpha\log\sqrt p+\beta\frac{n}{\sqrt p}

Filas: n∝pn\propto p · Bloques: n∝plog⁡pn\propto\sqrt{p\log p} ⇒ bloques más escalable y de mayor granularidad.

V(n,p)≈γN2+xαN2+x/p+βlog⁡p(γ=500, α=10−9, β=1, x=0.31)S∝VV(n,p)\approx\frac{\gamma N^{2+x}}{\alpha N^{2+x}/p+\beta\log p}\quad(\gamma=500,\ \alpha=10^{-9},\ \beta=1,\ x=0.31)\qquad S\propto V

Débil: N2+x∝plog⁡pN^{2+x}\propto p\log p. Fuerzas: N(N−1)/2N(N-1)/2 pares ⇒ O(N2)O(N^2); Barnes-Hut O(nlog⁡n/p)O(n\log n/p).

LCG: xi+1=(a xi+c) mod mx_{i+1}=(a\,x_i+c)\bmod m (a=16807a=16807, m=231−1m=2^{31}-1, c=0c=0). Estrategias: centralizada, replicativa, distribuida. MRG32k3a: 1.8×10191.8\times10^{19} streams, período 3.1×10573.1\times10^{57}. Montecarlo: π=4n/N\pi=4n/N.

MPI_Init · MPI_Comm_rank · MPI_Comm_size · MPI_Send(buf,count,type,dest,tag,comm) · MPI_Recv(buf,count,type,src,tag,comm,&status) · MPI_Ssend (síncrono) · MPI_Bsend · MPI_Rsend · MPI_Isend/Irecv(...,&req) + MPI_Wait/Waitall/Test · MPI_Bcast(buf,count,type,root,comm) · MPI_Scatter/Gather(sbuf,scnt,stype,rbuf,rcnt,rtype,root,comm) · MPI_Reduce(sbuf,rbuf,count,type,op,root,comm) · MPI_Allreduce (sin root) · MPI_Type_contiguous(count,old,&new) · MPI_Type_vector(count,blocklen,stride,old,&new) · MPI_Type_create_struct(count,bl[],disp[],types[],&new) → MPI_Type_commit → usar → MPI_Type_free.

Isend + Wait = Send · Irecv + Wait = Recv. No toques el buffer entre la llamada I* y su Wait.

Fuente ·estudio/00_Indice_y_Formulario.md · 03_Amdahl_Gustafson.md · 04_PRAM.md · 05_Particionamiento.md · 08_Solvers_Examenes_Previos.md · U3.1–U3.4 slides MPI