Ir al contenido

Escalabilidad e isoeficiencia

Un algoritmo es escalable si mantiene eficiencia constante al incrementar simultáneamente pp y el tamaño nn.

Qué se fijaPreguntaRespuesta típica en el examen
Fuertenn constante¿EE se mantiene al crecer pp?E=O(1/p)E=O(1/p) o similar ⇒ no escala en forma fuerte
Débilnn crece con pp¿qué n=f(p)n=f(p) mantiene EE constante?«escala si p∝n/log⁡np\propto n/\log n» (o la relación que salga)

Con Ts=WT_s=W y Brent Tp=O(W/p+T∞)T_p=O(W/p+T_\infty):

S=WWp+T∞E=Sp=11+p T∞(n)W(n)S=\frac{W}{\frac Wp+T_\infty}\qquad E=\frac{S}{p}=\frac{1}{1+\dfrac{p\,T_\infty(n)}{W(n)}}

Débil: EE constante   ⟺  p T∞∝W  ⟺  p∝W(n)T∞(n)\iff p\,T_\infty\propto W\iff p\propto\dfrac{W(n)}{T_\infty(n)} (el paralelismo disponible). Si se agrega comunicación, p. ej. +log⁡p+\log p:

E=11+p T∞W+plog⁡pW  ⇒  dos condiciones: p∝WT∞   y   plog⁡p∝WE=\frac{1}{1+\dfrac{p\,T_\infty}{W}+\dfrac{p\log p}{W}}\;\Rightarrow\;\text{dos condiciones: }p\propto\frac{W}{T_\infty}\;\text{ y }\;p\log p\propto W

Calculadora Brent → S, E y escalabilidad

Elige W(n) y T∞(n) (o un ejercicio previo). Se asume T_s = W (costo óptimo) y la cota de Brent T_p = W/p + T∞ .

P1.md: E = 1/(1 + p log n / n) ⇒ débil si p ∝ n / log n.
Tp(n,p)=O ⁣(nlog⁡np+log⁡2n)S=nlog⁡nTpE=11+p log⁡2nnlog⁡nT_p(n,p)=O\!\left(\frac{n\log n}{p}+\log^2 n\right)\qquad S=\frac{n\log n}{T_p}\qquad E=\frac{1}{1+\dfrac{p\,\log^2 n}{n\log n}}
Escalabilidad fuerte: n fijo, crece p
00.20.40.60.81110100100010000pEE₀=0.5
E(p), n = 65500E(p), n = 1.05e6
Speedup — se satura en W/T∞
110100100010000110100100010000pS
S(p), n = 65500S = pW/T∞ (paralelismo) = 4100
Escalabilidad débil: n mínimo para sostener E ≥ 0.5 (función de isoeficiencia, numérica)
101001000100001.00e510100100010000pn necesario
n(p) numéricoreferencia n ∝ p
Lectura para el examen. Fuerte (n constante): E→0E\to 0 al crecer p ⇒ no escala en forma fuerte. Débil: E constante si p log⁡2n∝nlog⁡np\,\log^2 n\propto n\log n, es decir p∝nlog⁡np\propto \frac{n}{\log n}.
E=TsTs+To⇒Ts=K ToE=\frac{T_s}{T_s+T_o}\quad\Rightarrow\quad T_s=K\,T_o

Ejemplo PD01 (suavizado): To=8 p t twT_o=8\,p\,t\,t_w ⇒ n=8Ktw3tc pn=\dfrac{8Kt_w}{3t_c}\,p: isoeficiencia lineal. Práctica 3 (filas, colectivas en árbol): To=Θ(plog⁡p)T_o=\Theta(p\log p) con W=Θ(N2)W=\Theta(N^2) ⇒ N=Θ(plog⁡p)N=\Theta(\sqrt{p\log p}).

Ejercicio (P1): subsecuencia máxima con Divide y Vencerás

Sección titulada «Ejercicio (P1): subsecuencia máxima con Divide y Vencerás»

SubsecuenciaMaxima(A,l,r) hace dos llamadas recursivas sobre mitades y MaximoCentro recorre linealmente de ll a rr. (a) Recurrencia secuencial. (b) Versión paralela, WW y T∞T_\infty. (c) TpT_p, SS, EE y escalabilidad.

Ver solución

(a) T(n)=2T(n/2)+Θ(n)T(n)=2T(n/2)+\Theta(n). Teorema maestro con a=b=2a=b=2, f(n)=Θ(n)=nlog⁡22f(n)=\Theta(n)=n^{\log_2 2} ⇒ T(n)=Θ(nlog⁡n)T(n)=\Theta(n\log n).

(b) Las llamadas ML y MR son independientes ⇒ pardo. MaximoCentro se paraleliza con dos scans (prefix-sum con + y prefix-max con max), cada uno O(n)O(n) trabajo y O(log⁡n)O(\log n) span:

W(n)=2W(n/2)+O(n)=Θ(nlog⁡n)T∞(n)=T∞(n/2)+O(log⁡n)=O(log⁡2n)W(n)=2W(n/2)+O(n)=\Theta(n\log n)\qquad T_\infty(n)=T_\infty(n/2)+O(\log n)=O(\log^2 n)

(sin paralelizar MaximoCentro, el span sería O(n)O(n)).

(c) Brent:

Tp=O ⁣(nlog⁡np+log⁡2n)S=nlog⁡nnlog⁡np+log⁡2nE=11+plog⁡nnT_p=O\!\left(\frac{n\log n}{p}+\log^2 n\right)\quad S=\frac{n\log n}{\frac{n\log n}{p}+\log^2n}\quad E=\frac{1}{1+\frac{p\log n}{n}}

Fuerte (nn cte): E=O(1/p)E=O(1/p), no escala. Débil: EE constante si p∝n/log⁡np\propto n/\log n. (Elige el preset «P1» en el playground.)

Autoevaluación

0/4 correctas · 0 respondidas
1. E=11+plog⁡n/nE=\dfrac{1}{1+p\log n/n}. Condición de escalabilidad débil:
2. Mergesort con merge secuencial: W=nlog⁡nW=n\log n, T∞=nT_\infty=n. ¿pp máximo con E constante?
3. Esquema A necesita n∝pn\propto p; esquema B, n∝plog⁡pn\propto\sqrt{p\log p}. ¿Cuál es más escalable?
4. Con nn fijo, E=O(1/(plog⁡p))E=O(1/(p\log p)). Entonces…

Fuente ·P1.md · estudio/03_Amdahl_Gustafson.md §4 · estudio/08_Solvers_Examenes_Previos.md (Arquetipo E) · practica_3_ofi/executed/analisis_escalabilidad.md · PD01-Ejercicio1-Resolucion.md §6