Esta página está preparada para imprimir (Ctrl +P ): se ocultan la barra lateral y la navegación.
S = T s T p ≤ p E = S p = T s p T p ≤ 1 C p ( n ) = T p ( n ) ⋅ p S=\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 S = T p T s ≤ p E = p S = p T p T s ≤ 1 C p ( n ) = T p ( n ) ⋅ p
Costo óptimo: C p ( n ) = Θ ( T s ( n ) ) C_p(n)=\Theta(T_s(n)) C p ( n ) = Θ ( T s ( n )) .
Granularidad: G = T c o m p T c o m m G=\dfrac{T_{comp}}{T_{comm}} G = T co mm T co m p (mayor G G G ⇒ menos overhead relativo).
Overhead: T o = p T p − T s T_o=p\,T_p-T_s T o = p T p − T s ; isoeficiencia: T s = K T o T_s=K\,T_o T s = K T o .
T p ≥ max ( T s p , T ∞ ) W ( n ) = T s ∗ ( n ) T_p\ge\max\!\left(\frac{T_s}{p},\,T_\infty\right)\qquad W(n)=T_s^*(n) T p ≥ max ( p T s , T ∞ ) W ( n ) = T s ∗ ( n )
Brent: T p ( 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) T p ( n , p ) ≤ ⌊ p W ( n ) ⌋ + T ∞ ( n ) = O ( p W ( n ) + T ∞ ( n ) )
Costo máximo C p = O ( W + T ∞ p ) C_p=O(W+T_\infty p) C p = O ( W + T ∞ p ) ; W W W y C p C_p C p coinciden si p = O ( W / T ∞ ) p=O(W/T_\infty) p = O ( W / T ∞ ) .
Forma final esperada: E = O ( 1 1 + p T ∞ ( n ) / W ( n ) ) E=O\!\left(\dfrac{1}{1+p\,T_\infty(n)/W(n)}\right) E = O ( 1 + p T ∞ ( n ) / W ( n ) 1 ) ⇒ débil si p ∝ W / T ∞ p\propto W/T_\infty p ∝ W / T ∞ .
T p = f s + f p p S = 1 f s + f p / p E = 1 p ( f s + 1 − f s p ) S → p → ∞ 1 f s T_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} T p = f s + p f p S = f s + f p / p 1 E = p ( f s + p 1 − f s ) 1 S p → ∞ f s 1
T p = f s + f p T s = f s + p f p S = f s + p f p E = f s + p f p p T_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} T p = f s + f p T s = f s + p f p S = f s + p f p E = p f s + p f p
Generalizada: S = f s + f p p α f s + f p p α − 1 S=\dfrac{f_s+f_p p^\alpha}{f_s+f_p p^{\alpha-1}} S = f s + f p p α − 1 f s + f p p α (α = 0 \alpha=0 α = 0 Amdahl, α = 1 \alpha=1 α = 1 Gustafson).
Lineal Árbol binario Broadcast O ( p ( α + m β ) ) O(p(\alpha+m\beta)) O ( p ( α + m β )) O ( log p ( α + m β ) ) O(\log p\,(\alpha+m\beta)) O ( log p ( α + m β )) Scatter / Gather ( p − 1 ) ( α + β m p ) = O ( α p + β m ) (p-1)(\alpha+\beta\tfrac mp)=O(\alpha p+\beta m) ( p − 1 ) ( α + β p m ) = O ( α p + β m ) α log p + β m ( 1 − 1 p ) = O ( α log p + β m ) \alpha\log p+\beta m(1-\tfrac1p)=O(\alpha\log p+\beta m) α log p + β m ( 1 − p 1 ) = O ( α log p + β m ) Punto a punto T = α + x β T=\alpha+x\beta T = α + x β —
T c o m m = f ( p ) ( α + x β ) T_{comm}=f(p)(\alpha+x\beta) T co mm = f ( p ) ( α + x β ) ; BPRAM: T = α + β b T=\alpha+\beta b T = α + β b .
Suma de array con p p p procesos: lineal O ( p α + ( n + p ) β + n / p ) O(p\alpha+(n+p)\beta+n/p) O ( p α + ( n + p ) β + n / p ) ; árbol O ( n / p + α log p + n p β ) O(n/p+\alpha\log p+\tfrac np\beta) O ( n / p + α log p + p n β ) .
E R E W ⊂ C R E W ⊂ C R C W EREW\subset CREW\subset CRCW E R E W ⊂ C R E W ⊂ C R C W — CW: común , arbitrario , combinado , prioritario .
Modelo Relaja Costo / idea APRAM sync global asíncrono, wait(flag) Phase PRAM sync gratis T s y n c = S ⋅ T b a r r i e r T_{sync}=S\cdot T_{barrier} T sy n c = S ⋅ T ba r r i er LPRAM acceso uniforme T l o c a l < T g l o b a l T_{local}<T_{global} T l oc a l < T g l o ba l BPRAM palabra a palabra α + β b \alpha+\beta b α + β b BSP todo T = ∑ w s + g ∑ h s + S L T=\sum w_s+g\sum h_s+SL T = ∑ w s + g ∑ h s + S L ; reducción O ( n p + ( g + L ) log p ) O(\tfrac np+(g+L)\log p) O ( p n + ( g + L ) log p ) LogP asincronía real L , o , g , P L,o,g,P L , o , g , P ; reducción O ( n p + log p ( L + o + g ) ) O(\tfrac np+\log p\,(L+o+g)) O ( p n + log p ( L + o + g ))
Algoritmo W ( n ) W(n) W ( n ) T ∞ ( n ) T_\infty(n) T ∞ ( n ) Modelo Global OR Θ ( n ) \Theta(n) Θ ( n ) Θ ( 1 ) \Theta(1) Θ ( 1 ) CRCW (común) Máximo O ( n 2 ) O(n^2) O ( n 2 ) procsO ( 1 ) O(1) O ( 1 ) CRCW Suma por reducción O ( n ) O(n) O ( n ) O ( log n ) O(\log n) O ( log n ) EREW/CREW Prefix sum O ( n ) O(n) O ( n ) O ( log n ) O(\log n) O ( log n ) CREW (como está escrito) Mergesort (merge secuencial) O ( n log n ) O(n\log n) O ( n log n ) O ( n ) O(n) O ( n ) — Matmul (expansión + reducción) O ( n 3 ) O(n^3) O ( n 3 ) O ( log n ) O(\log n) O ( log n ) — Matmul P i , j P_{i,j} P i , j (2026-I) O ( n 3 ) O(n^3) O ( n 3 ) O ( n ) O(n) O ( n ) EREW
T ( n ) = T ( n / 2 ) + O ( 1 ) ⇒ Θ ( log n ) T ( n ) = T ( n / 2 ) + O ( log n ) ⇒ Θ ( log 2 n ) T ( n ) = T ( n / 2 ) + O ( n ) ⇒ Θ ( n ) T ( n ) = 2 T ( n / 2 ) + O ( n ) ⇒ Θ ( n log n ) T ( n ) = T ( n − 1 ) + O ( n ) ⇒ Θ ( n 2 ) T ( n ) = a T ( n / b ) + f ( n ) (maestro: compara f con n log b a ) \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} T ( n ) T ( n ) T ( n ) = T ( n /2 ) + O ( 1 ) = T ( n /2 ) + O ( n ) = T ( n − 1 ) + O ( n ) ⇒ Θ ( log n ) ⇒ Θ ( n ) ⇒ Θ ( n 2 ) T ( n ) T ( n ) T ( n ) = T ( n /2 ) + O ( log n ) = 2 T ( n /2 ) + O ( n ) = a T ( n / b ) + f ( n ) ⇒ Θ ( log 2 n ) ⇒ Θ ( n log n ) (maestro: compara f con n l o g b a )
T p f i l a s = γ n 2 p + α log p + β n T p b l o q u e s = γ n 2 p + 2 α log p + β n p T_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} T p f i l a s = γ p n 2 + α log p + β n T p b l o q u es = γ p n 2 + 2 α log p + β p n
Filas: n ∝ p n\propto p n ∝ p · Bloques: n ∝ p log p n\propto\sqrt{p\log p} n ∝ p log p ⇒ bloques más escalable y de mayor granularidad.
V ( n , p ) ≈ γ N 2 + x α N 2 + x / p + β log p ( γ = 500 , α = 10 − 9 , β = 1 , x = 0.31 ) S ∝ V V(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 V ( n , p ) ≈ α N 2 + x / p + β log p γ N 2 + x ( γ = 500 , α = 1 0 − 9 , β = 1 , x = 0.31 ) S ∝ V
Débil: N 2 + x ∝ p log p N^{2+x}\propto p\log p N 2 + x ∝ p log p . Fuerzas: N ( N − 1 ) / 2 N(N-1)/2 N ( N − 1 ) /2 pares ⇒ O ( N 2 ) O(N^2) O ( N 2 ) ; Barnes-Hut O ( n log n / p ) O(n\log n/p) O ( n log n / p ) .
LCG: x i + 1 = ( a x i + c ) m o d m x_{i+1}=(a\,x_i+c)\bmod m x i + 1 = ( a x i + c ) mod m (a = 16807 a=16807 a = 16807 , m = 2 31 − 1 m=2^{31}-1 m = 2 31 − 1 , c = 0 c=0 c = 0 ). Estrategias: centralizada, replicativa, distribuida. MRG32k3a: 1.8 × 10 19 1.8\times10^{19} 1.8 × 1 0 19 streams, período 3.1 × 10 57 3.1\times10^{57} 3.1 × 1 0 57 . Montecarlo: π = 4 n / N \pi=4n/N π = 4 n / 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