Saltar a contenido

Ley Amhdal

Ley de Amdahl

La ley de Amdahl modela teóricamente el rendimiento máximo de programas paralelos:

\[ S = \frac{1}{f+\frac{1-f}{P}} \]

Donde: - \(f\): fracción secuencial del programa (\(0 \le f \le 1\)) - \(P\): número de procesadores/hilos disponibles - \(S\): speedup (aceleración máxima)

Ejemplo 1: Caso con limitación práctica

  • \(P = 100\) hilos, \(f = 0.4\) (40% secuencial)
  • \(S = \frac{1}{0.4 + \frac{0.6}{100}} = \frac{1}{0.406} ≈ 2.46\)

Ejemplo 2: Límite teórico con paralelismo infinito

  • \(\lim_{P \rightarrow \infty} S = \frac{1}{f} = \frac{1}{0.4} = 2.5\)

Ejemplo 3: Programa altamente paralelizable

  • \(f = 0.1\), \(P = 8\) cores
  • \(S = \frac{1}{0.1 + \frac{0.9}{8}} = \frac{1}{0.2125} ≈ 4.71\)

Ejemplo 4: Programa con alto componente secuencial

  • \(f = 0.8\), \(P = 16\) cores
  • \(S = \frac{1}{0.8 + \frac{0.2}{16}} = \frac{1}{0.8125} ≈ 1.23\)

Tabla Resumen de Conceptos

Concepto Complejidad/Valor Descripción Ejemplo
Inserción lista ordenada \(O(n)\) Búsqueda lineal secuencial insertar([1,2,3,5,6], 4)
Inserción árbol balanceado \(O(log(n))\) División logarítmica del espacio Árbol binario de búsqueda
Sumatoria paralela (work) \(O(n)\) Total de operaciones Suma de elementos
Sumatoria paralela (span) \(O(log(n))\) Profundidad de paralelismo Niveles de división
Número máximo de hilos \(O(2^h)\) Crecimiento exponencial teórico ForkJoinPool workers
Ley de Amdahl \(S = \frac{1}{f+\frac{1-f}{P}}\) Aceleración máxima teórica \(f=0.4, P=100 → S=2.46\)
Límite teórico \(S_{max} = \frac{1}{f}\) Aceleración con recursos infinitos \(f=0.4 → S_{max}=2.5\)
Paralelismo efectivo Limitado Restricción por cores físicos CPU con 8 cores

Conclusiones clave: 1. La parte secuencial (\(f\)) impone un límite fundamental al speedup 2. El paralelismo tiene rendimientos decrecientes al aumentar \(P\) 3. El análisis debe considerar tanto complejidad algorítmica como limitaciones físicas 4. Programas con \(f > 0.1\) tienen aceleración máxima severamente limitada